SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
MySQL Group Replication,
ReplicaSet, & Architectures
Dave Stokes @Stokes
MySQL Community Manager
Oracle Corporations
Copyright © 2019 Oracle and/or its affiliates.
The following is intended to outline our general product direction. It is intended for information purposes
only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code,
or functionality, and should not be relied upon in making purchasing decisions. The development,
release, timing, and pricing of any features or functionality described for Oracle’s products may change
and remains at the sole discretion of Oracle Corporation.
Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and
prospects are “forward-looking statements” and are subject to material risks and uncertainties. A detailed
discussion of these factors and other risks that affect our business is contained in Oracle’s Securities and
Exchange Commission (SEC) filings, including our most recent reports on Form 10-K and Form 10-Q
under the heading “Risk Factors.” These filings are available on the SEC’s website or on Oracle’s website
at http://www.oracle.com/investor. All information in this presentation is current as of September 2019
and Oracle undertakes no duty to update any statement in light of new information or future events.
Safe Harbor
Copyright © 2019 Oracle and/or its affiliates.
MySQL 5.6 End of Life
February 2021!!
Upgrade please!
Copyright © 2019 Oracle and/or its affiliates.
MySQL Replication Greatly Simplified
Primary server
makes change to
data, records that
change to a log
file
Replica fetches
log entry, applies
that change to its
copy of the data
We now have two
copies of the
same data
Copyright © 2019 Oracle and/or its affiliates.
Terminology – may be offensive
Traditionally MySQL has used the terms
master/slave, borrowed from the
electronic industry.
Slowly moving away from those terms
but they are heavily used and probably
stuck in the legacy of the product
Copyright © 2019 Oracle and/or its affiliates.
The Past
• Setup of replication was done manually, with many steps
Setup users, backup data, restore data, configuration, etc.
• MySQL offered large components
User had to customize setup for environment
• Lots of work for DBAs/experts who spent time in automation
Copyright © 2019 Oracle and/or its affiliates.
Two General Types of Basic Replication
Asynchronous
Replication is asynchronous by
default; replicas do not need to be
connected permanently to receive
updates from the master.
Depending on the configuration,
you can replicate all databases,
selected databases, or even selected
tables within a database.
Semi synchronous
Semi synchronous replication, a
commit performed on the primary
blocks before returning to the session
that performed the transaction until
at least one replica acknowledges
that it has received and logged the
events for the transaction.
Copyright © 2019 Oracle and/or its affiliates.
InnoDB Cluster - 2016
• Group Replication
Automatic membership changes, consistency, network partition handling
• MySQL Shell
Many uses but here it is used to setup and administer InnoDB Cluster
• InnoDB CLONE Plug-in
Automatically provision members
Fully integrated with InnoDB
Copyright © 2019 Oracle and/or its affiliates.
Having Multi-Primary solves the fundamental
problem of MySQL – having single point of failure
while leaving the system as close to ACID as it is
expected from MySQL clusters.
Giedrius Jaraminas
Engineering manager of MySQL team at Uber
https://lefred.be/content/mysql-day-the-uber-experience/
Copyright © 2019 Oracle and/or its affiliates.
InnoDB Replica Set - 2020
• ‘Classic’ asynchronous replication based solution
Fully integrated
Copyright © 2019 Oracle and/or its affiliates.
InnoDB Cluster
A single product – MySQL
– with high availability and
scaling features baked in;
providing an integrated
end-to-end solution that is
easy to use.
Copyright © 2019 Oracle and/or its affiliates.
Components
MySQL Server
MySQL Group Replication
MySQL Shell
MySQL Router
All components developed
together, integrated. and
tested
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
By having your application
talk through the Router to
the data, the application is no
longer dependent on the
architecture of the cluster.
The down side is that you
may have to retry writes. And
you are checking return
codes, right??
Copyright © 2019 Oracle and/or its affiliates.
Easy to Use
• One client – MySQL Shell
• Integrated Orchestration
• Homogenous Servers
Copyright © 2019 Oracle and/or its affiliates.
Group Replication
• Fault Tolerant
• Automatic Failover
• Active/Active update anywhere
• Automatic membership management
Adding/Removing members
Network partitions, failures
• Conflict detection and resolution
• Prevents Data Loss
Copyright © 2019 Oracle and/or its affiliates.
Group Replication
• Implementation of the Replicated Database State Machine
Total order writes
XCOM – a Paxos implementation
• Configurable Consistency Guarantees
Eventual consistency
8.0 – per session and global read/write consistency
• Using proven MySQL Replication Framework by design
Binary logs
Relay logs
Global Transaction IDs – GTIDs
• Generally Available since MySQL 5.7
• Supported on all platforms
Linux, Windows, Solaris, Mac OSX, FreeBSD
Copyright © 2019 Oracle and/or its affiliates.
What are your business requirements?
Recovery time
Objective
• How fast
should the
service recover
from a failure?
Recovery Point
Objective
• How much data
loss can the
service lose
from a failure?
Copyright © 2019 Oracle and/or its affiliates.
What are your business requirements?
Recovery time
Objective
• How fast
should the
service recover
from a failure?
Recovery Point
Objective
• How much data
loss can the
service lose
from a failure?
Types of failure
• High Availability
• Single server,
network partition
• Disaster Recovery
• Full region/network
failure
• Human Error
• Little Bobby Tables
Copyright © 2019 Oracle and/or its affiliates.
How much of those can you afford?
• None
• A few seconds
• Minutes
• Hours
• Day
• ……
Copyright © 2019 Oracle and/or its affiliates.
Group Replication Use Cases
• Consistency: No data loss (Recover Point Objective)
In the event of the failure of a primary member
Split brain prevention by quorum
• Highly Available: Automatic Failover
Primary members automatically elected
Automatic network partitioning handling
Copyright © 2019 Oracle and/or its affiliates.
Group Replication Use Cases
• READ Scale out
Add/Remove members as needed
Replication Lag handling with Flow Control
Configurable consistency levels
Eventual
Full consistency – no stale reads
Copyright © 2019 Oracle and/or its affiliates.
Group Replication Use Cases
• Active/Active environments
Write to many members at the same time
Ordered writes within group (XCOM)
Guaranteed consistency
Good Write performance
Optimistic Locking (Depends on workload)
Copyright © 2019 Oracle and/or its affiliates.
MySQL Router
Transparent routing between your application
and the back-end MySQL Servers
• Transparent client connection routing
• Load balancing
• Application connection failover
• Little to no configuration needed
Copyright © 2019 Oracle and/or its affiliates.
MySQL Router
• Stateless design offers easy HA client routing
• Router as part of application stack
• Integration into InnoDB Cluster and Replica Set
• Understands Group Replication and
replication technology
• Currently TCP/IP for primary and non-primary
traffic
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell
• Provides the developer and DBA with a single,
intuitive, flexible, and powerful interface for all
MySQL Related Tasks
• Multi Language
• SQL
• Python
• JavaScript
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell
• Naturally scriptable
• Supports both document and
relational models
• Exposes full development and
administrative APIs
• Classic MySQL and X Protocol
support
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell – Easy to Use!
Mysqlsh-js> c admin@host1
Mysqlsh-js> cluster = dba.createCluster(‘cluster’)
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell – Configure 2nd Server
Mysqlsh-js> c admin@host1
Mysqlsh-js> cluster = dba.createCluster(‘cluster’)
Mysqlsh-js> dba.configureInstance(‘admin@host2’)
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell – Add 2nd Server
Mysqlsh-js> c admin@host1
Mysqlsh-js> cluster = dba.createCluster(‘cluster’)
Mysqlsh-js> dba.configureInstance(‘admin@host2’)
Mysqlsh-js> dba.addInstance(‘admin@host2’)
Copyright © 2019 Oracle and/or its affiliates.
And we will add a third server (not shown)
MySQL Shell – Start MySQL Router
Mysqlsh-js> c admin@host1
Mysqlsh-js> cluster = dba.createCluster(‘cluster’)
Mysqlsh-js> dba.configureInstance(‘admin@host2’)
Mysqlsh-js> dba.addInstance(‘admin@host2’)
$ sudo mysqlrouter –user=mysqlrouter –bootstrap
$ sudo systemctl start mysqlrouter
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
cluster.status()
{
"clusterName": "testCluster",
"defaultReplicaSet": {
"name": "default",
"primary": "localhost:3320", "ssl":
"REQUIRED",
"status": "OK",
"statusText": "Cluster is ONLINE and can
tolerate up to ONE failure.",
"topology": {
"localhost:3310": {
"address": "localhost:3310",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"localhost:3320": {
"address": "localhost:3320",
"mode": "R/W",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"localhost:3330": {
"address": "localhost:3330",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
}
}
}
}
InnoDB Replica Set
• MySQL 8.0.19
• Fully integrated with MySQL Router
Automatic routing
• Ease of use with MySQL Shell
Configuring, adding members, removing members
• Replication Architecture
Manual switchover and Failover
Asynchronous read scale out
Simple replication architecture
No network/hardware requirements
Providing availability on PRIMARY when issues with secondaries or network
Copyright © 2019 Oracle and/or its affiliates.
MySQL ReplicaSet Features
Past
Restore a backup or provision new member
Present
Automatic provision with InnoDB Clone
Copyright © 2019 Oracle and/or its affiliates.
MySQL ReplicaSet Features
Past
Restore a backup or provision new member
Configure replication users
Configure replication
Present
Automatic provision with InnoDB Clone
MySQL shell automatically configures users and
replication
Copyright © 2019 Oracle and/or its affiliates.
MySQL ReplicaSet Features
Past
Restore a backup or provision new member
Configure replication users
Configure replication
Manual configuration, adding/removing
servers in application, MySQL Router or other
proxy
Present
Automatic provision with InnoDB Clone
MySQL shell automatically configures users and
replication
Integrated MySQL Router load balancing
Only need to bootstrap Router
Router is stateless, adapts to topology
changesCopyright © 2019 Oracle and/or its affiliates.
MySQL ReplicaSet Features
Past
Manual or relying on external tools to make
topology changes
Use additional monitoring tool to login to
each server to check topology status
Present
Easy to use manual switchover/failover
See status of topology through MySQL Shell
status()
Copyright © 2019 Oracle and/or its affiliates.
MySQL ReplicaSet Features
Past
Complexity: User is responsible for the full
configuration of every component and its
settings
Every setup is custom
Lots of manual steps and additional software
required, always customized and often over
engineered by MySQL DBAs
Present
Shell configures server, router, replication in a
standardized best practice setup, prevents mistakes
Standard solution Supported & Q/A-ed by Oracle
Easy to use, even for beginners
Copyright © 2019 Oracle and/or its affiliates.
MySQL ReplicaSet Requirements & Limitations
1. Requirements
1. SET PERSIST (MySQL 8.0)
2. GTIDs
2. Limitations
1. Manual failover
2. No multi-primary as such topology can not guarantee data consistency
3. All secondary members replicate from primary
Copyright © 2019 Oracle and/or its affiliates.
MySQL ReplicaSet & Router Integration
• --bootstrap to automatically configure
• Metadata schema contain replication topology
• Health checks performed on all members
• Switch over to new primary:setPrimaryInstance()
• Shell performs topology change, configures super_read_only and updates
view_id in metadata
• Router automatically sees higher view_id nd and will redirect primary traffic
to new primary
• When primary is lost: forcePrimaryInstance()
• Shell performs topology change , updates view_id in metatdata and
invalidates lost primary
• Router will notice new topology change by higher view_id in metatdata
and automatically connects to new primary
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell : InnoDB Cluster versus InnoDB ReplicaSet
Mysql-js>c root@h1
Mysql-js>cluster =
dba.createCluster(‘cluster’)
Mysql-js>c root@h1
Mysql-js>rs =
dba.createReplicaSet(‘replicaset’)
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell : InnoDB Cluster versus InnoDB ReplicaSet
Mysql-js>c root@h1
Mysql-js>cluster =
dba.createCluster(‘cluster’)
Mysql-js>c root@h1
Mysql-js>rs =
dba.createReplicaSet(‘replicaset’)
Mysql-js>
dba.configureInstance(‘admin@h1’)
Mysql-js>dba.configureReplicaSet(‘admin@h1’)
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell : InnoDB Cluster versus InnoDB ReplicaSet
Mysql-
js>cluster.addInstance(‘admin@h1’)
Mysql-
js>rs.addInstance(‘admin@h1’)
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell : InnoDB Cluster versus InnoDB ReplicaSet
Mysql-
js>cluster.addInstance(‘admi
n@h1’)
Mysql-
js>rs.addInstance(‘admin@h1’)
$sudo mysqlrouter –user =
mysqlrouter –bootstrap
$sudo systemctl start
mysqlrouter
$sudo mysqlrouter –user =
mysqlrouter –bootstrap
$sudo systemctl start
mysqlrouter
Copyright © 2019 Oracle and/or its affiliates.
MySQL InnoDB ReplicaSet – Manual failover
Designed for manual failover
• External monitoring process decides failover can have a lot
of false positives.
• External tool decides , if tool has issues you have bigger issues
• Split brain issues
• Majority of production environments user manual failover, which
increases uptime
• When you need automatic failover use MySQL InnoDB
Cluster instead of semi-sync
Copyright © 2019 Oracle and/or its affiliates.
MySQL InnoDB ReplicaSet – Manual failover
Example:
• 1 primary
• 2 secondary
• 2 proxies (on app servers)
• 1 management server
Problem: management server
and replica server partitioned
from other servers – what will
happen??
Copyright © 2019 Oracle and/or its affiliates.
Secondary
•h1
Primary
•h2
Secondary
•h3
Async/Semi-sync
Proxy/AP Proxy/Ap
Mgmt
MySQL InnoDB ReplicaSet – Manual failover
Example:
• 1 primary
• 2 secondary
• 2 proxies (on app servers)
• 1 management server
Copyright © 2019 Oracle and/or its affiliates.
Secondary
•h1
Primary
•h2
Secondary
•h3
Async/Semi-sync
Proxy/AP Proxy/Ap
Mgmt
Writes
MySQL InnoDB ReplicaSet – Manual failover
Example:
• 1 primary
• 2 secondary
• 2 proxies (on app servers)
• 1 management server
Problem: management server and
replica server partitioned from
other servers – what will happen??
The management might
promote the secondary causing
a split brain
Copyright © 2019 Oracle and/or its affiliates.
Secondary
•h1
Primary
•h2
Secondary
•h3
Proxy/AP Proxy/Ap
Mgmt
Writes
Network
Partition
MySQL InnoDB ReplicaSet – Manual failover
Example:
• 1 primary
• 2 secondary
• 2 proxies (on app servers)
• 1 management server
Problem: management server and
replica server partitioned from
other servers – what will happen??
The management might
promote the secondary causing
a split brain
Copyright © 2019 Oracle and/or its affiliates.
Secondary
•h1
Primary
•h2
Secondary
•h3
Proxy/AP Proxy/Ap
Mgmt
Writes
Network
Partition
Use InnoDB Cluster over semi-sync because as semi-
sync needs all members to ack to prevent split brain,
causing downtime with every glitch
InnoDB Cluster – when to use
• Single primary, multiple secondaries OR Multi-Primary (write to all)
• Read scale out with configurable consistent reads
• All members take part in consensus (writes as fast as the slowest node)
• Stable network is required: Net glitches cause stalls/membership
changes
• Uneven number of members required
• No Data Loss in case of member failure
• Consistency
• Automatic failover in case of failure
Copyright © 2019 Oracle and/or its affiliates.
InnoDB ReplicaSet – when to use
• Single primary, multiple secondaries
• Read scale out with stale reads
• Secondary members only get stream of changes (binlog), does not
effect primary
• No network requirements, glitches in network do not impact availability
• 2 or more members
• During planned switchover; No data loss, split brain is handled
• Manual switchover/failover only
Copyright © 2019 Oracle and/or its affiliates.
Clone Plugin – Physical InnoDB Snapshot
A remote cloning operation
involves a local MySQL server
instance where the cloning
operation is initiated, and a
remote MySQL server instance
where the source data is
located.
When a remote cloning
operation is initiated on the
recipient, cloned data is
transferred over the network
from the donor to the recipient.
Copyright © 2019 Oracle and/or its affiliates.
Try InnoDB Cluster today in a sandbox!
Copyright © 2019 Oracle and/or its affiliates.
Create Sandbox systems 2 & 3
Copyright © 2019 Oracle and/or its affiliates.
Create InnoDB Cluster
Copyright © 2019 Oracle and/or its affiliates.
Add systems 2 & 3 to cluster
Copyright © 2019 Oracle and/or its affiliates.
And finally start router
Copyright © 2019 Oracle and/or its affiliates.
Consistency Levels
You may choose between the following consistency levels:
•EVENTUAL (the default)
The transaction does not wait for preceding transactions to be applied before executing, neither does it wait
for other members to apply its changes.
This was the behavior of Group Replication before 8.0.14.
•BEFORE
The transaction will wait until all preceding transactions are complete before starting its execution. This
ensures that this transaction will execute on the most up-to-date snapshot of the data, regardless of which
member it is executed on.
•AFTER
The transaction will wait until its changes have been applied on other members. This ensures that once this
transaction completes, all following transactions read a database state that includes its changes, regardless
of which member they are executed on.
•BEFORE_AND_AFTER
This transaction will wait until : 1) all preceding transactions are completed before starting its execution;
and 2) its changes have been applied on other members. This ensures that: 1) this transaction will execute
on the most up-to-date snapshot of the data; and 2) once this transaction completes, all following
transactions read a database state that includes its changes, regardless of which member they are executed
on.
Copyright © 2019 Oracle and/or its affiliates.
Resources on InnoDB Cluster & ReplicaSET
Planet.mysql.com
• lefred.be
• MySQLHighAvailability.com
Forums.MySQL.com
MySQLCommunity.slack.com
Copyright © 2019 Oracle and/or its affiliates.
MySQLHighAvailability.com
• Preserving commit order on replicas with binary log disabled
• https://mysqlhighavailability.com/preserve-commit-order-on-binlogless-
replicas/
• NDB Cluster 8.0 is Generally Available
• https://mysqlhighavailability.com/ndb-cluster-8-0-is-generally-available/
• Restrict MySQL replication to row based events
• https://mysqlhighavailability.com/restrict-replication-to-row-based-events/
Copyright © 2019 Oracle and/or its affiliates.
Thank You
Slides at
slideshare.net/davidmstokes
Copyright © 2019 Oracle and/or its affiliates.

Weitere ähnliche Inhalte

Was ist angesagt?

MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeArnab Ray
 
Mysql ecosystem in 2019
Mysql ecosystem in 2019Mysql ecosystem in 2019
Mysql ecosystem in 2019Alkin Tezuysal
 
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Keith Hollman
 
MySQL Enterprise Edition - Complete Guide (2019)
MySQL Enterprise Edition - Complete Guide (2019)MySQL Enterprise Edition - Complete Guide (2019)
MySQL Enterprise Edition - Complete Guide (2019)Keith Hollman
 
MySQL Community and Commercial Edition
MySQL Community and Commercial EditionMySQL Community and Commercial Edition
MySQL Community and Commercial EditionMario Beck
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology OverviewKeith Hollman
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLOlivier DASINI
 
MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015Mario Beck
 
MySQL 8.0 Released Update
MySQL 8.0 Released UpdateMySQL 8.0 Released Update
MySQL 8.0 Released UpdateKeith Hollman
 
Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Olivier DASINI
 
My sql enterprise_edition_wp_v38
My sql enterprise_edition_wp_v38My sql enterprise_edition_wp_v38
My sql enterprise_edition_wp_v38Jeton Selimi
 
Conference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningConference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningSeveralnines
 
MySQL 8.0 InnoDB Cluster demo
MySQL 8.0 InnoDB Cluster demoMySQL 8.0 InnoDB Cluster demo
MySQL 8.0 InnoDB Cluster demoKeith Hollman
 
01 upgrade to my sql8
01 upgrade to my sql8 01 upgrade to my sql8
01 upgrade to my sql8 Ted Wennmark
 
MySQL Enterprise Backup - BnR Scenarios
MySQL Enterprise Backup - BnR ScenariosMySQL Enterprise Backup - BnR Scenarios
MySQL Enterprise Backup - BnR ScenariosKeith Hollman
 
The roadmap for sql server 2019
The roadmap for sql server 2019The roadmap for sql server 2019
The roadmap for sql server 2019Javier Villegas
 
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013Andrew Morgan
 

Was ist angesagt? (20)

MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime Time
 
Mysql ecosystem in 2019
Mysql ecosystem in 2019Mysql ecosystem in 2019
Mysql ecosystem in 2019
 
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
 
MySQL Enterprise Edition - Complete Guide (2019)
MySQL Enterprise Edition - Complete Guide (2019)MySQL Enterprise Edition - Complete Guide (2019)
MySQL Enterprise Edition - Complete Guide (2019)
 
MySQL cluster 7.4
MySQL cluster 7.4 MySQL cluster 7.4
MySQL cluster 7.4
 
MySQL Cluster
MySQL ClusterMySQL Cluster
MySQL Cluster
 
MySQL Community and Commercial Edition
MySQL Community and Commercial EditionMySQL Community and Commercial Edition
MySQL Community and Commercial Edition
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
 
MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015
 
MySQL 8.0 Released Update
MySQL 8.0 Released UpdateMySQL 8.0 Released Update
MySQL 8.0 Released Update
 
Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0
 
My sql enterprise_edition_wp_v38
My sql enterprise_edition_wp_v38My sql enterprise_edition_wp_v38
My sql enterprise_edition_wp_v38
 
Conference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningConference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance Tuning
 
MySQL 8.0 InnoDB Cluster demo
MySQL 8.0 InnoDB Cluster demoMySQL 8.0 InnoDB Cluster demo
MySQL 8.0 InnoDB Cluster demo
 
01 upgrade to my sql8
01 upgrade to my sql8 01 upgrade to my sql8
01 upgrade to my sql8
 
MySQL Enterprise Backup - BnR Scenarios
MySQL Enterprise Backup - BnR ScenariosMySQL Enterprise Backup - BnR Scenarios
MySQL Enterprise Backup - BnR Scenarios
 
MySQL Cluster Basics
MySQL Cluster BasicsMySQL Cluster Basics
MySQL Cluster Basics
 
The roadmap for sql server 2019
The roadmap for sql server 2019The roadmap for sql server 2019
The roadmap for sql server 2019
 
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
 

Ähnlich wie Confoo 202 - MySQL Group Replication and ReplicaSet

MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMiguel Araújo
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & designMark Swarbrick
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellFrederic Descamps
 
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...Miguel Araújo
 
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...Geir Høydalsvik
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLMario Beck
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deploymentIvan Ma
 
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...Trivadis
 
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...Miguel Araújo
 
Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterBalasubramanian Kandasamy
 
Oracle Database Availability & Scalability Across Versions & Editions
Oracle Database Availability & Scalability Across Versions & EditionsOracle Database Availability & Scalability Across Versions & Editions
Oracle Database Availability & Scalability Across Versions & EditionsMarkus Michalewicz
 
Why to Use an Oracle Database?
Why to Use an Oracle Database? Why to Use an Oracle Database?
Why to Use an Oracle Database? Markus Michalewicz
 
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceMySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceOlivier DASINI
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQLMySQL Brasil
 
A Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document StoreA Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document StoreDave Stokes
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialFrederic Descamps
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability MattersMatt Lord
 
MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)Mirko Ortensi
 
Netherlands Tech Tour 03 - MySQL Cluster
Netherlands Tech Tour 03 -   MySQL ClusterNetherlands Tech Tour 03 -   MySQL Cluster
Netherlands Tech Tour 03 - MySQL ClusterMark Swarbrick
 
MySQL Web Reference Architecture
MySQL Web Reference Architecture MySQL Web Reference Architecture
MySQL Web Reference Architecture Ricky Setyawan
 

Ähnlich wie Confoo 202 - MySQL Group Replication and ReplicaSet (20)

MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & design
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL Shell
 
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
 
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQL
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
 
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
 
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...
 
Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB Cluster
 
Oracle Database Availability & Scalability Across Versions & Editions
Oracle Database Availability & Scalability Across Versions & EditionsOracle Database Availability & Scalability Across Versions & Editions
Oracle Database Availability & Scalability Across Versions & Editions
 
Why to Use an Oracle Database?
Why to Use an Oracle Database? Why to Use an Oracle Database?
Why to Use an Oracle Database?
 
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceMySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
 
A Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document StoreA Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document Store
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)MySQL Performance Tuning: The Perfect Scalability (OOW2019)
MySQL Performance Tuning: The Perfect Scalability (OOW2019)
 
Netherlands Tech Tour 03 - MySQL Cluster
Netherlands Tech Tour 03 -   MySQL ClusterNetherlands Tech Tour 03 -   MySQL Cluster
Netherlands Tech Tour 03 - MySQL Cluster
 
MySQL Web Reference Architecture
MySQL Web Reference Architecture MySQL Web Reference Architecture
MySQL Web Reference Architecture
 

Mehr von Dave Stokes

Json within a relational database
Json within a relational databaseJson within a relational database
Json within a relational databaseDave Stokes
 
Database basics for new-ish developers -- All Things Open October 18th 2021
Database basics for new-ish developers  -- All Things Open October 18th 2021Database basics for new-ish developers  -- All Things Open October 18th 2021
Database basics for new-ish developers -- All Things Open October 18th 2021Dave Stokes
 
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
Php & my sql  - how do pdo, mysq-li, and x devapi do what they doPhp & my sql  - how do pdo, mysq-li, and x devapi do what they do
Php & my sql - how do pdo, mysq-li, and x devapi do what they doDave Stokes
 
Longhorn PHP - MySQL Indexes, Histograms, Locking Options, and Other Ways to ...
Longhorn PHP - MySQL Indexes, Histograms, Locking Options, and Other Ways to ...Longhorn PHP - MySQL Indexes, Histograms, Locking Options, and Other Ways to ...
Longhorn PHP - MySQL Indexes, Histograms, Locking Options, and Other Ways to ...Dave Stokes
 
MySQL 8.0 New Features -- September 27th presentation for Open Source Summit
MySQL 8.0 New Features -- September 27th presentation for Open Source SummitMySQL 8.0 New Features -- September 27th presentation for Open Source Summit
MySQL 8.0 New Features -- September 27th presentation for Open Source SummitDave Stokes
 
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScriptJavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScriptDave Stokes
 
Open Source World June '21 -- JSON Within a Relational Database
Open Source World June '21 -- JSON Within a Relational DatabaseOpen Source World June '21 -- JSON Within a Relational Database
Open Source World June '21 -- JSON Within a Relational DatabaseDave Stokes
 
Dutch PHP Conference 2021 - MySQL Indexes and Histograms
Dutch PHP Conference 2021 - MySQL Indexes and HistogramsDutch PHP Conference 2021 - MySQL Indexes and Histograms
Dutch PHP Conference 2021 - MySQL Indexes and HistogramsDave Stokes
 
Validating JSON -- Percona Live 2021 presentation
Validating JSON -- Percona Live 2021 presentationValidating JSON -- Percona Live 2021 presentation
Validating JSON -- Percona Live 2021 presentationDave Stokes
 
Data Love Conference - Window Functions for Database Analytics
Data Love Conference - Window Functions for Database AnalyticsData Love Conference - Window Functions for Database Analytics
Data Love Conference - Window Functions for Database AnalyticsDave Stokes
 
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...Dave Stokes
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesDave Stokes
 
Confoo 2021 - MySQL Indexes & Histograms
Confoo 2021 - MySQL Indexes & HistogramsConfoo 2021 - MySQL Indexes & Histograms
Confoo 2021 - MySQL Indexes & HistogramsDave Stokes
 
Datacon LA - MySQL without the SQL - Oh my!
Datacon LA - MySQL without the SQL - Oh my! Datacon LA - MySQL without the SQL - Oh my!
Datacon LA - MySQL without the SQL - Oh my! Dave Stokes
 
MySQL Replication Update - DEbconf 2020 presentation
MySQL Replication Update - DEbconf 2020 presentationMySQL Replication Update - DEbconf 2020 presentation
MySQL Replication Update - DEbconf 2020 presentationDave Stokes
 
MySQL 8.0 Operational Changes
MySQL 8.0 Operational ChangesMySQL 8.0 Operational Changes
MySQL 8.0 Operational ChangesDave Stokes
 
cPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven FeaturescPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven FeaturesDave Stokes
 
Discover The Power of NoSQL + MySQL with MySQL
Discover The Power of NoSQL + MySQL with MySQLDiscover The Power of NoSQL + MySQL with MySQL
Discover The Power of NoSQL + MySQL with MySQLDave Stokes
 
Discover the Power of the NoSQL + SQL with MySQL
Discover the Power of the NoSQL + SQL with MySQLDiscover the Power of the NoSQL + SQL with MySQL
Discover the Power of the NoSQL + SQL with MySQLDave Stokes
 
PHP UK 2020 Tutorial: MySQL Indexes, Histograms And other ways To Speed Up Yo...
PHP UK 2020 Tutorial: MySQL Indexes, Histograms And other ways To Speed Up Yo...PHP UK 2020 Tutorial: MySQL Indexes, Histograms And other ways To Speed Up Yo...
PHP UK 2020 Tutorial: MySQL Indexes, Histograms And other ways To Speed Up Yo...Dave Stokes
 

Mehr von Dave Stokes (20)

Json within a relational database
Json within a relational databaseJson within a relational database
Json within a relational database
 
Database basics for new-ish developers -- All Things Open October 18th 2021
Database basics for new-ish developers  -- All Things Open October 18th 2021Database basics for new-ish developers  -- All Things Open October 18th 2021
Database basics for new-ish developers -- All Things Open October 18th 2021
 
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
Php & my sql  - how do pdo, mysq-li, and x devapi do what they doPhp & my sql  - how do pdo, mysq-li, and x devapi do what they do
Php & my sql - how do pdo, mysq-li, and x devapi do what they do
 
Longhorn PHP - MySQL Indexes, Histograms, Locking Options, and Other Ways to ...
Longhorn PHP - MySQL Indexes, Histograms, Locking Options, and Other Ways to ...Longhorn PHP - MySQL Indexes, Histograms, Locking Options, and Other Ways to ...
Longhorn PHP - MySQL Indexes, Histograms, Locking Options, and Other Ways to ...
 
MySQL 8.0 New Features -- September 27th presentation for Open Source Summit
MySQL 8.0 New Features -- September 27th presentation for Open Source SummitMySQL 8.0 New Features -- September 27th presentation for Open Source Summit
MySQL 8.0 New Features -- September 27th presentation for Open Source Summit
 
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScriptJavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
JavaScript and Friends August 20th, 20201 -- MySQL Shell and JavaScript
 
Open Source World June '21 -- JSON Within a Relational Database
Open Source World June '21 -- JSON Within a Relational DatabaseOpen Source World June '21 -- JSON Within a Relational Database
Open Source World June '21 -- JSON Within a Relational Database
 
Dutch PHP Conference 2021 - MySQL Indexes and Histograms
Dutch PHP Conference 2021 - MySQL Indexes and HistogramsDutch PHP Conference 2021 - MySQL Indexes and Histograms
Dutch PHP Conference 2021 - MySQL Indexes and Histograms
 
Validating JSON -- Percona Live 2021 presentation
Validating JSON -- Percona Live 2021 presentationValidating JSON -- Percona Live 2021 presentation
Validating JSON -- Percona Live 2021 presentation
 
Data Love Conference - Window Functions for Database Analytics
Data Love Conference - Window Functions for Database AnalyticsData Love Conference - Window Functions for Database Analytics
Data Love Conference - Window Functions for Database Analytics
 
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
Open Source 1010 and Quest InSync presentations March 30th, 2021 on MySQL Ind...
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New Features
 
Confoo 2021 - MySQL Indexes & Histograms
Confoo 2021 - MySQL Indexes & HistogramsConfoo 2021 - MySQL Indexes & Histograms
Confoo 2021 - MySQL Indexes & Histograms
 
Datacon LA - MySQL without the SQL - Oh my!
Datacon LA - MySQL without the SQL - Oh my! Datacon LA - MySQL without the SQL - Oh my!
Datacon LA - MySQL without the SQL - Oh my!
 
MySQL Replication Update - DEbconf 2020 presentation
MySQL Replication Update - DEbconf 2020 presentationMySQL Replication Update - DEbconf 2020 presentation
MySQL Replication Update - DEbconf 2020 presentation
 
MySQL 8.0 Operational Changes
MySQL 8.0 Operational ChangesMySQL 8.0 Operational Changes
MySQL 8.0 Operational Changes
 
cPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven FeaturescPanel now supports MySQL 8.0 - My Top Seven Features
cPanel now supports MySQL 8.0 - My Top Seven Features
 
Discover The Power of NoSQL + MySQL with MySQL
Discover The Power of NoSQL + MySQL with MySQLDiscover The Power of NoSQL + MySQL with MySQL
Discover The Power of NoSQL + MySQL with MySQL
 
Discover the Power of the NoSQL + SQL with MySQL
Discover the Power of the NoSQL + SQL with MySQLDiscover the Power of the NoSQL + SQL with MySQL
Discover the Power of the NoSQL + SQL with MySQL
 
PHP UK 2020 Tutorial: MySQL Indexes, Histograms And other ways To Speed Up Yo...
PHP UK 2020 Tutorial: MySQL Indexes, Histograms And other ways To Speed Up Yo...PHP UK 2020 Tutorial: MySQL Indexes, Histograms And other ways To Speed Up Yo...
PHP UK 2020 Tutorial: MySQL Indexes, Histograms And other ways To Speed Up Yo...
 

Kürzlich hochgeladen

Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMartaLoveguard
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationMarko4394
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)Christopher H Felton
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 

Kürzlich hochgeladen (20)

Magic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptxMagic exist by Marta Loveguard - presentation.pptx
Magic exist by Marta Loveguard - presentation.pptx
 
PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentation
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
A Good Girl's Guide to Murder (A Good Girl's Guide to Murder, #1)
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 

Confoo 202 - MySQL Group Replication and ReplicaSet

  • 1. MySQL Group Replication, ReplicaSet, & Architectures Dave Stokes @Stokes MySQL Community Manager Oracle Corporations Copyright © 2019 Oracle and/or its affiliates.
  • 2. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and are subject to material risks and uncertainties. A detailed discussion of these factors and other risks that affect our business is contained in Oracle’s Securities and Exchange Commission (SEC) filings, including our most recent reports on Form 10-K and Form 10-Q under the heading “Risk Factors.” These filings are available on the SEC’s website or on Oracle’s website at http://www.oracle.com/investor. All information in this presentation is current as of September 2019 and Oracle undertakes no duty to update any statement in light of new information or future events. Safe Harbor Copyright © 2019 Oracle and/or its affiliates.
  • 3. MySQL 5.6 End of Life February 2021!! Upgrade please! Copyright © 2019 Oracle and/or its affiliates.
  • 4. MySQL Replication Greatly Simplified Primary server makes change to data, records that change to a log file Replica fetches log entry, applies that change to its copy of the data We now have two copies of the same data Copyright © 2019 Oracle and/or its affiliates.
  • 5. Terminology – may be offensive Traditionally MySQL has used the terms master/slave, borrowed from the electronic industry. Slowly moving away from those terms but they are heavily used and probably stuck in the legacy of the product Copyright © 2019 Oracle and/or its affiliates.
  • 6. The Past • Setup of replication was done manually, with many steps Setup users, backup data, restore data, configuration, etc. • MySQL offered large components User had to customize setup for environment • Lots of work for DBAs/experts who spent time in automation Copyright © 2019 Oracle and/or its affiliates.
  • 7. Two General Types of Basic Replication Asynchronous Replication is asynchronous by default; replicas do not need to be connected permanently to receive updates from the master. Depending on the configuration, you can replicate all databases, selected databases, or even selected tables within a database. Semi synchronous Semi synchronous replication, a commit performed on the primary blocks before returning to the session that performed the transaction until at least one replica acknowledges that it has received and logged the events for the transaction. Copyright © 2019 Oracle and/or its affiliates.
  • 8. InnoDB Cluster - 2016 • Group Replication Automatic membership changes, consistency, network partition handling • MySQL Shell Many uses but here it is used to setup and administer InnoDB Cluster • InnoDB CLONE Plug-in Automatically provision members Fully integrated with InnoDB Copyright © 2019 Oracle and/or its affiliates.
  • 9. Having Multi-Primary solves the fundamental problem of MySQL – having single point of failure while leaving the system as close to ACID as it is expected from MySQL clusters. Giedrius Jaraminas Engineering manager of MySQL team at Uber https://lefred.be/content/mysql-day-the-uber-experience/ Copyright © 2019 Oracle and/or its affiliates.
  • 10. InnoDB Replica Set - 2020 • ‘Classic’ asynchronous replication based solution Fully integrated Copyright © 2019 Oracle and/or its affiliates.
  • 11. InnoDB Cluster A single product – MySQL – with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use. Copyright © 2019 Oracle and/or its affiliates.
  • 12. Components MySQL Server MySQL Group Replication MySQL Shell MySQL Router All components developed together, integrated. and tested Copyright © 2019 Oracle and/or its affiliates.
  • 13. Copyright © 2019 Oracle and/or its affiliates. By having your application talk through the Router to the data, the application is no longer dependent on the architecture of the cluster. The down side is that you may have to retry writes. And you are checking return codes, right??
  • 14. Copyright © 2019 Oracle and/or its affiliates.
  • 15. Easy to Use • One client – MySQL Shell • Integrated Orchestration • Homogenous Servers Copyright © 2019 Oracle and/or its affiliates.
  • 16. Group Replication • Fault Tolerant • Automatic Failover • Active/Active update anywhere • Automatic membership management Adding/Removing members Network partitions, failures • Conflict detection and resolution • Prevents Data Loss Copyright © 2019 Oracle and/or its affiliates.
  • 17. Group Replication • Implementation of the Replicated Database State Machine Total order writes XCOM – a Paxos implementation • Configurable Consistency Guarantees Eventual consistency 8.0 – per session and global read/write consistency • Using proven MySQL Replication Framework by design Binary logs Relay logs Global Transaction IDs – GTIDs • Generally Available since MySQL 5.7 • Supported on all platforms Linux, Windows, Solaris, Mac OSX, FreeBSD Copyright © 2019 Oracle and/or its affiliates.
  • 18. What are your business requirements? Recovery time Objective • How fast should the service recover from a failure? Recovery Point Objective • How much data loss can the service lose from a failure? Copyright © 2019 Oracle and/or its affiliates.
  • 19. What are your business requirements? Recovery time Objective • How fast should the service recover from a failure? Recovery Point Objective • How much data loss can the service lose from a failure? Types of failure • High Availability • Single server, network partition • Disaster Recovery • Full region/network failure • Human Error • Little Bobby Tables Copyright © 2019 Oracle and/or its affiliates.
  • 20. How much of those can you afford? • None • A few seconds • Minutes • Hours • Day • …… Copyright © 2019 Oracle and/or its affiliates.
  • 21. Group Replication Use Cases • Consistency: No data loss (Recover Point Objective) In the event of the failure of a primary member Split brain prevention by quorum • Highly Available: Automatic Failover Primary members automatically elected Automatic network partitioning handling Copyright © 2019 Oracle and/or its affiliates.
  • 22. Group Replication Use Cases • READ Scale out Add/Remove members as needed Replication Lag handling with Flow Control Configurable consistency levels Eventual Full consistency – no stale reads Copyright © 2019 Oracle and/or its affiliates.
  • 23. Group Replication Use Cases • Active/Active environments Write to many members at the same time Ordered writes within group (XCOM) Guaranteed consistency Good Write performance Optimistic Locking (Depends on workload) Copyright © 2019 Oracle and/or its affiliates.
  • 24. MySQL Router Transparent routing between your application and the back-end MySQL Servers • Transparent client connection routing • Load balancing • Application connection failover • Little to no configuration needed Copyright © 2019 Oracle and/or its affiliates.
  • 25. MySQL Router • Stateless design offers easy HA client routing • Router as part of application stack • Integration into InnoDB Cluster and Replica Set • Understands Group Replication and replication technology • Currently TCP/IP for primary and non-primary traffic Copyright © 2019 Oracle and/or its affiliates.
  • 26. MySQL Shell • Provides the developer and DBA with a single, intuitive, flexible, and powerful interface for all MySQL Related Tasks • Multi Language • SQL • Python • JavaScript Copyright © 2019 Oracle and/or its affiliates.
  • 27. MySQL Shell • Naturally scriptable • Supports both document and relational models • Exposes full development and administrative APIs • Classic MySQL and X Protocol support Copyright © 2019 Oracle and/or its affiliates.
  • 28. MySQL Shell – Easy to Use! Mysqlsh-js> c admin@host1 Mysqlsh-js> cluster = dba.createCluster(‘cluster’) Copyright © 2019 Oracle and/or its affiliates.
  • 29. MySQL Shell – Configure 2nd Server Mysqlsh-js> c admin@host1 Mysqlsh-js> cluster = dba.createCluster(‘cluster’) Mysqlsh-js> dba.configureInstance(‘admin@host2’) Copyright © 2019 Oracle and/or its affiliates.
  • 30. MySQL Shell – Add 2nd Server Mysqlsh-js> c admin@host1 Mysqlsh-js> cluster = dba.createCluster(‘cluster’) Mysqlsh-js> dba.configureInstance(‘admin@host2’) Mysqlsh-js> dba.addInstance(‘admin@host2’) Copyright © 2019 Oracle and/or its affiliates. And we will add a third server (not shown)
  • 31. MySQL Shell – Start MySQL Router Mysqlsh-js> c admin@host1 Mysqlsh-js> cluster = dba.createCluster(‘cluster’) Mysqlsh-js> dba.configureInstance(‘admin@host2’) Mysqlsh-js> dba.addInstance(‘admin@host2’) $ sudo mysqlrouter –user=mysqlrouter –bootstrap $ sudo systemctl start mysqlrouter Copyright © 2019 Oracle and/or its affiliates.
  • 32. Copyright © 2019 Oracle and/or its affiliates. cluster.status() { "clusterName": "testCluster", "defaultReplicaSet": { "name": "default", "primary": "localhost:3320", "ssl": "REQUIRED", "status": "OK", "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.", "topology": { "localhost:3310": { "address": "localhost:3310", "mode": "R/O", "readReplicas": {}, "role": "HA", "status": "ONLINE" }, "localhost:3320": { "address": "localhost:3320", "mode": "R/W", "readReplicas": {}, "role": "HA", "status": "ONLINE" }, "localhost:3330": { "address": "localhost:3330", "mode": "R/O", "readReplicas": {}, "role": "HA", "status": "ONLINE" } } } }
  • 33. InnoDB Replica Set • MySQL 8.0.19 • Fully integrated with MySQL Router Automatic routing • Ease of use with MySQL Shell Configuring, adding members, removing members • Replication Architecture Manual switchover and Failover Asynchronous read scale out Simple replication architecture No network/hardware requirements Providing availability on PRIMARY when issues with secondaries or network Copyright © 2019 Oracle and/or its affiliates.
  • 34. MySQL ReplicaSet Features Past Restore a backup or provision new member Present Automatic provision with InnoDB Clone Copyright © 2019 Oracle and/or its affiliates.
  • 35. MySQL ReplicaSet Features Past Restore a backup or provision new member Configure replication users Configure replication Present Automatic provision with InnoDB Clone MySQL shell automatically configures users and replication Copyright © 2019 Oracle and/or its affiliates.
  • 36. MySQL ReplicaSet Features Past Restore a backup or provision new member Configure replication users Configure replication Manual configuration, adding/removing servers in application, MySQL Router or other proxy Present Automatic provision with InnoDB Clone MySQL shell automatically configures users and replication Integrated MySQL Router load balancing Only need to bootstrap Router Router is stateless, adapts to topology changesCopyright © 2019 Oracle and/or its affiliates.
  • 37. MySQL ReplicaSet Features Past Manual or relying on external tools to make topology changes Use additional monitoring tool to login to each server to check topology status Present Easy to use manual switchover/failover See status of topology through MySQL Shell status() Copyright © 2019 Oracle and/or its affiliates.
  • 38. MySQL ReplicaSet Features Past Complexity: User is responsible for the full configuration of every component and its settings Every setup is custom Lots of manual steps and additional software required, always customized and often over engineered by MySQL DBAs Present Shell configures server, router, replication in a standardized best practice setup, prevents mistakes Standard solution Supported & Q/A-ed by Oracle Easy to use, even for beginners Copyright © 2019 Oracle and/or its affiliates.
  • 39. MySQL ReplicaSet Requirements & Limitations 1. Requirements 1. SET PERSIST (MySQL 8.0) 2. GTIDs 2. Limitations 1. Manual failover 2. No multi-primary as such topology can not guarantee data consistency 3. All secondary members replicate from primary Copyright © 2019 Oracle and/or its affiliates.
  • 40. MySQL ReplicaSet & Router Integration • --bootstrap to automatically configure • Metadata schema contain replication topology • Health checks performed on all members • Switch over to new primary:setPrimaryInstance() • Shell performs topology change, configures super_read_only and updates view_id in metadata • Router automatically sees higher view_id nd and will redirect primary traffic to new primary • When primary is lost: forcePrimaryInstance() • Shell performs topology change , updates view_id in metatdata and invalidates lost primary • Router will notice new topology change by higher view_id in metatdata and automatically connects to new primary Copyright © 2019 Oracle and/or its affiliates.
  • 41. MySQL Shell : InnoDB Cluster versus InnoDB ReplicaSet Mysql-js>c root@h1 Mysql-js>cluster = dba.createCluster(‘cluster’) Mysql-js>c root@h1 Mysql-js>rs = dba.createReplicaSet(‘replicaset’) Copyright © 2019 Oracle and/or its affiliates.
  • 42. MySQL Shell : InnoDB Cluster versus InnoDB ReplicaSet Mysql-js>c root@h1 Mysql-js>cluster = dba.createCluster(‘cluster’) Mysql-js>c root@h1 Mysql-js>rs = dba.createReplicaSet(‘replicaset’) Mysql-js> dba.configureInstance(‘admin@h1’) Mysql-js>dba.configureReplicaSet(‘admin@h1’) Copyright © 2019 Oracle and/or its affiliates.
  • 43. MySQL Shell : InnoDB Cluster versus InnoDB ReplicaSet Mysql- js>cluster.addInstance(‘admin@h1’) Mysql- js>rs.addInstance(‘admin@h1’) Copyright © 2019 Oracle and/or its affiliates.
  • 44. MySQL Shell : InnoDB Cluster versus InnoDB ReplicaSet Mysql- js>cluster.addInstance(‘admi n@h1’) Mysql- js>rs.addInstance(‘admin@h1’) $sudo mysqlrouter –user = mysqlrouter –bootstrap $sudo systemctl start mysqlrouter $sudo mysqlrouter –user = mysqlrouter –bootstrap $sudo systemctl start mysqlrouter Copyright © 2019 Oracle and/or its affiliates.
  • 45. MySQL InnoDB ReplicaSet – Manual failover Designed for manual failover • External monitoring process decides failover can have a lot of false positives. • External tool decides , if tool has issues you have bigger issues • Split brain issues • Majority of production environments user manual failover, which increases uptime • When you need automatic failover use MySQL InnoDB Cluster instead of semi-sync Copyright © 2019 Oracle and/or its affiliates.
  • 46. MySQL InnoDB ReplicaSet – Manual failover Example: • 1 primary • 2 secondary • 2 proxies (on app servers) • 1 management server Problem: management server and replica server partitioned from other servers – what will happen?? Copyright © 2019 Oracle and/or its affiliates. Secondary •h1 Primary •h2 Secondary •h3 Async/Semi-sync Proxy/AP Proxy/Ap Mgmt
  • 47. MySQL InnoDB ReplicaSet – Manual failover Example: • 1 primary • 2 secondary • 2 proxies (on app servers) • 1 management server Copyright © 2019 Oracle and/or its affiliates. Secondary •h1 Primary •h2 Secondary •h3 Async/Semi-sync Proxy/AP Proxy/Ap Mgmt Writes
  • 48. MySQL InnoDB ReplicaSet – Manual failover Example: • 1 primary • 2 secondary • 2 proxies (on app servers) • 1 management server Problem: management server and replica server partitioned from other servers – what will happen?? The management might promote the secondary causing a split brain Copyright © 2019 Oracle and/or its affiliates. Secondary •h1 Primary •h2 Secondary •h3 Proxy/AP Proxy/Ap Mgmt Writes Network Partition
  • 49. MySQL InnoDB ReplicaSet – Manual failover Example: • 1 primary • 2 secondary • 2 proxies (on app servers) • 1 management server Problem: management server and replica server partitioned from other servers – what will happen?? The management might promote the secondary causing a split brain Copyright © 2019 Oracle and/or its affiliates. Secondary •h1 Primary •h2 Secondary •h3 Proxy/AP Proxy/Ap Mgmt Writes Network Partition Use InnoDB Cluster over semi-sync because as semi- sync needs all members to ack to prevent split brain, causing downtime with every glitch
  • 50. InnoDB Cluster – when to use • Single primary, multiple secondaries OR Multi-Primary (write to all) • Read scale out with configurable consistent reads • All members take part in consensus (writes as fast as the slowest node) • Stable network is required: Net glitches cause stalls/membership changes • Uneven number of members required • No Data Loss in case of member failure • Consistency • Automatic failover in case of failure Copyright © 2019 Oracle and/or its affiliates.
  • 51. InnoDB ReplicaSet – when to use • Single primary, multiple secondaries • Read scale out with stale reads • Secondary members only get stream of changes (binlog), does not effect primary • No network requirements, glitches in network do not impact availability • 2 or more members • During planned switchover; No data loss, split brain is handled • Manual switchover/failover only Copyright © 2019 Oracle and/or its affiliates.
  • 52. Clone Plugin – Physical InnoDB Snapshot A remote cloning operation involves a local MySQL server instance where the cloning operation is initiated, and a remote MySQL server instance where the source data is located. When a remote cloning operation is initiated on the recipient, cloned data is transferred over the network from the donor to the recipient. Copyright © 2019 Oracle and/or its affiliates.
  • 53. Try InnoDB Cluster today in a sandbox! Copyright © 2019 Oracle and/or its affiliates.
  • 54. Create Sandbox systems 2 & 3 Copyright © 2019 Oracle and/or its affiliates.
  • 55. Create InnoDB Cluster Copyright © 2019 Oracle and/or its affiliates.
  • 56. Add systems 2 & 3 to cluster Copyright © 2019 Oracle and/or its affiliates.
  • 57. And finally start router Copyright © 2019 Oracle and/or its affiliates.
  • 58. Consistency Levels You may choose between the following consistency levels: •EVENTUAL (the default) The transaction does not wait for preceding transactions to be applied before executing, neither does it wait for other members to apply its changes. This was the behavior of Group Replication before 8.0.14. •BEFORE The transaction will wait until all preceding transactions are complete before starting its execution. This ensures that this transaction will execute on the most up-to-date snapshot of the data, regardless of which member it is executed on. •AFTER The transaction will wait until its changes have been applied on other members. This ensures that once this transaction completes, all following transactions read a database state that includes its changes, regardless of which member they are executed on. •BEFORE_AND_AFTER This transaction will wait until : 1) all preceding transactions are completed before starting its execution; and 2) its changes have been applied on other members. This ensures that: 1) this transaction will execute on the most up-to-date snapshot of the data; and 2) once this transaction completes, all following transactions read a database state that includes its changes, regardless of which member they are executed on. Copyright © 2019 Oracle and/or its affiliates.
  • 59. Resources on InnoDB Cluster & ReplicaSET Planet.mysql.com • lefred.be • MySQLHighAvailability.com Forums.MySQL.com MySQLCommunity.slack.com Copyright © 2019 Oracle and/or its affiliates.
  • 60. MySQLHighAvailability.com • Preserving commit order on replicas with binary log disabled • https://mysqlhighavailability.com/preserve-commit-order-on-binlogless- replicas/ • NDB Cluster 8.0 is Generally Available • https://mysqlhighavailability.com/ndb-cluster-8-0-is-generally-available/ • Restrict MySQL replication to row based events • https://mysqlhighavailability.com/restrict-replication-to-row-based-events/ Copyright © 2019 Oracle and/or its affiliates.
  • 61. Thank You Slides at slideshare.net/davidmstokes Copyright © 2019 Oracle and/or its affiliates.