SlideShare a Scribd company logo
1 of 143
Download to read offline
1 / 143
2 / 143
Helsinki MySQL User Group
May 18th 2017
MySQL InnoDB Cluster
When MySQL High Availability is Made Easy
 
 
 
 
Frédéric Descamps - MySQL Community Manager - Oracle
3 / 143
 
Safe Harbor Statement
The following is intended to outline our generalproduct direction. It isintended for
information purpose only, and may not be incorporated into any contract. It isnot a
commitment to deliver any material, code, or functionality, and should not be relied up in
making purchasing decisions. Thedevelopment, release and timing of any features or
functionality described for Oracle´s product remains at thesole discretion of Oracle.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
4 / 143
about.me/lefred
Who am I ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
5 / 143
Frédéric Descamps
@lefred
MySQLEvangelist
HackingMySQLsince 3.23
devops believer
MySQLCommunity Manager since May
2016 (🎂)
living in Belgium 🇧🇪
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
6 / 143
MySQL InnoDB Cluster
Easy MySQL High Availability
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
7 / 143
InnoDB
cluster
Ease-of-Use
ExtremeScale-Out
Out-of-BoxSolution
Built-inHA
HighP erformance
EverythingIntegr ated
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
8 / 143
Our vision in 4 steps
MySQLDocumentStore
Relational&DocumentModels
MySQLHA
Out-Of-BoxHA
ReadScale-Out
AsyncReplication+A utoFailover
WriteScale-Out
Sharding
E1 E3
E2 E4
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
9 / 143
Step 2´s Architecture
Application
MySQLConnector
MySQLRouter
MySQLShell
InnoDB
cluster
Application
MySQLConnector
MySQLRouter
Mp
M
M
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
10 / 143
Step 3´s Architecture
Application
MySQLConnector
MySQLRouter
MySQLShell
InnoDB
cluster
Application
MySQLConnector
MySQLRouter
Mp
M
M
S1 S2 S3 S4 S...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
11 / 143
Step 4´s Architecture
Application
MySQLConnector
MySQLRouter
MySQLShell
Application
MySQLConnector
MySQLRouter
InnoDB
cluster
Mp
M
M
S2 S3 S4 S...S1
InnoDB
cluster
Mp
M
M
S1 S2 S3 S4 S...
InnoDB
cluster
Mp
M
M
S1 S2 S3 S4 S...
Application
MySQLConnector
MySQLRouter
Application
MySQLConnector
MySQLRouter
Application
MySQLConnector
MySQLRouter
replicaset1
replicaset2
replicaset3
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
12 / 143
Group Replication: heart of MySQL InnoDB
Cluster
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
13 / 143
Group Replication: heart of MySQL InnoDB
Cluster
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
14 / 143
But before going further...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
15 / 143
What is
High Availability ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
16 / 143
High Availability
High availability is a characteristicofa system, which aimstoensureanagreedlevelof
operational performance, usuallyuptime, for a higher thannormalperiod.
There are three principles of systemsdesigninreliabilityengineeringwhichcanhelp
achieve high availability:
Elimination of single points offailure. Thismeansaddingredundancyto the system
so that failure of a componentdoesnotmeanfailureoftheentiresystem.
Reliable crossover. In redundantsystems, thecrossover pointitselftendstobecome
a single point of failure. Reliablesystemsmustprovideforreliablecrossover.
Detection of failures as they occur. Ifthetwoprinciplesaboveareobserved,thena
user may never see a failure. Butthemaintenanceactivitymust.
Source: WikipediaCopyright @ 2017 Oracle and/or its affiliates. All rights reserved.
17 / 143
Database Redundancy
How to achieve it ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
18 / 143
Database Redundancy
How to achieve it ?
Multiple solutions exist, someworse thantheothers ;-)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
19 / 143
Database Redundancy
How to achieve it ?
Multiple solutions exist, someworse thantheothers ;-)
use of share storage
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
20 / 143
Database Redundancy
How to achieve it ?
Multiple solutions exist, someworse thantheothers ;-)
use of share storage
use of share blocs by network(drbd)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
21 / 143
Database Redundancy
How to achieve it ?
Multiple solutions exist, someworse thantheothers ;-)
use of share storage
use of share blocs by network(drbd)
use of MySQLreplication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
22 / 143
Database Redundancy
How to achieve it ?
Multiple solutions exist, someworse thantheothers ;-)
use of share storage
use of share blocs by network(drbd)
use of MySQLreplication
Of course the last one is the technique most spread, more flexible and more reliable.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
23 / 143
MySQL Replication
There are multiple types of MySQLreplication:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
24 / 143
MySQL Replication
There are multiple types of MySQLreplication:
asynchronous replication (async)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
25 / 143
MySQL Replication
There are multiple types of MySQLreplication:
asynchronous replication (async)
semi-synchronous replication(semi-sync)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
26 / 143
MySQL Replication
There are multiple types of MySQLreplication:
asynchronous replication (async)
semi-synchronous replication(semi-sync)
group replication -since (5.7.17) !!
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
27 / 143
Asynchronous Replication(s)
replicas (also called slaves) stream thereplication logs froma unique master (multi-
source replication is possiblesince5.7.6)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
28 / 143
Asynchronous Replication(s)
replicas (also called slaves) stream thereplication logs froma unique master (multi-
source replication is possiblesince5.7.6)
slaves can be laging (having delay), there isno delivery guarantee (unless for semi-
sync)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
29 / 143
Asynchronous Replication(s)
replicas (also called slaves) stream thereplication logs froma unique master (multi-
source replication is possiblesince5.7.6)
slaves can be laging (having delay), there isno delivery guarantee (unless for semi-
sync)
replicas provisioning is manual
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
30 / 143
Asynchronous Replication(s)
replicas (also called slaves) stream thereplication logs froma unique master (multi-
source replication is possiblesince5.7.6)
slaves can be laging (having delay), there isno delivery guarantee (unless for semi-
sync)
replicas provisioning is manual
data consistency on replicas is assumed and needs a manual verification
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
31 / 143
Asynchronous Replication(s)
replicas (also called slaves) stream thereplication logs froma unique master (multi-
source replication is possiblesince5.7.6)
slaves can be laging (having delay), there isno delivery guarantee (unless for semi-
sync)
replicas provisioning is manual
data consistency on replicas is assumed and needs a manual verification
it´s even possible to create circular replication (highly not recommended)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
32 / 143
Asynchronous Replication(s)
replicas (also called slaves) stream thereplication logs froma unique master (multi-
source replication is possiblesince5.7.6)
slaves can be laging (having delay), there isno delivery guarantee (unless for semi-
sync)
replicas provisioning is manual
data consistency on replicas is assumed and needs a manual verification
it´s even possible to create circular replication (highly not recommended)
write operations are safe onlyfrom a unique global master
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
33 / 143
Asynchronous Replication(s)
complex topologies can be built
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
34 / 143
Asynchronous Replication(s)
complex topologies can be built
1
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
35 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
36 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
4
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
37 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
4
5
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
38 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
4
5
6 7 8
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
39 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
4
5
6 7 8
9
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
40 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
4
5
6 7 8
9
10
14
15
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
41 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
4
5
6 7 8
9
10
11
14
15
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
42 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
4
5
6 7 8
9
10
11
12
14
15
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
43 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
4
5
6 7 8
9
10
11
12
13
14
15
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
44 / 143
Asynchronous Replication(s)
complex topologies can be built
1
32
4
5
6 7 8
9
10
11
12
13
14
15
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
45 / 143
MySQL HA Architectures with asynchronous
replication
It exists a lot of possible architectures and asmuch tools to enforce them.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
46 / 143
MySQL HA Architectures with asynchronous
replication
It exists a lot of possible architectures and asmuch tools to enforce them.
They are all based on the sameprinciple:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
47 / 143
MySQL HA Architectures with asynchronous
replication
It exists a lot of possible architectures and asmuch tools to enforce them.
They are all based on the sameprinciple:
1 master
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
48 / 143
MySQL HA Architectures with asynchronous
replication
It exists a lot of possible architectures and asmuch tools to enforce them.
They are all based on the sameprinciple:
1 master
1 or many replicas (slaves)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
49 / 143
MySQL HA Architectures with asynchronous
replication
It exists a lot of possible architectures and asmuch tools to enforce them.
They are all based on the sameprinciple:
1 master
1 or many replicas (slaves)
If the master as an issue, the most accurate slave needs to takeover therole and be
promoted as master for all the remaining slaves still online.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
50 / 143
Automation
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
51 / 143
Automation
And this is the most complicated part...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
52 / 143
Automation
And this is the most complicated part...
It exists a large amount of external tools that canbe used to achieve thistask.Most of
them are only compatible with GNU/Linux.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
53 / 143
Automation
And this is the most complicated part...
It exists a large amount of external tools that canbe used to achieve thistask.Most of
them are only compatible with GNU/Linux.
Their problem is that they create complexity inthearchitecture's design. You need to be
DBA & sysadmin to manage those solutions:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
54 / 143
Automation
And this is the most complicated part...
It exists a large amount of external tools that canbe used to achieve thistask.Most of
them are only compatible with GNU/Linux.
Their problem is that they create complexity inthearchitecture's design. You need to be
DBA & sysadmin to manage those solutions:
MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
55 / 143
Automation
And this is the most complicated part...
It exists a large amount of external tools that canbe used to achieve thistask.Most of
them are only compatible with GNU/Linux.
Their problem is that they create complexity inthearchitecture's design. You need to be
DBA & sysadmin to manage those solutions:
MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)
Pacemaker withMySQLdedicated OCF
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
56 / 143
Automation
And this is the most complicated part...
It exists a large amount of external tools that canbe used to achieve thistask.Most of
them are only compatible with GNU/Linux.
Their problem is that they create complexity inthearchitecture's design. You need to be
DBA & sysadmin to manage those solutions:
MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)
Pacemaker withMySQLdedicated OCF
custom solutions...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
57 / 143
MySQL Group Replication
but what is it ?!?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
58 / 143
MySQL Group Replication
but what is it ?!?
GR is a plugin forMySQL, made byMySQLand packaged withMySQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
59 / 143
MySQL Group Replication
but what is it ?!?
GR is a plugin forMySQL, made byMySQLand packaged withMySQL
GR is an implementation of Replicated Database State Machine theory
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
60 / 143
MySQL Group Replication
but what is it ?!?
GR is a plugin forMySQL, made byMySQLand packaged withMySQL
GR is an implementation of Replicated Database State Machine theory
GR uses a Paxos based protocol
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
61 / 143
MySQL Group Replication
but what is it ?!?
GR is a plugin forMySQL, made byMySQLand packaged withMySQL
GR is an implementation of Replicated Database State Machine theory
GR uses a Paxos based protocol
GR allows to write on all Group Members (cluster nodes) simultaneously while
retaining consistency
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
62 / 143
MySQL Group Replication
but what is it ?!?
GR is a plugin forMySQL, made byMySQLand packaged withMySQL
GR is an implementation of Replicated Database State Machine theory
GR uses a Paxos based protocol
GR allows to write on all Group Members (cluster nodes) simultaneously while
retaining consistency
GR implements conflict detection and resolution
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
63 / 143
MySQL Group Replication
but what is it ?!?
GR is a plugin forMySQL, made byMySQLand packaged withMySQL
GR is an implementation of Replicated Database State Machine theory
GR uses a Paxos based protocol
GR allows to write on all Group Members (cluster nodes) simultaneously while
retaining consistency
GR implements conflict detection and resolution
GR allows automatic distributed recovery
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
64 / 143
MySQL Group Replication
but what is it ?!?
GR is a plugin forMySQL, made byMySQLand packaged withMySQL
GR is an implementation of Replicated Database State Machine theory
GR uses a Paxos based protocol
GR allows to write on all Group Members (cluster nodes) simultaneously while
retaining consistency
GR implements conflict detection and resolution
GR allows automatic distributed recovery
Supported onallMySQLplatforms!!
Linux, Windows, Solaris, OSX,FreeBSD
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
65 / 143
And for users ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
66 / 143
And for users ?
no longer necessary to handleserver fail-over manually or with a complicated script
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
67 / 143
And for users ?
no longer necessary to handleserver fail-over manually or with a complicated script
GR provides fault tolerance
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
68 / 143
And for users ?
no longer necessary to handleserver fail-over manually or with a complicated script
GR provides fault tolerance
GR enables update-everywhere setups
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
69 / 143
And for users ?
no longer necessary to handleserver fail-over manually or with a complicated script
GR provides fault tolerance
GR enables update-everywhere setups
GR handles crashes, failures, re-connetcs automatically
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
70 / 143
And for users ?
no longer necessary to handleserver fail-over manually or with a complicated script
GR provides fault tolerance
GR enables update-everywhere setups
GR handles crashes, failures, re-connetcs automatically
Allows an easy setup of aMySQLservice high available !
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
71 / 143
OK, but how does it work ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
72 / 143
OK, but how does it work ?
it's just ...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
73 / 143
OK, but how does it work ?
it's just ...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
74 / 143
OK, but how does it work ?
it's just ...
... no, in fact the writesets replication issynchronousand then certification and apply of
the changes are local to each nodes and asynchronous.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
75 / 143
OK, but how does it work ?
it's just ...
... no, in fact the writesets replication issynchronousand then certification and apply of
the changes are local to each nodes and asynchronous.
not that easy to understand... right ? As a picture isworth a 1000words, let's illustrate
this...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
76 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
77 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
78 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
79 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
80 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
81 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
82 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
83 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
84 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
85 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
86 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
87 / 143
MySQLGroup Replication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
88 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
89 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
90 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
based on unapplied earlier transactions
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
91 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
based on unapplied earlier transactions
such conflicts must come forother members/nodes
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
92 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
based on unapplied earlier transactions
such conflicts must come forother members/nodes
happens on every member/node
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
93 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
based on unapplied earlier transactions
such conflicts must come forother members/nodes
happens on every member/node
should be deterministic on every node
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
94 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
based on unapplied earlier transactions
such conflicts must come forother members/nodes
happens on every member/node
should be deterministic on every node
results are not reported to thegroup
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
95 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
based on unapplied earlier transactions
such conflicts must come forother members/nodes
happens on every member/node
should be deterministic on every node
results are not reported to thegroup
pass: enter in the apply queue
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
96 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
based on unapplied earlier transactions
such conflicts must come forother members/nodes
happens on every member/node
should be deterministic on every node
results are not reported to thegroup
pass: enter in the apply queue
fail: drop the transaction
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
97 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
based on unapplied earlier transactions
such conflicts must come forother members/nodes
happens on every member/node
should be deterministic on every node
results are not reported to thegroup
pass: enter in the apply queue
fail: drop the transaction
serialized by the total order in GCS/XCOM+ GTID
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
98 / 143
Certification
Certification is the process that only needs to answer thefollowing unique question:
can the write (transaction) beapplied?
based on unapplied earlier transactions
such conflicts must come forother members/nodes
happens on every member/node
should be deterministic on every node
results are not reported to thegroup
pass: enter in the apply queue
fail: drop the transaction
serialized by the total order in GCS/XCOM+ GTID
cost is based on trx size (# rows &# keys)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
99 / 143
GTID
GTIDs are the same as those used by asynchronous replication.
mysql> SELECT * FROM performance_schema.replication_connection_statusG
************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
GROUP_NAME: afb80f36-2bff-11e6-84e0-0800277dd3bf
SOURCE_UUID: afb80f36-2bff-11e6-84e0-0800277dd3bf
THREAD_ID: NULL
SERVICE_STATE: ON
COUNT_RECEIVED_HEARTBEATS: 0
LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00
RECEIVED_TRANSACTION_SET: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57,
f037578b-46b1-11e6-8005-08002774c31b:1-48937
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
100 / 143
but transactions use the Group´s GTID
mysql> show master statusG
************************** 1. row ***************************
File: mysql4-bin.000001
Position: 1501
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57,
f037578b-46b1-11e6-8005-08002774c31b:1-48937
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
101 / 143
Requirements
exclusively works with InnoDBtables only
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
102 / 143
Requirements
exclusively works with InnoDBtables only
every tables must have a PK defined
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
103 / 143
Requirements
exclusively works with InnoDBtables only
every tables must have a PK defined
only IPV4 is supported
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
104 / 143
Requirements
exclusively works with InnoDBtables only
every tables must have a PK defined
only IPV4 is supported
a good network with low latency isimportant
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
105 / 143
Requirements
exclusively works with InnoDBtables only
every tables must have a PK defined
only IPV4 is supported
a good network with low latency isimportant
maximum of 9 members per group
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
106 / 143
Requirements
exclusively works with InnoDBtables only
every tables must have a PK defined
only IPV4 is supported
a good network with low latency isimportant
maximum of 9 members per group
log-bin must be enabled and onlyROWformat is supported
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
107 / 143
Requirements (2)
enable GTIDs
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
108 / 143
Requirements (2)
enable GTIDs
replication meta-data must bestored insystem tables
--master-info-repository=TABLE
--relay-log-info-repository=TABLE
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
109 / 143
Requirements (2)
enable GTIDs
replication meta-data must bestored insystem tables
--master-info-repository=TABLE
--relay-log-info-repository=TABLE
writesets extraction must be enabled
--transaction-write-set-extraction=XXHASH64
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
110 / 143
Requirements (2)
enable GTIDs
replication meta-data must bestored insystem tables
--master-info-repository=TABLE
--relay-log-info-repository=TABLE
writesets extraction must be enabled
--transaction-write-set-extraction=XXHASH64
log-slave-updates must alsobe enabled
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
111 / 143
Limitations
binlog checksum is not supported (but we have checksum in the replicationchannel)
--binlog-checksum=NONE
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
112 / 143
Limitations
binlog checksum is not supported (but we have checksum in the replicationchannel)
--binlog-checksum=NONE
savepointswere not supported before 5.7.19& 8.0.1
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
113 / 143
Limitations
binlog checksum is not supported (but we have checksum in the replicationchannel)
--binlog-checksum=NONE
savepointswere not supported before 5.7.19& 8.0.1
SERIALIZABLEis not supported as transaction isolation level
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
114 / 143
Limitations
binlog checksum is not supported (but we have checksum in the replicationchannel)
--binlog-checksum=NONE
savepointswere not supported before 5.7.19& 8.0.1
SERIALIZABLEis not supported as transaction isolation level
http://lefred.be/content/mysql-group-replication-limitations-savepoints/
http://lefred.be/content/mysql-group-replication-and-table-design/
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
115 / 143
Default = Single Primary Mode
By default, MySQLInnoDBClusterruns inSingle Primary Mode.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
116 / 143
Default = Single Primary Mode
By default, MySQLInnoDBClusterruns inSingle Primary Mode.
mysql> show global variables like 'group_replication_single_primary_mode';
+---------------------------------------+-------+
| Variable_name | Value |
+---------------------------------------+-------+
| group_replication_single_primary_mode | ON |
+---------------------------------------+-------+
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
117 / 143
Default = Single Primary Mode
By default, MySQLInnoDBClusterruns inSingle Primary Mode.
mysql> show global variables like 'group_replication_single_primary_mode';
+---------------------------------------+-------+
| Variable_name | Value |
+---------------------------------------+-------+
| group_replication_single_primary_mode | ON |
+---------------------------------------+-------+
In Single Primary Mode, a single member acts asthewritable master (PRIMARY) and the
rest of the members act as hot-standbys (SECONDARY).
The group itself coordinates and configures itself automatically to determine which
member will act as thePRIMARY, through a leader election mechanism.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
118 / 143
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
119 / 143
MySQL Router (GA!)
MySQLRouter is lightweight middleware that provides transparent routing between your
application and backendMySQLServers. It can be used for awide variety of use cases,
such as providing high availability and scalability by effectively routing database trafficto
appropriate backendMySQLServers.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
120 / 143
MySQL Router (GA!)
MySQLRouter is lightweight middleware that provides transparent routing between your
application and backendMySQLServers. It can be used for awide variety of use cases,
such as providing high availability and scalability by effectively routing database trafficto
appropriate backendMySQLServers.
MySQLRouter doesn´t require any specific configuration. Itconfigures itself automatically
(bootstrap) usingMySQLInnoDB Cluster´s metadata.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
121 / 143
MySQL Router (GA!)
MySQLRouter is lightweight middleware that provides transparent routing between your
application and backendMySQLServers. It can be used for awide variety of use cases,
such as providing high availability and scalability by effectively routing database trafficto
appropriate backendMySQLServers.
MySQLRouter doesn´t require any specific configuration. Itconfigures itself automatically
(bootstrap) usingMySQLInnoDB Cluster´s metadata.
TheMySQLRouter development will be focusing on sharding.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
122 / 143
ProxySQLhas native support for Group
Replication which makes it a good choice for
advanced users.
ProxySQL
If you need some specific features that are not yet available inMySQLRouter, like
transparent R/W splitting, then you canuse your software of choice.
We are also collaborating with ProxySQL.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
123 / 143
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
124 / 143
MySQL Shell (GA!)
TheMySQLShell is an interactive Javascript, Python, or SQLinterface supporting
development and administration for theMySQLServer and is acomponent of theMySQL
Server. You can use theMySQLShell to perform data queriesand updates aswell as
various administration operations.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
125 / 143
MySQL Shell (2)
TheMySQLShell provides:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
126 / 143
MySQL Shell (2)
TheMySQLShell provides:
Both Interactive and Batch operations
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
127 / 143
MySQL Shell (2)
TheMySQLShell provides:
Both Interactive and Batch operations
Document and Relational Models
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
128 / 143
MySQL Shell (2)
TheMySQLShell provides:
Both Interactive and Batch operations
Document and Relational Models
CRUD Document and Relational APIs via scripting
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
129 / 143
MySQL Shell (2)
TheMySQLShell provides:
Both Interactive and Batch operations
Document and Relational Models
CRUD Document and Relational APIs via scripting
Traditional Table, JSON, Tab Separated output results formats
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
130 / 143
MySQL Shell (2)
TheMySQLShell provides:
Both Interactive and Batch operations
Document and Relational Models
CRUD Document and Relational APIs via scripting
Traditional Table, JSON, Tab Separated output results formats
MySQLStandard and X Protocols
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
131 / 143
MySQL Shell (2)
TheMySQLShell provides:
Both Interactive and Batch operations
Document and Relational Models
CRUD Document and Relational APIs via scripting
Traditional Table, JSON, Tab Separated output results formats
MySQLStandard and X Protocols
and more...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
132 / 143
MySQL Shell (3)
PREVIEW: the new Shell´s prompt is nice and clear !
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
133 / 143
don´t forget, this is a HA solution !
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
134 / 143
Deploying a MySQL InnoDB Cluster using MySQL
Shell´s adminAPI:
mysql-js> var i1 = 'root@instance01:3306';
mysql-js> var i2 = 'root@instance02:3306';
mysql-js> var i3 = 'root@instance03:3306';
mysql-js> dba.checkInstanceCon guration(i1);
mysql-js> dba.checkInstanceCon guration(i2);
mysql-js> dba.checkInstanceCon guration(i3);
mysql-js> shell.connect(i1);
mysql-js> var cluster = dba.createCluster('HMUG');
mysql-js> cluster.checkInstanceState(i2);
mysql-js> cluster.addInstance(i2);
mysql-js> cluster.checkInstanceState(i3);
mysql-js> cluster.addInstance(i3);
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
135 / 143
DEMO !
https://youtu.be/y3WywG7Zhks
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
136 / 143
instance01.yaml :
classes:
- innodbcluster
innodbcluster::mysql_serverid: 1
Thanks to the MySQL Shell we can automate everything ;-)
https://github.com/lefred/puppet-lefred-innodbcluster
Super easy using hiera:
common.yaml:
innodbcluster::mysql_root_password: StRongP4ssw0rD!
innodbcluster::mysql_bind_interface: eth1
innodbcluster::cluster_name: HMUG
innodbcluster::grant::user: fred
innodbcluster::grant::password: fred
innodbcluster::seed: instance01
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
137 / 143
example (2)
Withhiera-eyaml you can even encrypt your password:
innodbcluster::mysql_root_password: >
ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
DQYJKoZIhvcNAQEBBQAEggEAhqKUTXZ/4L8/aL3XARMfDBEI+s5HPshPg9BI
...
FLfovstrb8zmcbk5yb/KD0lDM8Elas0lrnpk8MxwNfKw+hB299JFp8ldAtUk
ODIieTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBJEeoyzHtW/WGpbiUz
gcXTgBAnb1gGrBZAfAiv/ztwuZ9z]
innodbcluster::mysql_bind_interface: eth1
innodbcluster::cluster_name: HMUG
innodbcluster::grant::user: root
innodbcluster::grant::password: >
ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
DQYJKoZIhvcNAQEBBQAEggEAhqKUTXZ/4L8/aL3XARMfDBEI+s5HPshPg9BI
...
FLfovstrb8zmcbk5yb/KD0lDM8Elas0lrnpk8MxwNfKw+hB299JFp8ldAtUk
ODIieTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBJEeoyzHtW/WGpbiUz
gcXTgBAnb1gGrBZAfAiv/ztwuZ9z]
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
138 / 143
DEMO !
https://www.youtube.com/watch?v=skwlmBNE7ts
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
139 / 143
Resources
http://lefred.be/content/mysql-innodb-cluster-mysql-shell-starter-guide/
http://lefred.be/content/mysql-innodb-cluster-automated-installation-with-puppet/
http://lefred.be/content/category/mysql/group-replication/
https://www.slideshare.net/lefred.descamps/mysql-devops-webinar
http://mysqlserverteam.com/innodb-cluster-in-opc/
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
140 / 143
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
141 / 143
MySQL Enterprise Team Nordics
 
contact: firstname.lastname@oracle.com
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
142 / 143
Thank you !
Any Questions ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
143 / 143

More Related Content

What's hot

MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationFrederic Descamps
 
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Frederic Descamps
 
MySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellMySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellFrederic Descamps
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterFrederic Descamps
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterContinuent
 
MySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn TutorialMySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn TutorialKenny Gryp
 
Introduction to MySQL Document Store
Introduction to MySQL Document StoreIntroduction to MySQL Document Store
Introduction to MySQL Document StoreFrederic Descamps
 
High Availability in MySQL 8 using InnoDB Cluster
High Availability in MySQL 8 using InnoDB ClusterHigh Availability in MySQL 8 using InnoDB Cluster
High Availability in MySQL 8 using InnoDB ClusterSven Sandberg
 
MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!Frederic Descamps
 
Group Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication CoreGroup Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication CoreAlfranio Júnior
 
MySQL Community Meetup in China : Innovation driven by the Community
MySQL Community Meetup in China : Innovation driven by the CommunityMySQL Community Meetup in China : Innovation driven by the Community
MySQL Community Meetup in China : Innovation driven by the CommunityFrederic Descamps
 
MySQL Replication Performance Tuning for Fun and Profit!
MySQL Replication Performance Tuning for Fun and Profit!MySQL Replication Performance Tuning for Fun and Profit!
MySQL Replication Performance Tuning for Fun and Profit!Vitor Oliveira
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017Ivan Ma
 
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...Frederic Descamps
 
replic8 - Replication in MySQL 8
replic8 - Replication in MySQL 8replic8 - Replication in MySQL 8
replic8 - Replication in MySQL 8Sven Sandberg
 
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabMySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabFrederic Descamps
 
devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016Frederic Descamps
 
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsMix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsPedro Gomes
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorialFrederic Descamps
 

What's hot (20)

MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
 
MySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellMySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a Nutshell
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
 
MySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn TutorialMySQL Group Replication - HandsOn Tutorial
MySQL Group Replication - HandsOn Tutorial
 
MySQL Devops Webinar
MySQL Devops WebinarMySQL Devops Webinar
MySQL Devops Webinar
 
Introduction to MySQL Document Store
Introduction to MySQL Document StoreIntroduction to MySQL Document Store
Introduction to MySQL Document Store
 
High Availability in MySQL 8 using InnoDB Cluster
High Availability in MySQL 8 using InnoDB ClusterHigh Availability in MySQL 8 using InnoDB Cluster
High Availability in MySQL 8 using InnoDB Cluster
 
MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!MySQL Document Store - when SQL & NoSQL live together... in peace!
MySQL Document Store - when SQL & NoSQL live together... in peace!
 
Group Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication CoreGroup Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication Core
 
MySQL Community Meetup in China : Innovation driven by the Community
MySQL Community Meetup in China : Innovation driven by the CommunityMySQL Community Meetup in China : Innovation driven by the Community
MySQL Community Meetup in China : Innovation driven by the Community
 
MySQL Replication Performance Tuning for Fun and Profit!
MySQL Replication Performance Tuning for Fun and Profit!MySQL Replication Performance Tuning for Fun and Profit!
MySQL Replication Performance Tuning for Fun and Profit!
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
 
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
MySQL Document Store - How to replace a NoSQL database by MySQL without effor...
 
replic8 - Replication in MySQL 8
replic8 - Replication in MySQL 8replic8 - Replication in MySQL 8
replic8 - Replication in MySQL 8
 
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabMySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
 
devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016
 
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsMix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
 

Similar to Helsinki MySQL User Group - MySQL InnoDB Cluster

DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !Frederic Descamps
 
20191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv120191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv1Ivan Ma
 
MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio  in a nutshell - MySQL InnoDB ClusterMySQL Group Replicatio  in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio in a nutshell - MySQL InnoDB ClusterFrederic Descamps
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)Olivier DASINI
 
MySQL Innovation from 5.7 to 8.0
MySQL Innovation from 5.7 to 8.0MySQL Innovation from 5.7 to 8.0
MySQL Innovation from 5.7 to 8.0Frederic Descamps
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL Brasil
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!Frederic Descamps
 
MySQL Enterprise Backup & Oracle Secure Backup
MySQL Enterprise Backup &  Oracle Secure BackupMySQL Enterprise Backup &  Oracle Secure Backup
MySQL Enterprise Backup & Oracle Secure BackupSanjay Manwani
 
Mysql NDB Cluster's Asynchronous Parallel Design for High Performance
Mysql NDB Cluster's Asynchronous Parallel Design for High PerformanceMysql NDB Cluster's Asynchronous Parallel Design for High Performance
Mysql NDB Cluster's Asynchronous Parallel Design for High PerformanceBernd Ocklin
 
Solving Performance Problems Using MySQL Enterprise Monitor
Solving Performance Problems Using MySQL Enterprise MonitorSolving Performance Problems Using MySQL Enterprise Monitor
Solving Performance Problems Using MySQL Enterprise MonitorOracleMySQL
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10Kenny Gryp
 
Using MySQL Containers
Using MySQL ContainersUsing MySQL Containers
Using MySQL ContainersMatt Lord
 
Robust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL DataRobust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL DataOracleMySQL
 
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
 
Collaborate 17 Oracle RAC 12cRel 2 Best Practices
Collaborate 17 Oracle RAC 12cRel 2 Best PracticesCollaborate 17 Oracle RAC 12cRel 2 Best Practices
Collaborate 17 Oracle RAC 12cRel 2 Best PracticesAnil Nair
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfMiguel Araújo
 
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMark Swarbrick
 
20190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev220190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev2Ivan Ma
 
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisMySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisOlivier DASINI
 
20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharingIvan Ma
 

Similar to Helsinki MySQL User Group - MySQL InnoDB Cluster (20)

DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
 
20191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv120191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv1
 
MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio  in a nutshell - MySQL InnoDB ClusterMySQL Group Replicatio  in a nutshell - MySQL InnoDB Cluster
MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)
 
MySQL Innovation from 5.7 to 8.0
MySQL Innovation from 5.7 to 8.0MySQL Innovation from 5.7 to 8.0
MySQL Innovation from 5.7 to 8.0
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e Uber
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
 
MySQL Enterprise Backup & Oracle Secure Backup
MySQL Enterprise Backup &  Oracle Secure BackupMySQL Enterprise Backup &  Oracle Secure Backup
MySQL Enterprise Backup & Oracle Secure Backup
 
Mysql NDB Cluster's Asynchronous Parallel Design for High Performance
Mysql NDB Cluster's Asynchronous Parallel Design for High PerformanceMysql NDB Cluster's Asynchronous Parallel Design for High Performance
Mysql NDB Cluster's Asynchronous Parallel Design for High Performance
 
Solving Performance Problems Using MySQL Enterprise Monitor
Solving Performance Problems Using MySQL Enterprise MonitorSolving Performance Problems Using MySQL Enterprise Monitor
Solving Performance Problems Using MySQL Enterprise Monitor
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
 
Using MySQL Containers
Using MySQL ContainersUsing MySQL Containers
Using MySQL Containers
 
Robust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL DataRobust easy affordable disaster recovery for MySQL Data
Robust easy affordable disaster recovery for MySQL Data
 
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
 
Collaborate 17 Oracle RAC 12cRel 2 Best Practices
Collaborate 17 Oracle RAC 12cRel 2 Best PracticesCollaborate 17 Oracle RAC 12cRel 2 Best Practices
Collaborate 17 Oracle RAC 12cRel 2 Best Practices
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
 
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
 
20190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev220190615 hkos-mysql-troubleshootingandperformancev2
20190615 hkos-mysql-troubleshootingandperformancev2
 
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP ParisMySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
MySQL InnoDB Cluster - Meetup Oracle MySQL / AFUP Paris
 
20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing20190817 coscup-oracle my sql innodb cluster sharing
20190817 coscup-oracle my sql innodb cluster sharing
 

More from Frederic Descamps

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionFrederic Descamps
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsFrederic Descamps
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfFrederic Descamps
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8Frederic Descamps
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022Frederic Descamps
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodeFrederic Descamps
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesFrederic Descamps
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsFrederic Descamps
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database ServiceFrederic Descamps
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQLFrederic Descamps
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Frederic Descamps
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021Frederic Descamps
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDSFrederic Descamps
 

More from Frederic Descamps (20)

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database System
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL Architectures
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and Histograms
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021
 
MySQL Shell for DBAs
MySQL Shell for DBAsMySQL Shell for DBAs
MySQL Shell for DBAs
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
 
MySQL Router REST API
MySQL Router REST APIMySQL Router REST API
MySQL Router REST API
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Helsinki MySQL User Group - MySQL InnoDB Cluster

  • 3. Helsinki MySQL User Group May 18th 2017 MySQL InnoDB Cluster When MySQL High Availability is Made Easy         Frédéric Descamps - MySQL Community Manager - Oracle 3 / 143
  • 4.   Safe Harbor Statement The following is intended to outline our generalproduct direction. It isintended for information purpose only, and may not be incorporated into any contract. It isnot a commitment to deliver any material, code, or functionality, and should not be relied up in making purchasing decisions. Thedevelopment, release and timing of any features or functionality described for Oracle´s product remains at thesole discretion of Oracle. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 4 / 143
  • 5. about.me/lefred Who am I ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 5 / 143
  • 6. Frédéric Descamps @lefred MySQLEvangelist HackingMySQLsince 3.23 devops believer MySQLCommunity Manager since May 2016 (🎂) living in Belgium 🇧🇪 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 6 / 143
  • 7. MySQL InnoDB Cluster Easy MySQL High Availability Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 7 / 143
  • 9. Our vision in 4 steps MySQLDocumentStore Relational&DocumentModels MySQLHA Out-Of-BoxHA ReadScale-Out AsyncReplication+A utoFailover WriteScale-Out Sharding E1 E3 E2 E4 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 9 / 143
  • 11. Step 3´s Architecture Application MySQLConnector MySQLRouter MySQLShell InnoDB cluster Application MySQLConnector MySQLRouter Mp M M S1 S2 S3 S4 S... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 11 / 143
  • 12. Step 4´s Architecture Application MySQLConnector MySQLRouter MySQLShell Application MySQLConnector MySQLRouter InnoDB cluster Mp M M S2 S3 S4 S...S1 InnoDB cluster Mp M M S1 S2 S3 S4 S... InnoDB cluster Mp M M S1 S2 S3 S4 S... Application MySQLConnector MySQLRouter Application MySQLConnector MySQLRouter Application MySQLConnector MySQLRouter replicaset1 replicaset2 replicaset3 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 12 / 143
  • 13. Group Replication: heart of MySQL InnoDB Cluster Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 13 / 143
  • 14. Group Replication: heart of MySQL InnoDB Cluster Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 14 / 143
  • 15. But before going further... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 15 / 143
  • 16. What is High Availability ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 16 / 143
  • 17. High Availability High availability is a characteristicofa system, which aimstoensureanagreedlevelof operational performance, usuallyuptime, for a higher thannormalperiod. There are three principles of systemsdesigninreliabilityengineeringwhichcanhelp achieve high availability: Elimination of single points offailure. Thismeansaddingredundancyto the system so that failure of a componentdoesnotmeanfailureoftheentiresystem. Reliable crossover. In redundantsystems, thecrossover pointitselftendstobecome a single point of failure. Reliablesystemsmustprovideforreliablecrossover. Detection of failures as they occur. Ifthetwoprinciplesaboveareobserved,thena user may never see a failure. Butthemaintenanceactivitymust. Source: WikipediaCopyright @ 2017 Oracle and/or its affiliates. All rights reserved. 17 / 143
  • 18. Database Redundancy How to achieve it ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 18 / 143
  • 19. Database Redundancy How to achieve it ? Multiple solutions exist, someworse thantheothers ;-) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 19 / 143
  • 20. Database Redundancy How to achieve it ? Multiple solutions exist, someworse thantheothers ;-) use of share storage Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 20 / 143
  • 21. Database Redundancy How to achieve it ? Multiple solutions exist, someworse thantheothers ;-) use of share storage use of share blocs by network(drbd) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 21 / 143
  • 22. Database Redundancy How to achieve it ? Multiple solutions exist, someworse thantheothers ;-) use of share storage use of share blocs by network(drbd) use of MySQLreplication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 22 / 143
  • 23. Database Redundancy How to achieve it ? Multiple solutions exist, someworse thantheothers ;-) use of share storage use of share blocs by network(drbd) use of MySQLreplication Of course the last one is the technique most spread, more flexible and more reliable. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 23 / 143
  • 24. MySQL Replication There are multiple types of MySQLreplication: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 24 / 143
  • 25. MySQL Replication There are multiple types of MySQLreplication: asynchronous replication (async) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 25 / 143
  • 26. MySQL Replication There are multiple types of MySQLreplication: asynchronous replication (async) semi-synchronous replication(semi-sync) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 26 / 143
  • 27. MySQL Replication There are multiple types of MySQLreplication: asynchronous replication (async) semi-synchronous replication(semi-sync) group replication -since (5.7.17) !! Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 27 / 143
  • 28. Asynchronous Replication(s) replicas (also called slaves) stream thereplication logs froma unique master (multi- source replication is possiblesince5.7.6) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 28 / 143
  • 29. Asynchronous Replication(s) replicas (also called slaves) stream thereplication logs froma unique master (multi- source replication is possiblesince5.7.6) slaves can be laging (having delay), there isno delivery guarantee (unless for semi- sync) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 29 / 143
  • 30. Asynchronous Replication(s) replicas (also called slaves) stream thereplication logs froma unique master (multi- source replication is possiblesince5.7.6) slaves can be laging (having delay), there isno delivery guarantee (unless for semi- sync) replicas provisioning is manual Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 30 / 143
  • 31. Asynchronous Replication(s) replicas (also called slaves) stream thereplication logs froma unique master (multi- source replication is possiblesince5.7.6) slaves can be laging (having delay), there isno delivery guarantee (unless for semi- sync) replicas provisioning is manual data consistency on replicas is assumed and needs a manual verification Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 31 / 143
  • 32. Asynchronous Replication(s) replicas (also called slaves) stream thereplication logs froma unique master (multi- source replication is possiblesince5.7.6) slaves can be laging (having delay), there isno delivery guarantee (unless for semi- sync) replicas provisioning is manual data consistency on replicas is assumed and needs a manual verification it´s even possible to create circular replication (highly not recommended) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 32 / 143
  • 33. Asynchronous Replication(s) replicas (also called slaves) stream thereplication logs froma unique master (multi- source replication is possiblesince5.7.6) slaves can be laging (having delay), there isno delivery guarantee (unless for semi- sync) replicas provisioning is manual data consistency on replicas is assumed and needs a manual verification it´s even possible to create circular replication (highly not recommended) write operations are safe onlyfrom a unique global master Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 33 / 143
  • 34. Asynchronous Replication(s) complex topologies can be built Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 34 / 143
  • 35. Asynchronous Replication(s) complex topologies can be built 1 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 35 / 143
  • 36. Asynchronous Replication(s) complex topologies can be built 1 32 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 36 / 143
  • 37. Asynchronous Replication(s) complex topologies can be built 1 32 4 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 37 / 143
  • 38. Asynchronous Replication(s) complex topologies can be built 1 32 4 5 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 38 / 143
  • 39. Asynchronous Replication(s) complex topologies can be built 1 32 4 5 6 7 8 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 39 / 143
  • 40. Asynchronous Replication(s) complex topologies can be built 1 32 4 5 6 7 8 9 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 40 / 143
  • 41. Asynchronous Replication(s) complex topologies can be built 1 32 4 5 6 7 8 9 10 14 15 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 41 / 143
  • 42. Asynchronous Replication(s) complex topologies can be built 1 32 4 5 6 7 8 9 10 11 14 15 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 42 / 143
  • 43. Asynchronous Replication(s) complex topologies can be built 1 32 4 5 6 7 8 9 10 11 12 14 15 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 43 / 143
  • 44. Asynchronous Replication(s) complex topologies can be built 1 32 4 5 6 7 8 9 10 11 12 13 14 15 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 44 / 143
  • 45. Asynchronous Replication(s) complex topologies can be built 1 32 4 5 6 7 8 9 10 11 12 13 14 15 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 45 / 143
  • 46. MySQL HA Architectures with asynchronous replication It exists a lot of possible architectures and asmuch tools to enforce them. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 46 / 143
  • 47. MySQL HA Architectures with asynchronous replication It exists a lot of possible architectures and asmuch tools to enforce them. They are all based on the sameprinciple: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 47 / 143
  • 48. MySQL HA Architectures with asynchronous replication It exists a lot of possible architectures and asmuch tools to enforce them. They are all based on the sameprinciple: 1 master Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 48 / 143
  • 49. MySQL HA Architectures with asynchronous replication It exists a lot of possible architectures and asmuch tools to enforce them. They are all based on the sameprinciple: 1 master 1 or many replicas (slaves) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 49 / 143
  • 50. MySQL HA Architectures with asynchronous replication It exists a lot of possible architectures and asmuch tools to enforce them. They are all based on the sameprinciple: 1 master 1 or many replicas (slaves) If the master as an issue, the most accurate slave needs to takeover therole and be promoted as master for all the remaining slaves still online. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 50 / 143
  • 51. Automation Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 51 / 143
  • 52. Automation And this is the most complicated part... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 52 / 143
  • 53. Automation And this is the most complicated part... It exists a large amount of external tools that canbe used to achieve thistask.Most of them are only compatible with GNU/Linux. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 53 / 143
  • 54. Automation And this is the most complicated part... It exists a large amount of external tools that canbe used to achieve thistask.Most of them are only compatible with GNU/Linux. Their problem is that they create complexity inthearchitecture's design. You need to be DBA & sysadmin to manage those solutions: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 54 / 143
  • 55. Automation And this is the most complicated part... It exists a large amount of external tools that canbe used to achieve thistask.Most of them are only compatible with GNU/Linux. Their problem is that they create complexity inthearchitecture's design. You need to be DBA & sysadmin to manage those solutions: MySQL-Utilities (mysqlrplcheck, mysqlrpladmin) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 55 / 143
  • 56. Automation And this is the most complicated part... It exists a large amount of external tools that canbe used to achieve thistask.Most of them are only compatible with GNU/Linux. Their problem is that they create complexity inthearchitecture's design. You need to be DBA & sysadmin to manage those solutions: MySQL-Utilities (mysqlrplcheck, mysqlrpladmin) Pacemaker withMySQLdedicated OCF Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 56 / 143
  • 57. Automation And this is the most complicated part... It exists a large amount of external tools that canbe used to achieve thistask.Most of them are only compatible with GNU/Linux. Their problem is that they create complexity inthearchitecture's design. You need to be DBA & sysadmin to manage those solutions: MySQL-Utilities (mysqlrplcheck, mysqlrpladmin) Pacemaker withMySQLdedicated OCF custom solutions... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 57 / 143
  • 58. MySQL Group Replication but what is it ?!? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 58 / 143
  • 59. MySQL Group Replication but what is it ?!? GR is a plugin forMySQL, made byMySQLand packaged withMySQL Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 59 / 143
  • 60. MySQL Group Replication but what is it ?!? GR is a plugin forMySQL, made byMySQLand packaged withMySQL GR is an implementation of Replicated Database State Machine theory Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 60 / 143
  • 61. MySQL Group Replication but what is it ?!? GR is a plugin forMySQL, made byMySQLand packaged withMySQL GR is an implementation of Replicated Database State Machine theory GR uses a Paxos based protocol Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 61 / 143
  • 62. MySQL Group Replication but what is it ?!? GR is a plugin forMySQL, made byMySQLand packaged withMySQL GR is an implementation of Replicated Database State Machine theory GR uses a Paxos based protocol GR allows to write on all Group Members (cluster nodes) simultaneously while retaining consistency Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 62 / 143
  • 63. MySQL Group Replication but what is it ?!? GR is a plugin forMySQL, made byMySQLand packaged withMySQL GR is an implementation of Replicated Database State Machine theory GR uses a Paxos based protocol GR allows to write on all Group Members (cluster nodes) simultaneously while retaining consistency GR implements conflict detection and resolution Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 63 / 143
  • 64. MySQL Group Replication but what is it ?!? GR is a plugin forMySQL, made byMySQLand packaged withMySQL GR is an implementation of Replicated Database State Machine theory GR uses a Paxos based protocol GR allows to write on all Group Members (cluster nodes) simultaneously while retaining consistency GR implements conflict detection and resolution GR allows automatic distributed recovery Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 64 / 143
  • 65. MySQL Group Replication but what is it ?!? GR is a plugin forMySQL, made byMySQLand packaged withMySQL GR is an implementation of Replicated Database State Machine theory GR uses a Paxos based protocol GR allows to write on all Group Members (cluster nodes) simultaneously while retaining consistency GR implements conflict detection and resolution GR allows automatic distributed recovery Supported onallMySQLplatforms!! Linux, Windows, Solaris, OSX,FreeBSD Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 65 / 143
  • 66. And for users ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 66 / 143
  • 67. And for users ? no longer necessary to handleserver fail-over manually or with a complicated script Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 67 / 143
  • 68. And for users ? no longer necessary to handleserver fail-over manually or with a complicated script GR provides fault tolerance Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 68 / 143
  • 69. And for users ? no longer necessary to handleserver fail-over manually or with a complicated script GR provides fault tolerance GR enables update-everywhere setups Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 69 / 143
  • 70. And for users ? no longer necessary to handleserver fail-over manually or with a complicated script GR provides fault tolerance GR enables update-everywhere setups GR handles crashes, failures, re-connetcs automatically Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 70 / 143
  • 71. And for users ? no longer necessary to handleserver fail-over manually or with a complicated script GR provides fault tolerance GR enables update-everywhere setups GR handles crashes, failures, re-connetcs automatically Allows an easy setup of aMySQLservice high available ! Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 71 / 143
  • 72. OK, but how does it work ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 72 / 143
  • 73. OK, but how does it work ? it's just ... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 73 / 143
  • 74. OK, but how does it work ? it's just ... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 74 / 143
  • 75. OK, but how does it work ? it's just ... ... no, in fact the writesets replication issynchronousand then certification and apply of the changes are local to each nodes and asynchronous. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 75 / 143
  • 76. OK, but how does it work ? it's just ... ... no, in fact the writesets replication issynchronousand then certification and apply of the changes are local to each nodes and asynchronous. not that easy to understand... right ? As a picture isworth a 1000words, let's illustrate this... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 76 / 143
  • 77. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 77 / 143
  • 78. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 78 / 143
  • 79. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 79 / 143
  • 80. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 80 / 143
  • 81. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 81 / 143
  • 82. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 82 / 143
  • 83. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 83 / 143
  • 84. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 84 / 143
  • 85. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 85 / 143
  • 86. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 86 / 143
  • 87. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 87 / 143
  • 88. MySQLGroup Replication Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 88 / 143
  • 89. Certification Certification is the process that only needs to answer thefollowing unique question: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 89 / 143
  • 90. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 90 / 143
  • 91. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? based on unapplied earlier transactions Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 91 / 143
  • 92. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? based on unapplied earlier transactions such conflicts must come forother members/nodes Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 92 / 143
  • 93. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? based on unapplied earlier transactions such conflicts must come forother members/nodes happens on every member/node Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 93 / 143
  • 94. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? based on unapplied earlier transactions such conflicts must come forother members/nodes happens on every member/node should be deterministic on every node Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 94 / 143
  • 95. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? based on unapplied earlier transactions such conflicts must come forother members/nodes happens on every member/node should be deterministic on every node results are not reported to thegroup Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 95 / 143
  • 96. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? based on unapplied earlier transactions such conflicts must come forother members/nodes happens on every member/node should be deterministic on every node results are not reported to thegroup pass: enter in the apply queue Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 96 / 143
  • 97. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? based on unapplied earlier transactions such conflicts must come forother members/nodes happens on every member/node should be deterministic on every node results are not reported to thegroup pass: enter in the apply queue fail: drop the transaction Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 97 / 143
  • 98. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? based on unapplied earlier transactions such conflicts must come forother members/nodes happens on every member/node should be deterministic on every node results are not reported to thegroup pass: enter in the apply queue fail: drop the transaction serialized by the total order in GCS/XCOM+ GTID Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 98 / 143
  • 99. Certification Certification is the process that only needs to answer thefollowing unique question: can the write (transaction) beapplied? based on unapplied earlier transactions such conflicts must come forother members/nodes happens on every member/node should be deterministic on every node results are not reported to thegroup pass: enter in the apply queue fail: drop the transaction serialized by the total order in GCS/XCOM+ GTID cost is based on trx size (# rows &# keys) Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 99 / 143
  • 100. GTID GTIDs are the same as those used by asynchronous replication. mysql> SELECT * FROM performance_schema.replication_connection_statusG ************************** 1. row *************************** CHANNEL_NAME: group_replication_applier GROUP_NAME: afb80f36-2bff-11e6-84e0-0800277dd3bf SOURCE_UUID: afb80f36-2bff-11e6-84e0-0800277dd3bf THREAD_ID: NULL SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57, f037578b-46b1-11e6-8005-08002774c31b:1-48937 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 100 / 143
  • 101. but transactions use the Group´s GTID mysql> show master statusG ************************** 1. row *************************** File: mysql4-bin.000001 Position: 1501 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57, f037578b-46b1-11e6-8005-08002774c31b:1-48937 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 101 / 143
  • 102. Requirements exclusively works with InnoDBtables only Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 102 / 143
  • 103. Requirements exclusively works with InnoDBtables only every tables must have a PK defined Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 103 / 143
  • 104. Requirements exclusively works with InnoDBtables only every tables must have a PK defined only IPV4 is supported Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 104 / 143
  • 105. Requirements exclusively works with InnoDBtables only every tables must have a PK defined only IPV4 is supported a good network with low latency isimportant Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 105 / 143
  • 106. Requirements exclusively works with InnoDBtables only every tables must have a PK defined only IPV4 is supported a good network with low latency isimportant maximum of 9 members per group Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 106 / 143
  • 107. Requirements exclusively works with InnoDBtables only every tables must have a PK defined only IPV4 is supported a good network with low latency isimportant maximum of 9 members per group log-bin must be enabled and onlyROWformat is supported Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 107 / 143
  • 108. Requirements (2) enable GTIDs Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 108 / 143
  • 109. Requirements (2) enable GTIDs replication meta-data must bestored insystem tables --master-info-repository=TABLE --relay-log-info-repository=TABLE Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 109 / 143
  • 110. Requirements (2) enable GTIDs replication meta-data must bestored insystem tables --master-info-repository=TABLE --relay-log-info-repository=TABLE writesets extraction must be enabled --transaction-write-set-extraction=XXHASH64 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 110 / 143
  • 111. Requirements (2) enable GTIDs replication meta-data must bestored insystem tables --master-info-repository=TABLE --relay-log-info-repository=TABLE writesets extraction must be enabled --transaction-write-set-extraction=XXHASH64 log-slave-updates must alsobe enabled Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 111 / 143
  • 112. Limitations binlog checksum is not supported (but we have checksum in the replicationchannel) --binlog-checksum=NONE Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 112 / 143
  • 113. Limitations binlog checksum is not supported (but we have checksum in the replicationchannel) --binlog-checksum=NONE savepointswere not supported before 5.7.19& 8.0.1 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 113 / 143
  • 114. Limitations binlog checksum is not supported (but we have checksum in the replicationchannel) --binlog-checksum=NONE savepointswere not supported before 5.7.19& 8.0.1 SERIALIZABLEis not supported as transaction isolation level Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 114 / 143
  • 115. Limitations binlog checksum is not supported (but we have checksum in the replicationchannel) --binlog-checksum=NONE savepointswere not supported before 5.7.19& 8.0.1 SERIALIZABLEis not supported as transaction isolation level http://lefred.be/content/mysql-group-replication-limitations-savepoints/ http://lefred.be/content/mysql-group-replication-and-table-design/ Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 115 / 143
  • 116. Default = Single Primary Mode By default, MySQLInnoDBClusterruns inSingle Primary Mode. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 116 / 143
  • 117. Default = Single Primary Mode By default, MySQLInnoDBClusterruns inSingle Primary Mode. mysql> show global variables like 'group_replication_single_primary_mode'; +---------------------------------------+-------+ | Variable_name | Value | +---------------------------------------+-------+ | group_replication_single_primary_mode | ON | +---------------------------------------+-------+ Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 117 / 143
  • 118. Default = Single Primary Mode By default, MySQLInnoDBClusterruns inSingle Primary Mode. mysql> show global variables like 'group_replication_single_primary_mode'; +---------------------------------------+-------+ | Variable_name | Value | +---------------------------------------+-------+ | group_replication_single_primary_mode | ON | +---------------------------------------+-------+ In Single Primary Mode, a single member acts asthewritable master (PRIMARY) and the rest of the members act as hot-standbys (SECONDARY). The group itself coordinates and configures itself automatically to determine which member will act as thePRIMARY, through a leader election mechanism. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 118 / 143
  • 119. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 119 / 143
  • 120. MySQL Router (GA!) MySQLRouter is lightweight middleware that provides transparent routing between your application and backendMySQLServers. It can be used for awide variety of use cases, such as providing high availability and scalability by effectively routing database trafficto appropriate backendMySQLServers. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 120 / 143
  • 121. MySQL Router (GA!) MySQLRouter is lightweight middleware that provides transparent routing between your application and backendMySQLServers. It can be used for awide variety of use cases, such as providing high availability and scalability by effectively routing database trafficto appropriate backendMySQLServers. MySQLRouter doesn´t require any specific configuration. Itconfigures itself automatically (bootstrap) usingMySQLInnoDB Cluster´s metadata. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 121 / 143
  • 122. MySQL Router (GA!) MySQLRouter is lightweight middleware that provides transparent routing between your application and backendMySQLServers. It can be used for awide variety of use cases, such as providing high availability and scalability by effectively routing database trafficto appropriate backendMySQLServers. MySQLRouter doesn´t require any specific configuration. Itconfigures itself automatically (bootstrap) usingMySQLInnoDB Cluster´s metadata. TheMySQLRouter development will be focusing on sharding. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 122 / 143
  • 123. ProxySQLhas native support for Group Replication which makes it a good choice for advanced users. ProxySQL If you need some specific features that are not yet available inMySQLRouter, like transparent R/W splitting, then you canuse your software of choice. We are also collaborating with ProxySQL. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 123 / 143
  • 124. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 124 / 143
  • 125. MySQL Shell (GA!) TheMySQLShell is an interactive Javascript, Python, or SQLinterface supporting development and administration for theMySQLServer and is acomponent of theMySQL Server. You can use theMySQLShell to perform data queriesand updates aswell as various administration operations. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 125 / 143
  • 126. MySQL Shell (2) TheMySQLShell provides: Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 126 / 143
  • 127. MySQL Shell (2) TheMySQLShell provides: Both Interactive and Batch operations Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 127 / 143
  • 128. MySQL Shell (2) TheMySQLShell provides: Both Interactive and Batch operations Document and Relational Models Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 128 / 143
  • 129. MySQL Shell (2) TheMySQLShell provides: Both Interactive and Batch operations Document and Relational Models CRUD Document and Relational APIs via scripting Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 129 / 143
  • 130. MySQL Shell (2) TheMySQLShell provides: Both Interactive and Batch operations Document and Relational Models CRUD Document and Relational APIs via scripting Traditional Table, JSON, Tab Separated output results formats Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 130 / 143
  • 131. MySQL Shell (2) TheMySQLShell provides: Both Interactive and Batch operations Document and Relational Models CRUD Document and Relational APIs via scripting Traditional Table, JSON, Tab Separated output results formats MySQLStandard and X Protocols Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 131 / 143
  • 132. MySQL Shell (2) TheMySQLShell provides: Both Interactive and Batch operations Document and Relational Models CRUD Document and Relational APIs via scripting Traditional Table, JSON, Tab Separated output results formats MySQLStandard and X Protocols and more... Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 132 / 143
  • 133. MySQL Shell (3) PREVIEW: the new Shell´s prompt is nice and clear ! Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 133 / 143
  • 134. don´t forget, this is a HA solution ! Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 134 / 143
  • 135. Deploying a MySQL InnoDB Cluster using MySQL Shell´s adminAPI: mysql-js> var i1 = 'root@instance01:3306'; mysql-js> var i2 = 'root@instance02:3306'; mysql-js> var i3 = 'root@instance03:3306'; mysql-js> dba.checkInstanceCon guration(i1); mysql-js> dba.checkInstanceCon guration(i2); mysql-js> dba.checkInstanceCon guration(i3); mysql-js> shell.connect(i1); mysql-js> var cluster = dba.createCluster('HMUG'); mysql-js> cluster.checkInstanceState(i2); mysql-js> cluster.addInstance(i2); mysql-js> cluster.checkInstanceState(i3); mysql-js> cluster.addInstance(i3); Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 135 / 143
  • 136. DEMO ! https://youtu.be/y3WywG7Zhks Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 136 / 143
  • 137. instance01.yaml : classes: - innodbcluster innodbcluster::mysql_serverid: 1 Thanks to the MySQL Shell we can automate everything ;-) https://github.com/lefred/puppet-lefred-innodbcluster Super easy using hiera: common.yaml: innodbcluster::mysql_root_password: StRongP4ssw0rD! innodbcluster::mysql_bind_interface: eth1 innodbcluster::cluster_name: HMUG innodbcluster::grant::user: fred innodbcluster::grant::password: fred innodbcluster::seed: instance01 Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 137 / 143
  • 138. example (2) Withhiera-eyaml you can even encrypt your password: innodbcluster::mysql_root_password: > ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw DQYJKoZIhvcNAQEBBQAEggEAhqKUTXZ/4L8/aL3XARMfDBEI+s5HPshPg9BI ... FLfovstrb8zmcbk5yb/KD0lDM8Elas0lrnpk8MxwNfKw+hB299JFp8ldAtUk ODIieTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBJEeoyzHtW/WGpbiUz gcXTgBAnb1gGrBZAfAiv/ztwuZ9z] innodbcluster::mysql_bind_interface: eth1 innodbcluster::cluster_name: HMUG innodbcluster::grant::user: root innodbcluster::grant::password: > ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw DQYJKoZIhvcNAQEBBQAEggEAhqKUTXZ/4L8/aL3XARMfDBEI+s5HPshPg9BI ... FLfovstrb8zmcbk5yb/KD0lDM8Elas0lrnpk8MxwNfKw+hB299JFp8ldAtUk ODIieTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBJEeoyzHtW/WGpbiUz gcXTgBAnb1gGrBZAfAiv/ztwuZ9z] Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 138 / 143
  • 139. DEMO ! https://www.youtube.com/watch?v=skwlmBNE7ts Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 139 / 143
  • 141. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 141 / 143
  • 142. MySQL Enterprise Team Nordics   contact: firstname.lastname@oracle.com Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 142 / 143
  • 143. Thank you ! Any Questions ? Copyright @ 2017 Oracle and/or its affiliates. All rights reserved. 143 / 143