SlideShare a Scribd company logo
1 of 73
MySQL InnoDB Cluster
Olivier Dasini
MySQL Principal Solutions Architect EMEA
olivier.dasini@oracle.com
@freshdaz
http://dasini.net/blog/
Copyright 2017, Oracle and/or its affiliates. All rights reserved
A complete High Availability solution for MySQL
PHP Tour 2017 - Nantes
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
2
Copyright © 2017 Oracle and/or its affiliates. All rights reserved. |
Me, Myself & I
➢ MySQL Geek
✔ Addicted to MySQL for 15+ years!
✔ Playing with databases for 20+ years
➢ MySQL Writer, Blogger and Speaker
✔ Also former : DBA, Consultant, Architect, Trainer, ...
➢ MySQL Principal Solutions Architect EMEA at Oracle
➢ Stay tuned! :
✔ @freshdaz
✔ http://dasini.net/blog
3
Olivier DASINI
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
1
2
3
State of MySQL
High Availability
MySQL InnoDB Cluster
Demo : Deploying MySQL InnoDB Cluster
4
4
Copyright 2017, Oracle and/or its affiliates. All rights reserved
The world's most popular open source database
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
A Modern Database for the Digital Age
Digital Disruptors & Large Enterprises Rely on MySQL to Innovate
6
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
They Scale
with MySQL
Mobile Network Supporting
Over 800 Million
Subscribers
1.7 Billion Active Users
100 TB of User Data for PayPal
IDs Processed for
1 Billion Citizens
850 Million Candy Crush Game
Plays/Day
2 Billion Events/Day for Booking.com
7
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Business Model since 2005
• Community Edition – GPL License
– “You must cause any work that you distribute …, that … in part contains … the
Program … to be licensed as a whole at no charge to all third parties under the terms
of this License.”
• Commercial Editions – Commercial License
– Avoid any GPL issues
8
Improve
Performance
&
Scalability
Enhance Agility
& Productivity
Reduce TCO
Mitigate
Risks
Get
Immediate
Help
if/when
Needed
Increase
Customer
Satisfaction
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL within Oracle
More Investment, More Innovation
2009 2017
9
... 22 Years MySQL
… 12 Years InnoDB of Oracle Stewardship
… 7 Years MySQL within Oracle
 2x Engineering Staff
 3x QA Staff
 2x Support Staff
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL within Oracle : Opensource and Commercial Extensions
10
• Lossless Semi-sync Replication
• Global Transaction Ids
• Multisource Replication
• Multithreaded Replication
• Group Replication
• Performance_schema
• GIS extensions
• Fulltext search in InnoDB
• Massive Scalability improvement
• Secure by default
• Transparent Database Encryption
• Online DDL Operations
• Transportable Tablespaces
• Document Store / X DevAPI
• JSON Datatype
• JSON SQL Functions
• Generated Columns
• Multiple Triggers per Table
• MySQL Utilities
• MySQL Router
• MySQL Shell
• MySQL Cloud Service
• MySQL Enterprise Backup
• MySQL Enterprise TDE
• MySQL Enterprise Audit
• MySQL Enterprise Firewall
• MySQL Enterprise Authentication
• MySQL Enterprise Thread Pooling
• Memcached Interface
• Optimizer Enhancements
• Query Rewrite Plugin
• Fractional Seconds in time
datatypes
• Password Validation Plugin
• InnoDB Bufferpool Dump
• General Tablespaces
• Separation of Tablespaces
• Persistent Optimizer Statistics
• Characterset Improvements
• Sys Schema
• InnoDB SSD optimizations
• InnoDB native Partitioning
• Dynamic Bufferpool Resizing
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
5.7 since GA December 2015
11
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
MySQL 5.7 – Improvements across the board
• Replication
• InnoDB
• Optimizer
• Security
• Performance Schema
• GIS
• Triggers
• Partitioning
• Performance
• New! SYS Schema
• New! JSON
• New! Group Replication
• New! Document Store
12
150+ new
features
In total!
http://www.thecompletelistoffeatures.com/
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
1
2
3
State of MySQL
High Availability
MySQL InnoDB Cluster
Demo : Deploying MySQL InnoDB Cluster
13
4
Copyright © 2017 Oracle and/or its affiliates. All rights reserved. | 14
High Availability: Factors
• Environment
– Redundant servers in different datacenters and geographical areas will protect you against regional
issues—power grid failures, hurricanes, earthquakes, etc.
• Hardware
– Each part of your hardware stack—networking, storage, servers—should be redundant
• Software
– Every layer of the software stack needs to be duplicated and distributed across separate hardware and
environments
• Data
– Data loss and inconsistency/corruption must be prevented by having multiple copies of each piece of
data, with consistency checks and guarantees for each change
15
High Availability: The Causes of Downtime
16
40.00%
40.00%
20.00%
Software/Application Human Error Hardware
* Source: Gartner Group 1998 survey
A study by the Gartner Group
projected that through 2015, 80% of
downtime will be due to people and
process issues
High Availability: The Business Cost of Downtime
• Calculate a cost per minute of downtime
– Average revenue generated per-minute over a year
– Cost of not meeting any customer SLAs
– Factor in costs that are harder to quantify
1. Revenue
2. Reputation
3. Customer sentiment
4. Stock price
5. Service’s success
6. Company’s very existence
17
THIS is why HA
matters!
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Multiple copies of data ? How ?
18
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Multiple copies of data with replication process
Copyright 2017, Oracle and/or its affiliates. All rights reserved
HA solutions with MySQL : Replication modes
• Asynchronous => MySQL Replication
— MySQL Default; In parallel: Master acks to app and sends transaction to slave
— Fast; Risk of lost changes if master dies
• Semi-Synchronous => MySQL Replication w/ semisynchronous plugin
— MySQL 5.5+ Enhanced in MySQL 5.7; Serially: Master waits for change to be received by slave then In parallel ack to app and apply changes on slave
— Intermediate latency; Lossless (MySQL 5.7)
• Virtual-Synchronous => MySQL InnoDB Cluster w/ MySQL Group Replication
— MySQL Group Replication; Multi-masters updates on nodes applied in parallel
— MySQL Plugin delivered by MySQL for MySQL :)
— Intermediate latency; Best suited to small transactions; Lossless
• Synchronous => MySQL NDB Cluster
— Only available with MySQL Cluster; Serially: Master waits for change to be applied on all slaves before ack to app
— Higher latency; If Active/Active, best suited to small transactions; Lossless
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Database Replication: Some Notes
Coordination Between Servers
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Replication
22
Copyright 2017, Oracle and/or its affiliates. All rights reserved 25
B
C
CrashCrash
B is the
new master
Ouch!!! Whew!
https://dev.mysql.com/downloads/utilities/
B
C
A
C
B
Slave promotion managed by mysqlrpladmin or mysqlfailover
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
NDB Cluster
26
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 27
MySQL NDB Cluster Data Nodes
Clients
Application Layer
Data Layer
Management
MySQL NDB Cluster Architecture
Copyright © 2017 Oracle and/or its affiliates. All rights reserved. |
• MySQL NDB Cluster
–In memory distributed database
–NDB storage engine
–Automatic sharding
–Native access via several API
–Read/write consistency
–Read/write scalability
–Management via MCM/mgm-tool
MySQL NDB Cluster
Rock Solid
Availability
In-Memory
Real-Time
Performance
Extreme
Read & Write
Scalability
Elasticity
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
1
2
3
State of MySQL
High Availability
MySQL InnoDB Cluster
Demo : Deploying MySQL InnoDB Cluster
30
4
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 31
MySQL InnoDB Cluster
Collection of products that work together to provide a complete High Availability solution for MySQL
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
InnoDB Cluster
32
App Servers with
MySQL Router
MySQL Group Replication
“High Availability becomes a core
first class feature of MySQL!”
MySQL Shell
Setup, Manage,
Orchestrate
http://dasini.net/blog/2017/05/11/tutoriel-deployer-mysql-innodb-cluster/
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 33
A single product: MySQL
• All components created together
• Tested together
• Packaged together
Flexible and Modern
• C++ 11
• Protocol Buffers
• Developer friendly
MySQL InnoDB Cluster – Goals
Easy to use
• A single client: MySQL Shell
• Easy packaging
• Homogenous servers
Scale-out
• Sharded clusters
• Federated system of N replica sets
• Each replica set manages a shard
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 34
MySQL InnoDB Cluster: The Big Picture
P
App
S S
MySQL Shell and Orchestration Tooling
App
Simple Mapping,
State and Extra Metadata
Control, Coordinate,
Provision
Monitoring (MEM)
MySQL Router
MySQL Group Replication
MySQL Router
Copyright © 2017 Oracle and/or its affiliates. All rights reserved. |
MySQL Group Replication
Native, built-in High Availability for your MySQL databases
36
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Group Replication
37
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
MySQL Group Replication: What Is It?
• Group Replication library
– Implementation of Replicated Database State Machine theory
• MySQL GCS is based on Paxos (variant of Mencius)
– Provides virtually synchronous replication for MySQL 5.7+
– Supported on all MySQL platforms
• Linux, Windows, Solaris, OSX, FreeBSD
“Single/Multi-master update everywhere replication plugin for MySQL with built-in automatic
distributed recovery, conflict detection and group membership.”
39
http://dasini.net/blog/2016/11/08/deployer-un-cluster-mysql-group-replication/
• A Highly Available distributed MySQL database service
– Clustering eliminates single points of failure (No SPOF)
• Allows for online maintenance
– Removes the need for handling server fail-over
– Provides fault tolerance
– Enables update everywhere setups
– Automates group reconfiguration (handling of crashes, failures, re-connects)
– Provides a highly available replicated database
– Automatically ensures data consistency ie no data loss
• Detects and handles conflicts
• Prevents data loss
• Prevents data corruption
40
MySQL Group Replication: What Does It Provide?
MySQL Group Replication: Use Cases
• Elastic Replication
– Environments that require a very fluid replication infrastructure, where the
number of servers has to grow or shrink dynamically and with little pain as possible.
• Highly Available Shards
– Sharding is a popular approach to achieve write scale-out. Users can use MySQL
Group Replication to implement highly available shards in a federated system.
Each shard can map into a Replication Group.
• Alternative to Master-Slave Replication
– Single-primary mode provides further automation on such setups
● Automatic PRIMARY/SECONDARY roles assignment
● Automatic new PRIMARY election on PRIMARY failures
● Automatic setup of read/write modes on PRIMARY and SECONDARIES
● Global consistent view of which server is the PRIMARY
42
MySQL Group Replication: Architecture
Node Types
R: Traffic routers/proxies: mysqlrouter, ProxySQL, HAProxy...
M: mysqld nodes participating in Group Replication
44
MySQL Group Replication: Performance Comparison
45
Full stack secure connections
• Following the industry standards, Group Replication supports secure connections along the
complete stack
– Client connections
– Distributed recovery connections
– Connections between members
• IP Whitelisting
– Restrict which hosts are allowed to connect to the group
– By default it is set to the values AUTOMATIC, which allow connections from private subnetworks active
on the host
46
http://mysqlhighavailability.com/mysql-group-replication-securing-the-perimeter/
Parallel applier support
• Group Replication now also takes full advantage of parallel binary log applier infrastructure
– Reduces applier lad and improves replication performance considerably
– Configured in the sale way as asynchronous replication
47
slave_parallel_workers=<NUMBER>
slave_parallel_type=logical_clock
slave_preserve_commit_order=ON
slave_parallel_workers=<NUMBER>
slave_parallel_type=logical_clock
slave_preserve_commit_order=ON
Single Primary Mode
• Configuration mode that makes a single member act as a writeable master (PRIMARY) and the rest of the members
act as hot-standbys (SECONDARIES)
– The group itself coordinates automatically to figure out which is the member that will act as the PRIMARY, through an
automatic primary election mechanism
– Secondaries are automatically set to read-only
• Single_primary mode is the default mode
– Closer to classic asynchronous replication setups, simpler to reason about the beginning
– Avoids some limitations of multi-primary mode by default
• The current PRIMARY member UUID can be know by executing the following SQL statement:
48
mysql> SELECT * FROM performance_schema.global_status WHERE VARIABLE_NAME='group_replication_primary_member'G
*************************** 1. row ***************************
VARIABLE_NAME: group_replication_primary_member
VARIABLE_VALUE: dcd3b36b-79c5-11e6-97b8-00212844d44e
mysql> SELECT * FROM performance_schema.global_status WHERE VARIABLE_NAME='group_replication_primary_member'G
*************************** 1. row ***************************
VARIABLE_NAME: group_replication_primary_member
VARIABLE_VALUE: dcd3b36b-79c5-11e6-97b8-00212844d44e
Multi-primary Mode
• Configuration mode that makes all members writeable
– Enabled by setting option --group_replication_single_primary_mode to OFF
• Any two transactions on different servers can write to the same tuple
• Conflicts will be detected and dealt with
– First committer wins rule
49
MySQL Group Replication
Transaction life cycle
50
MySQL Group Replication
Synchronous Transaction Delivery
51
MySQL Group Replication
Full Transaction life cycle
52
MySQL Group Replication
Traditional vs Optimistic locking
53
Traditional locking Optimistic locking
Trx 2 waits
on Trx 1 commit
ERROR 1180 (HY000): Got error 149 during COMMIT
54
Monitoring
Monitoring
• performance_schema.replication_group_member_stats
– Monitoring the performance of the members connected in the group
• performance_schema.replication_group_members
– Used for monitoring the status of the different server instances that
are tracked in the current view
• performance_schema.replication_connection_status
– Show information regarding Group Replication
• performance_schema.replication_applier_status
– The state of the Group Replication related channels and thread
55
MySQL Enterprise Monitor 3.4
• Native holistic support for Group Replication clusters
– Intelligent monitoring and alerting
– Topology views
– Detailed metrics and graphs
– Best Practice advice
• Monitoring of MySQL Router instances
56
MySQL Enterprise Monitor 3.4
57
• Group Replication with 3 online nodes
• Group Replication with 3 nodes :
– 2 online
– 1 unreachable
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Storage Engine InnoDB
Distributed Architecture Shared nothing
Network failure protection Quorum
NoSQL APIs MySQL Document Store / InnoDB Memcached
Replication Virtually Synchronous
Database Failover Automatic
OS Supported Linux, Windows, Solaris, OSX, FreeBSD
Operational Complexity Medium
Administration Standard (MySQL)
MySQL Group Replication overview
MySQL Group Replication wrap-up
• Cloud Friendly
– Great technology for deployments where elasticity is a requirement, such as cloud based infrastructures.
• Integrated
– With server core through a well defined API.
– With GTIDs, row based replication, performance schema tables.
– Share many pieces of MySQL Replication
– Mutli-primary approach to replication
• Autonomic and Operations Friendly
– It is self-healing: no admin overhead for handling server fail-overs.
– Provides fault-tolerance, enables multi-master update everywhere and a dependable MySQL service.
• Plugin GA version available with MySQL 5.7.17+, available on 8.0.1+
59
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 60
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
Router 2.1
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Router 2.1
• MySQL Router is lightweight middleware that provides transparent routing
between your application and back-end MySQL Servers.
• MySQL Router also provides High Availability and Scalability by effectively
routing database traffic to appropriate back-end MySQL Servers.
• The pluggable architecture also enables developers to extend MySQL Router
for custom use cases.
61
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Router 2.1
• Native support for MySQL InnoDB clusters
– Understands Group Replication topology
– Utilizes metadata schema stored on each member
• Bootstraps itself and sets up client routing for the GR cluster
• Allows for intelligent client routing into the GR cluster
• Supports multi-master and single primary modes
• Core improvements
– Logging
– Monitoring
– Performance
– Security
62
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 63
Shell
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell
64
A single unified client for all administrative and operations tasks
• Advanced command-line client and code editor for the MySQL Server
• Multi-Language: JavaScript, Python, and SQL
– Naturally scriptable
• Supports both Document and Relational models
• Exposes full Development and Admin API
”MySQL Shell provides the developer and DBA with a single intuitive,
flexible, and powerful interface for all MySQL related tasks!”
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL Shell: Admin API
• mysql-js> dba.help()
• The global variable 'dba' is used to access the MySQL
AdminAPI
• Perform DBA operations
– Manage MySQL InnoDB clusters
• Create clusters
• Get cluster info
• Start/Stop MySQL Instances
• Validate MySQL instances
• …
Database Administration Interface
App Servers with
MySQL Router
MySQL Group Replication
MySQL Shell
Setup, Manage,
Orchestrate
65
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
S1 S2 S3 S4 S…
M
M M
MySQL Connector
Application
MySQL Router
MySQL Connector
Application
MySQL Router
MySQL Shell
HA
ReplicaSet(Shard1)
S1 S2 S3 S4 S…
M
M M
MySQL Connector
Application
MySQL Router
HA
ReplicaSet(Shard2)
S1 S2 S3 S4 S…
M
M M
HA
ReplicaSet(Shard3)
MySQL Connector
Application
MySQL Router
MySQL InnoDB Cluster – The End Goal
…
MySQL
InnoDB
cluster
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Program Agenda
1
2
3
State of MySQL
High Availability
MySQL InnoDB Cluster
Demo : Deploying MySQL InnoDB Cluster
67
4
Deploying MySQL InnoDB Cluster
in Single-Primary Mode
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
MySQL InnoDB Cluster: Demo’s architecture
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Testing MySQL InnoDB Cluster in a sandbox – Demo 1/6
http://dasini.net/blog/2017/03/13/tester-mysql-innodb-cluster/
1/ Connect to MySQL Shell
$ mysqlsh
2/ Deploy 3 local MySQL instances on ports : 3310 - 3320 - 3330
mysql-js> dba.deploySandboxInstance(3310)
mysql-js> dba.deploySandboxInstance(3320)
mysql-js> dba.deploySandboxInstance(3330)
• Deploying local sandbox MySQL Instances
Now we have 3 MySQL server instances
running on ports 3310, 3320 and 3330.
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Testing MySQL InnoDB Cluster in a sandbox – Demo 2/6
Stop
mysql-js> dba.stopSandboxInstance(3310);
Start
mysql-js> dba.startSandboxInstance(3320);
Kill : simulate an unexpected halt while testing failover
mysql-js> dba.killSandboxInstance(3330);
Delete : Completely removes the sandbox instance from your file system
mysql-js> dba.deleteSandboxInstance(3330);
• Managing local sandbox MySQL Instances
Once a sandbox instance is running, it is possible to change its status at any time :
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Testing MySQL InnoDB Cluster in a sandbox – Demo 3/6
Check instance configuration before the deployment
mysql-js> dba.checkInstanceConfiguration('root@localhost:3310')
mysql-js> dba.checkInstanceConfiguration('root@localhost:3320')
mysql-js> dba.checkInstanceConfiguration('root@localhost:3330')
• Checking the configuration
Configuration issues could be fixed manually or with configureLocalInstance
e.g.
mysql-js> dba.configureLocalInstance('root@localhost:3310')
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Testing MySQL InnoDB Cluster in a sandbox – Demo 4/6
1/ Connect to instance 3310
mysql-js> c root@localhost:3310
2/ Create the cluster
mysql-js> var cluster=dba.createCluster('demoCluster');
3/ Check the transaction set and add node 3320 to the cluster
mysql-js> cluster.checkInstanceState('root@localhost:3320')
mysql-js> cluster.addInstance('root@localhost:3320')
4/ Check the transaction set and add node 3330 to the cluster
mysql-js> cluster.checkInstanceState('root@localhost:3330')
mysql-js> cluster.addInstance('root@localhost:3330')
5/ Check cluster status
mysql-js> cluster.status()
• Deploying the InnoDB Cluster
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Testing MySQL InnoDB Cluster in a sandbox – Demo 5/6
# Bootstrap MySQL Router
$ mysqlrouter --bootstrap root@localhost:3310 --directory ~/demoSandbox
# Start MySQL router
$ ~/demoSandbox/start.sh
• Deploying the Router
The following connection information can be used to connect to the cluster.
Classic MySQL protocol connections to cluster 'demoCluster':
- Read/Write Connections: localhost : 6446
- Read/Only Connections: localhost : 6447
X protocol connections to cluster 'demoCluster':
- Read/Write Connections: localhost : 64460
- Read/Only Connections: localhost : 64470
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Testing MySQL InnoDB Cluster in a sandbox – Demo 6/6
1/ Connect to MySQL Router (default port = 6446)
$ mysqlsh --uri=root@localhost:64466446
2/ Select primary node’s port
mysql-js> sql
mysql-sql>
SELECT @@port; -- display 3310
3/ Primary node crash!
mysql-sql> js
mysql-js>
dba.killSandboxInstance(3310)
• Failover
4/ Select primary node’s port
mysql-js> c root@localhost:6446
mysql-sql>
SELECT @@port; -- display 3320
5/ Member is back to the group
mysql-sql> js
mysql-js> dba.startSandboxInstance(3310)
var cluster =
dba.getCluster('demoCluster')
mysql-js>
cluster.rejoinInstance('root@localhost:3310')
mysql-js> cluster.status()
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Scale-Out
High Performance
Ease-of-Use
Built-in HA
Out-of-Box Solution
Everything Integrated
MySQL
InnoDB
cluster
MySQL InnoDB Cluster – Goals
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Where to go from here?
83
• Packages
– http://www.mysql.com/downloads/
• Documentation
– http://dev.mysql.com/doc/refman/5.7/en/group-replication.html
– https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-userguide.html
– https://dev.mysql.com/doc/refman/5.7/en/mysql-shell.html
– https://dev.mysql.com/doc/mysql-router/2.1/en/
– http://dev.mysql.com/doc/refman/8.0/en/group-replication.html
• Blogs from the Engineers (news, technical information, and much more)
– http://mysqlhighavailability.com
– http://mysqlserverteam.com/
• Ressources en français
– http://dasini.net/blog/2017/05/11/tutoriel-deployer-mysql-innodb-cluster/
– http://dasini.net/blog/2017/03/13/tester-mysql-innodb-cluster/
– http://dasini.net/blog/2016/11/08/deployer-un-cluster-mysql-group-replication/
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Merci !
Olivier Dasini
MySQL Principal Solutions Architect EMEA
olivier.dasini@oracle.com
@freshdaz
http://dasini.net/blog/
PHP Tour 2017 - Nantes
MySQL InnoDB Cluster: A Complete HA Solution

More Related Content

What's hot

MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMario Beck
 
MySQL Performance - Best practices
MySQL Performance - Best practices MySQL Performance - Best practices
MySQL Performance - Best practices Ted Wennmark
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsFrederic 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 InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesMySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesKenny Gryp
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationNuno Carvalho
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10Kenny Gryp
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8Frederic Descamps
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
 
MySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best PracticesMySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best PracticesFrederic Descamps
 
Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Glen Hawkins
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18Derek Downey
 
Running MariaDB in multiple data centers
Running MariaDB in multiple data centersRunning MariaDB in multiple data centers
Running MariaDB in multiple data centersMariaDB plc
 
Upgrade to MySQL 8.0!
Upgrade to MySQL 8.0!Upgrade to MySQL 8.0!
Upgrade to MySQL 8.0!Ted Wennmark
 
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...Frederic Descamps
 
MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMiguel Araújo
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterFrederic Descamps
 
MariaDB Performance Tuning and Optimization
MariaDB Performance Tuning and OptimizationMariaDB Performance Tuning and Optimization
MariaDB Performance Tuning and OptimizationMariaDB plc
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesFrederic Descamps
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best PracticesOlivier DASINI
 

What's hot (20)

MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
 
MySQL Performance - Best practices
MySQL Performance - Best practices MySQL Performance - Best practices
MySQL Performance - Best practices
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & Operations
 
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 InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesMySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group Replication
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8
 
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
 
MySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best PracticesMySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best Practices
 
Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive Oracle Active Data Guard: Best Practices and New Features Deep Dive
Oracle Active Data Guard: Best Practices and New Features Deep Dive
 
HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18HandsOn ProxySQL Tutorial - PLSC18
HandsOn ProxySQL Tutorial - PLSC18
 
Running MariaDB in multiple data centers
Running MariaDB in multiple data centersRunning MariaDB in multiple data centers
Running MariaDB in multiple data centers
 
Upgrade to MySQL 8.0!
Upgrade to MySQL 8.0!Upgrade to MySQL 8.0!
Upgrade to MySQL 8.0!
 
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
 
MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB Clusters
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
MariaDB Performance Tuning and Optimization
MariaDB Performance Tuning and OptimizationMariaDB Performance Tuning and Optimization
MariaDB Performance Tuning and Optimization
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL Architectures
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best Practices
 

Viewers also liked

Reducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLReducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLKenny Gryp
 
淘宝数据库架构演进历程
淘宝数据库架构演进历程淘宝数据库架构演进历程
淘宝数据库架构演进历程zhaolinjnu
 
MySQL - checklist для новичка в Highload
MySQL - checklist для новичка в HighloadMySQL - checklist для новичка в Highload
MySQL - checklist для новичка в HighloadSveta Smirnova
 
The nightmare of locking, blocking and isolation levels!
The nightmare of locking, blocking and isolation levels!The nightmare of locking, blocking and isolation levels!
The nightmare of locking, blocking and isolation levels!Boris Hristov
 
High Availability Using MySQL Group Replication
High Availability Using MySQL Group ReplicationHigh Availability Using MySQL Group Replication
High Availability Using MySQL Group ReplicationOSSCube
 
Эффективная отладка репликации MySQL
Эффективная отладка репликации MySQLЭффективная отладка репликации MySQL
Эффективная отладка репликации MySQLSveta Smirnova
 
2010丹臣的思考
2010丹臣的思考2010丹臣的思考
2010丹臣的思考zhaolinjnu
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应zhaolinjnu
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability Mydbops
 
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
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability MattersMatt Lord
 
Everything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group ReplicationEverything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group ReplicationNuno Carvalho
 
Online MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupOnline MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupKenny Gryp
 
MySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architecturesMySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architecturesFromDual GmbH
 
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 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMario Beck
 

Viewers also liked (20)

Reducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQLReducing Risk When Upgrading MySQL
Reducing Risk When Upgrading MySQL
 
淘宝数据库架构演进历程
淘宝数据库架构演进历程淘宝数据库架构演进历程
淘宝数据库架构演进历程
 
Explain
ExplainExplain
Explain
 
Requirements the Last Bottleneck
Requirements the Last BottleneckRequirements the Last Bottleneck
Requirements the Last Bottleneck
 
MySQL - checklist для новичка в Highload
MySQL - checklist для новичка в HighloadMySQL - checklist для новичка в Highload
MySQL - checklist для новичка в Highload
 
Redis介绍
Redis介绍Redis介绍
Redis介绍
 
The nightmare of locking, blocking and isolation levels!
The nightmare of locking, blocking and isolation levels!The nightmare of locking, blocking and isolation levels!
The nightmare of locking, blocking and isolation levels!
 
High Availability Using MySQL Group Replication
High Availability Using MySQL Group ReplicationHigh Availability Using MySQL Group Replication
High Availability Using MySQL Group Replication
 
Эффективная отладка репликации MySQL
Эффективная отладка репликации MySQLЭффективная отладка репликации MySQL
Эффективная отладка репликации MySQL
 
2010丹臣的思考
2010丹臣的思考2010丹臣的思考
2010丹臣的思考
 
Mysql展示功能与源码对应
Mysql展示功能与源码对应Mysql展示功能与源码对应
Mysql展示功能与源码对应
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
 
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
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
Everything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group ReplicationEverything You Need to Know About MySQL Group Replication
Everything You Need to Know About MySQL Group Replication
 
Online MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackupOnline MySQL Backups with Percona XtraBackup
Online MySQL Backups with Percona XtraBackup
 
Mysql For Developers
Mysql For DevelopersMysql For Developers
Mysql For Developers
 
MySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architecturesMySQL High-Availability and Scale-Out architectures
MySQL High-Availability and Scale-Out architectures
 
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 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDBMySQL 5.7: Focus on InnoDB
MySQL 5.7: Focus on InnoDB
 

Similar to MySQL InnoDB Cluster: A Complete HA Solution

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
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology OverviewKeith Hollman
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterOlivier DASINI
 
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 Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinMySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinOlivier DASINI
 
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...OracleMySQL
 
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
 
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)OracleMySQL
 
What's New in MySQL 8.0 @ HKOSC 2017
What's New in MySQL 8.0 @ HKOSC 2017What's New in MySQL 8.0 @ HKOSC 2017
What's New in MySQL 8.0 @ HKOSC 2017Ivan Ma
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014Sanjay Manwani
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMatt Lord
 
BGOUG17: Cloudy with a chance of MySQL
BGOUG17: Cloudy with a chance of MySQLBGOUG17: Cloudy with a chance of MySQL
BGOUG17: Cloudy with a chance of MySQLGeorgi Kodinov
 
MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?Olivier DASINI
 
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...Olivier DASINI
 
MySQL London Tech Tour March 2015 - Embedded Database of Choice
MySQL London Tech Tour March 2015 - Embedded Database of ChoiceMySQL London Tech Tour March 2015 - Embedded Database of Choice
MySQL London Tech Tour March 2015 - Embedded Database of ChoiceMark Swarbrick
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)Mario Beck
 
Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.Daryll Whyte
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deploymentIvan Ma
 

Similar to MySQL InnoDB Cluster: A Complete HA Solution (20)

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
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
 
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterMySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
 
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 Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The DolphinMySQL Day Paris 2016 - State Of The Dolphin
MySQL Day Paris 2016 - State Of The Dolphin
 
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
MySQL in oracle_environments(Part 2): MySQL Enterprise Monitor & Oracle Enter...
 
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
 
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
MySQL in Oracle environment : Quick start guide for Oracle DBA (Part 1)
 
What's New in MySQL 8.0 @ HKOSC 2017
What's New in MySQL 8.0 @ HKOSC 2017What's New in MySQL 8.0 @ HKOSC 2017
What's New in MySQL 8.0 @ HKOSC 2017
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014
 
MySQL HA
MySQL HAMySQL HA
MySQL HA
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB Clusters
 
BGOUG17: Cloudy with a chance of MySQL
BGOUG17: Cloudy with a chance of MySQLBGOUG17: Cloudy with a chance of MySQL
BGOUG17: Cloudy with a chance of MySQL
 
MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?
 
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
 
MySQL London Tech Tour March 2015 - Embedded Database of Choice
MySQL London Tech Tour March 2015 - Embedded Database of ChoiceMySQL London Tech Tour March 2015 - Embedded Database of Choice
MySQL London Tech Tour March 2015 - Embedded Database of Choice
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)
 
Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.
 
Novinky v Oracle Database 18c
Novinky v Oracle Database 18cNovinky v Oracle Database 18c
Novinky v Oracle Database 18c
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
 

More from Olivier DASINI

MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...Olivier DASINI
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsOlivier DASINI
 
MySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features SummaryMySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features SummaryOlivier DASINI
 
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamMySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamOlivier DASINI
 
MySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features SummaryMySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features SummaryOlivier DASINI
 
MySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features SummaryMySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features SummaryOlivier DASINI
 
MySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features SummaryMySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features SummaryOlivier DASINI
 
MySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features SummaryMySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features SummaryOlivier DASINI
 
MySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features SummaryMySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features SummaryOlivier DASINI
 
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinMySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinOlivier DASINI
 
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsMySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsOlivier DASINI
 
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0Olivier DASINI
 
MySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreMySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreOlivier DASINI
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?Olivier DASINI
 
MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018Olivier DASINI
 
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...Olivier DASINI
 
MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...Olivier DASINI
 
MySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionMySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionOlivier DASINI
 
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceMySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceOlivier DASINI
 
MySQL Day Paris 2016 - MySQL as a Document Store
MySQL Day Paris 2016 - MySQL as a Document StoreMySQL Day Paris 2016 - MySQL as a Document Store
MySQL Day Paris 2016 - MySQL as a Document StoreOlivier DASINI
 

More from Olivier DASINI (20)

MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern Applications
 
MySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features SummaryMySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features Summary
 
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamMySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
 
MySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features SummaryMySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features Summary
 
MySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features SummaryMySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features Summary
 
MySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features SummaryMySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features Summary
 
MySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features SummaryMySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features Summary
 
MySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features SummaryMySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features Summary
 
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinMySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
 
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsMySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
 
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
 
MySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreMySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document Store
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
 
MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018
 
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
 
MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...MySQL Document Store - A Document Store with all the benefts of a Transactona...
MySQL Document Store - A Document Store with all the benefts of a Transactona...
 
MySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise EditionMySQL Day Paris 2016 - MySQL Enterprise Edition
MySQL Day Paris 2016 - MySQL Enterprise Edition
 
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceMySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud Service
 
MySQL Day Paris 2016 - MySQL as a Document Store
MySQL Day Paris 2016 - MySQL as a Document StoreMySQL Day Paris 2016 - MySQL as a Document Store
MySQL Day Paris 2016 - MySQL as a Document Store
 

Recently uploaded

TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHSneha Padhiar
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionSneha Padhiar
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Sumanth A
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Indian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfIndian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfalokitpathak01
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
Module-1-Building Acoustics(Introduction)(Unit-1).pdf
Module-1-Building Acoustics(Introduction)(Unit-1).pdfModule-1-Building Acoustics(Introduction)(Unit-1).pdf
Module-1-Building Acoustics(Introduction)(Unit-1).pdfManish Kumar
 
Detection&Tracking - Thermal imaging object detection and tracking
Detection&Tracking - Thermal imaging object detection and trackingDetection&Tracking - Thermal imaging object detection and tracking
Detection&Tracking - Thermal imaging object detection and trackinghadarpinhas1
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfShreyas Pandit
 
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...arifengg7
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfBalamuruganV28
 
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...shreenathji26
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfalene1
 
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...Amil baba
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
A brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProA brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProRay Yuan Liu
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organizationchnrketan
 
STATE TRANSITION DIAGRAM in psoc subject
STATE TRANSITION DIAGRAM in psoc subjectSTATE TRANSITION DIAGRAM in psoc subject
STATE TRANSITION DIAGRAM in psoc subjectGayathriM270621
 

Recently uploaded (20)

Versatile Engineering Construction Firms
Versatile Engineering Construction FirmsVersatile Engineering Construction Firms
Versatile Engineering Construction Firms
 
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based question
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Indian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfIndian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdf
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
Module-1-Building Acoustics(Introduction)(Unit-1).pdf
Module-1-Building Acoustics(Introduction)(Unit-1).pdfModule-1-Building Acoustics(Introduction)(Unit-1).pdf
Module-1-Building Acoustics(Introduction)(Unit-1).pdf
 
Detection&Tracking - Thermal imaging object detection and tracking
Detection&Tracking - Thermal imaging object detection and trackingDetection&Tracking - Thermal imaging object detection and tracking
Detection&Tracking - Thermal imaging object detection and tracking
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdf
 
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdf
 
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
 
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
A brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProA brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision Pro
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
priority interrupt computer organization
priority interrupt computer organizationpriority interrupt computer organization
priority interrupt computer organization
 
STATE TRANSITION DIAGRAM in psoc subject
STATE TRANSITION DIAGRAM in psoc subjectSTATE TRANSITION DIAGRAM in psoc subject
STATE TRANSITION DIAGRAM in psoc subject
 

MySQL InnoDB Cluster: A Complete HA Solution

  • 1. MySQL InnoDB Cluster Olivier Dasini MySQL Principal Solutions Architect EMEA olivier.dasini@oracle.com @freshdaz http://dasini.net/blog/ Copyright 2017, Oracle and/or its affiliates. All rights reserved A complete High Availability solution for MySQL PHP Tour 2017 - Nantes
  • 2. Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 2
  • 3. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. | Me, Myself & I ➢ MySQL Geek ✔ Addicted to MySQL for 15+ years! ✔ Playing with databases for 20+ years ➢ MySQL Writer, Blogger and Speaker ✔ Also former : DBA, Consultant, Architect, Trainer, ... ➢ MySQL Principal Solutions Architect EMEA at Oracle ➢ Stay tuned! : ✔ @freshdaz ✔ http://dasini.net/blog 3 Olivier DASINI
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 1 2 3 State of MySQL High Availability MySQL InnoDB Cluster Demo : Deploying MySQL InnoDB Cluster 4 4
  • 5. Copyright 2017, Oracle and/or its affiliates. All rights reserved The world's most popular open source database
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | A Modern Database for the Digital Age Digital Disruptors & Large Enterprises Rely on MySQL to Innovate 6
  • 7. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | They Scale with MySQL Mobile Network Supporting Over 800 Million Subscribers 1.7 Billion Active Users 100 TB of User Data for PayPal IDs Processed for 1 Billion Citizens 850 Million Candy Crush Game Plays/Day 2 Billion Events/Day for Booking.com 7
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Business Model since 2005 • Community Edition – GPL License – “You must cause any work that you distribute …, that … in part contains … the Program … to be licensed as a whole at no charge to all third parties under the terms of this License.” • Commercial Editions – Commercial License – Avoid any GPL issues 8 Improve Performance & Scalability Enhance Agility & Productivity Reduce TCO Mitigate Risks Get Immediate Help if/when Needed Increase Customer Satisfaction
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL within Oracle More Investment, More Innovation 2009 2017 9 ... 22 Years MySQL … 12 Years InnoDB of Oracle Stewardship … 7 Years MySQL within Oracle  2x Engineering Staff  3x QA Staff  2x Support Staff
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL within Oracle : Opensource and Commercial Extensions 10 • Lossless Semi-sync Replication • Global Transaction Ids • Multisource Replication • Multithreaded Replication • Group Replication • Performance_schema • GIS extensions • Fulltext search in InnoDB • Massive Scalability improvement • Secure by default • Transparent Database Encryption • Online DDL Operations • Transportable Tablespaces • Document Store / X DevAPI • JSON Datatype • JSON SQL Functions • Generated Columns • Multiple Triggers per Table • MySQL Utilities • MySQL Router • MySQL Shell • MySQL Cloud Service • MySQL Enterprise Backup • MySQL Enterprise TDE • MySQL Enterprise Audit • MySQL Enterprise Firewall • MySQL Enterprise Authentication • MySQL Enterprise Thread Pooling • Memcached Interface • Optimizer Enhancements • Query Rewrite Plugin • Fractional Seconds in time datatypes • Password Validation Plugin • InnoDB Bufferpool Dump • General Tablespaces • Separation of Tablespaces • Persistent Optimizer Statistics • Characterset Improvements • Sys Schema • InnoDB SSD optimizations • InnoDB native Partitioning • Dynamic Bufferpool Resizing
  • 11. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 5.7 since GA December 2015 11
  • 12. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | MySQL 5.7 – Improvements across the board • Replication • InnoDB • Optimizer • Security • Performance Schema • GIS • Triggers • Partitioning • Performance • New! SYS Schema • New! JSON • New! Group Replication • New! Document Store 12 150+ new features In total! http://www.thecompletelistoffeatures.com/
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 1 2 3 State of MySQL High Availability MySQL InnoDB Cluster Demo : Deploying MySQL InnoDB Cluster 13 4
  • 14. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. | 14
  • 15. High Availability: Factors • Environment – Redundant servers in different datacenters and geographical areas will protect you against regional issues—power grid failures, hurricanes, earthquakes, etc. • Hardware – Each part of your hardware stack—networking, storage, servers—should be redundant • Software – Every layer of the software stack needs to be duplicated and distributed across separate hardware and environments • Data – Data loss and inconsistency/corruption must be prevented by having multiple copies of each piece of data, with consistency checks and guarantees for each change 15
  • 16. High Availability: The Causes of Downtime 16 40.00% 40.00% 20.00% Software/Application Human Error Hardware * Source: Gartner Group 1998 survey A study by the Gartner Group projected that through 2015, 80% of downtime will be due to people and process issues
  • 17. High Availability: The Business Cost of Downtime • Calculate a cost per minute of downtime – Average revenue generated per-minute over a year – Cost of not meeting any customer SLAs – Factor in costs that are harder to quantify 1. Revenue 2. Reputation 3. Customer sentiment 4. Stock price 5. Service’s success 6. Company’s very existence 17 THIS is why HA matters!
  • 18. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Multiple copies of data ? How ? 18
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Multiple copies of data with replication process
  • 20. Copyright 2017, Oracle and/or its affiliates. All rights reserved HA solutions with MySQL : Replication modes • Asynchronous => MySQL Replication — MySQL Default; In parallel: Master acks to app and sends transaction to slave — Fast; Risk of lost changes if master dies • Semi-Synchronous => MySQL Replication w/ semisynchronous plugin — MySQL 5.5+ Enhanced in MySQL 5.7; Serially: Master waits for change to be received by slave then In parallel ack to app and apply changes on slave — Intermediate latency; Lossless (MySQL 5.7) • Virtual-Synchronous => MySQL InnoDB Cluster w/ MySQL Group Replication — MySQL Group Replication; Multi-masters updates on nodes applied in parallel — MySQL Plugin delivered by MySQL for MySQL :) — Intermediate latency; Best suited to small transactions; Lossless • Synchronous => MySQL NDB Cluster — Only available with MySQL Cluster; Serially: Master waits for change to be applied on all slaves before ack to app — Higher latency; If Active/Active, best suited to small transactions; Lossless
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Database Replication: Some Notes Coordination Between Servers
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Replication 22
  • 23. Copyright 2017, Oracle and/or its affiliates. All rights reserved 25 B C CrashCrash B is the new master Ouch!!! Whew! https://dev.mysql.com/downloads/utilities/ B C A C B Slave promotion managed by mysqlrpladmin or mysqlfailover
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | NDB Cluster 26
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 27 MySQL NDB Cluster Data Nodes Clients Application Layer Data Layer Management MySQL NDB Cluster Architecture
  • 26. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. | • MySQL NDB Cluster –In memory distributed database –NDB storage engine –Automatic sharding –Native access via several API –Read/write consistency –Read/write scalability –Management via MCM/mgm-tool MySQL NDB Cluster Rock Solid Availability In-Memory Real-Time Performance Extreme Read & Write Scalability Elasticity
  • 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 1 2 3 State of MySQL High Availability MySQL InnoDB Cluster Demo : Deploying MySQL InnoDB Cluster 30 4
  • 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 31 MySQL InnoDB Cluster Collection of products that work together to provide a complete High Availability solution for MySQL
  • 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | InnoDB Cluster 32 App Servers with MySQL Router MySQL Group Replication “High Availability becomes a core first class feature of MySQL!” MySQL Shell Setup, Manage, Orchestrate http://dasini.net/blog/2017/05/11/tutoriel-deployer-mysql-innodb-cluster/
  • 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 33 A single product: MySQL • All components created together • Tested together • Packaged together Flexible and Modern • C++ 11 • Protocol Buffers • Developer friendly MySQL InnoDB Cluster – Goals Easy to use • A single client: MySQL Shell • Easy packaging • Homogenous servers Scale-out • Sharded clusters • Federated system of N replica sets • Each replica set manages a shard
  • 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 34 MySQL InnoDB Cluster: The Big Picture P App S S MySQL Shell and Orchestration Tooling App Simple Mapping, State and Extra Metadata Control, Coordinate, Provision Monitoring (MEM) MySQL Router MySQL Group Replication MySQL Router
  • 32. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. | MySQL Group Replication Native, built-in High Availability for your MySQL databases 36
  • 33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Group Replication 37 App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate
  • 34. MySQL Group Replication: What Is It? • Group Replication library – Implementation of Replicated Database State Machine theory • MySQL GCS is based on Paxos (variant of Mencius) – Provides virtually synchronous replication for MySQL 5.7+ – Supported on all MySQL platforms • Linux, Windows, Solaris, OSX, FreeBSD “Single/Multi-master update everywhere replication plugin for MySQL with built-in automatic distributed recovery, conflict detection and group membership.” 39 http://dasini.net/blog/2016/11/08/deployer-un-cluster-mysql-group-replication/
  • 35. • A Highly Available distributed MySQL database service – Clustering eliminates single points of failure (No SPOF) • Allows for online maintenance – Removes the need for handling server fail-over – Provides fault tolerance – Enables update everywhere setups – Automates group reconfiguration (handling of crashes, failures, re-connects) – Provides a highly available replicated database – Automatically ensures data consistency ie no data loss • Detects and handles conflicts • Prevents data loss • Prevents data corruption 40 MySQL Group Replication: What Does It Provide?
  • 36. MySQL Group Replication: Use Cases • Elastic Replication – Environments that require a very fluid replication infrastructure, where the number of servers has to grow or shrink dynamically and with little pain as possible. • Highly Available Shards – Sharding is a popular approach to achieve write scale-out. Users can use MySQL Group Replication to implement highly available shards in a federated system. Each shard can map into a Replication Group. • Alternative to Master-Slave Replication – Single-primary mode provides further automation on such setups ● Automatic PRIMARY/SECONDARY roles assignment ● Automatic new PRIMARY election on PRIMARY failures ● Automatic setup of read/write modes on PRIMARY and SECONDARIES ● Global consistent view of which server is the PRIMARY 42
  • 37. MySQL Group Replication: Architecture Node Types R: Traffic routers/proxies: mysqlrouter, ProxySQL, HAProxy... M: mysqld nodes participating in Group Replication 44
  • 38. MySQL Group Replication: Performance Comparison 45
  • 39. Full stack secure connections • Following the industry standards, Group Replication supports secure connections along the complete stack – Client connections – Distributed recovery connections – Connections between members • IP Whitelisting – Restrict which hosts are allowed to connect to the group – By default it is set to the values AUTOMATIC, which allow connections from private subnetworks active on the host 46 http://mysqlhighavailability.com/mysql-group-replication-securing-the-perimeter/
  • 40. Parallel applier support • Group Replication now also takes full advantage of parallel binary log applier infrastructure – Reduces applier lad and improves replication performance considerably – Configured in the sale way as asynchronous replication 47 slave_parallel_workers=<NUMBER> slave_parallel_type=logical_clock slave_preserve_commit_order=ON slave_parallel_workers=<NUMBER> slave_parallel_type=logical_clock slave_preserve_commit_order=ON
  • 41. Single Primary Mode • Configuration mode that makes a single member act as a writeable master (PRIMARY) and the rest of the members act as hot-standbys (SECONDARIES) – The group itself coordinates automatically to figure out which is the member that will act as the PRIMARY, through an automatic primary election mechanism – Secondaries are automatically set to read-only • Single_primary mode is the default mode – Closer to classic asynchronous replication setups, simpler to reason about the beginning – Avoids some limitations of multi-primary mode by default • The current PRIMARY member UUID can be know by executing the following SQL statement: 48 mysql> SELECT * FROM performance_schema.global_status WHERE VARIABLE_NAME='group_replication_primary_member'G *************************** 1. row *************************** VARIABLE_NAME: group_replication_primary_member VARIABLE_VALUE: dcd3b36b-79c5-11e6-97b8-00212844d44e mysql> SELECT * FROM performance_schema.global_status WHERE VARIABLE_NAME='group_replication_primary_member'G *************************** 1. row *************************** VARIABLE_NAME: group_replication_primary_member VARIABLE_VALUE: dcd3b36b-79c5-11e6-97b8-00212844d44e
  • 42. Multi-primary Mode • Configuration mode that makes all members writeable – Enabled by setting option --group_replication_single_primary_mode to OFF • Any two transactions on different servers can write to the same tuple • Conflicts will be detected and dealt with – First committer wins rule 49
  • 44. MySQL Group Replication Synchronous Transaction Delivery 51
  • 45. MySQL Group Replication Full Transaction life cycle 52
  • 46. MySQL Group Replication Traditional vs Optimistic locking 53 Traditional locking Optimistic locking Trx 2 waits on Trx 1 commit ERROR 1180 (HY000): Got error 149 during COMMIT
  • 48. Monitoring • performance_schema.replication_group_member_stats – Monitoring the performance of the members connected in the group • performance_schema.replication_group_members – Used for monitoring the status of the different server instances that are tracked in the current view • performance_schema.replication_connection_status – Show information regarding Group Replication • performance_schema.replication_applier_status – The state of the Group Replication related channels and thread 55
  • 49. MySQL Enterprise Monitor 3.4 • Native holistic support for Group Replication clusters – Intelligent monitoring and alerting – Topology views – Detailed metrics and graphs – Best Practice advice • Monitoring of MySQL Router instances 56
  • 50. MySQL Enterprise Monitor 3.4 57 • Group Replication with 3 online nodes • Group Replication with 3 nodes : – 2 online – 1 unreachable
  • 51. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Storage Engine InnoDB Distributed Architecture Shared nothing Network failure protection Quorum NoSQL APIs MySQL Document Store / InnoDB Memcached Replication Virtually Synchronous Database Failover Automatic OS Supported Linux, Windows, Solaris, OSX, FreeBSD Operational Complexity Medium Administration Standard (MySQL) MySQL Group Replication overview
  • 52. MySQL Group Replication wrap-up • Cloud Friendly – Great technology for deployments where elasticity is a requirement, such as cloud based infrastructures. • Integrated – With server core through a well defined API. – With GTIDs, row based replication, performance schema tables. – Share many pieces of MySQL Replication – Mutli-primary approach to replication • Autonomic and Operations Friendly – It is self-healing: no admin overhead for handling server fail-overs. – Provides fault-tolerance, enables multi-master update everywhere and a dependable MySQL service. • Plugin GA version available with MySQL 5.7.17+, available on 8.0.1+ 59
  • 53. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 60 App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate Router 2.1
  • 54. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Router 2.1 • MySQL Router is lightweight middleware that provides transparent routing between your application and back-end MySQL Servers. • MySQL Router also provides High Availability and Scalability by effectively routing database traffic to appropriate back-end MySQL Servers. • The pluggable architecture also enables developers to extend MySQL Router for custom use cases. 61
  • 55. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Router 2.1 • Native support for MySQL InnoDB clusters – Understands Group Replication topology – Utilizes metadata schema stored on each member • Bootstraps itself and sets up client routing for the GR cluster • Allows for intelligent client routing into the GR cluster • Supports multi-master and single primary modes • Core improvements – Logging – Monitoring – Performance – Security 62
  • 56. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 63 Shell App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate
  • 57. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell 64 A single unified client for all administrative and operations tasks • Advanced command-line client and code editor for the MySQL Server • Multi-Language: JavaScript, Python, and SQL – Naturally scriptable • Supports both Document and Relational models • Exposes full Development and Admin API ”MySQL Shell provides the developer and DBA with a single intuitive, flexible, and powerful interface for all MySQL related tasks!”
  • 58. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL Shell: Admin API • mysql-js> dba.help() • The global variable 'dba' is used to access the MySQL AdminAPI • Perform DBA operations – Manage MySQL InnoDB clusters • Create clusters • Get cluster info • Start/Stop MySQL Instances • Validate MySQL instances • … Database Administration Interface App Servers with MySQL Router MySQL Group Replication MySQL Shell Setup, Manage, Orchestrate 65
  • 59. Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | S1 S2 S3 S4 S… M M M MySQL Connector Application MySQL Router MySQL Connector Application MySQL Router MySQL Shell HA ReplicaSet(Shard1) S1 S2 S3 S4 S… M M M MySQL Connector Application MySQL Router HA ReplicaSet(Shard2) S1 S2 S3 S4 S… M M M HA ReplicaSet(Shard3) MySQL Connector Application MySQL Router MySQL InnoDB Cluster – The End Goal … MySQL InnoDB cluster
  • 60. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Program Agenda 1 2 3 State of MySQL High Availability MySQL InnoDB Cluster Demo : Deploying MySQL InnoDB Cluster 67 4
  • 61. Deploying MySQL InnoDB Cluster in Single-Primary Mode
  • 62. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | MySQL InnoDB Cluster: Demo’s architecture
  • 63. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Testing MySQL InnoDB Cluster in a sandbox – Demo 1/6 http://dasini.net/blog/2017/03/13/tester-mysql-innodb-cluster/ 1/ Connect to MySQL Shell $ mysqlsh 2/ Deploy 3 local MySQL instances on ports : 3310 - 3320 - 3330 mysql-js> dba.deploySandboxInstance(3310) mysql-js> dba.deploySandboxInstance(3320) mysql-js> dba.deploySandboxInstance(3330) • Deploying local sandbox MySQL Instances Now we have 3 MySQL server instances running on ports 3310, 3320 and 3330.
  • 64. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Testing MySQL InnoDB Cluster in a sandbox – Demo 2/6 Stop mysql-js> dba.stopSandboxInstance(3310); Start mysql-js> dba.startSandboxInstance(3320); Kill : simulate an unexpected halt while testing failover mysql-js> dba.killSandboxInstance(3330); Delete : Completely removes the sandbox instance from your file system mysql-js> dba.deleteSandboxInstance(3330); • Managing local sandbox MySQL Instances Once a sandbox instance is running, it is possible to change its status at any time :
  • 65. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Testing MySQL InnoDB Cluster in a sandbox – Demo 3/6 Check instance configuration before the deployment mysql-js> dba.checkInstanceConfiguration('root@localhost:3310') mysql-js> dba.checkInstanceConfiguration('root@localhost:3320') mysql-js> dba.checkInstanceConfiguration('root@localhost:3330') • Checking the configuration Configuration issues could be fixed manually or with configureLocalInstance e.g. mysql-js> dba.configureLocalInstance('root@localhost:3310')
  • 66. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Testing MySQL InnoDB Cluster in a sandbox – Demo 4/6 1/ Connect to instance 3310 mysql-js> c root@localhost:3310 2/ Create the cluster mysql-js> var cluster=dba.createCluster('demoCluster'); 3/ Check the transaction set and add node 3320 to the cluster mysql-js> cluster.checkInstanceState('root@localhost:3320') mysql-js> cluster.addInstance('root@localhost:3320') 4/ Check the transaction set and add node 3330 to the cluster mysql-js> cluster.checkInstanceState('root@localhost:3330') mysql-js> cluster.addInstance('root@localhost:3330') 5/ Check cluster status mysql-js> cluster.status() • Deploying the InnoDB Cluster
  • 67. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
  • 68. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Testing MySQL InnoDB Cluster in a sandbox – Demo 5/6 # Bootstrap MySQL Router $ mysqlrouter --bootstrap root@localhost:3310 --directory ~/demoSandbox # Start MySQL router $ ~/demoSandbox/start.sh • Deploying the Router The following connection information can be used to connect to the cluster. Classic MySQL protocol connections to cluster 'demoCluster': - Read/Write Connections: localhost : 6446 - Read/Only Connections: localhost : 6447 X protocol connections to cluster 'demoCluster': - Read/Write Connections: localhost : 64460 - Read/Only Connections: localhost : 64470
  • 69. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Testing MySQL InnoDB Cluster in a sandbox – Demo 6/6 1/ Connect to MySQL Router (default port = 6446) $ mysqlsh --uri=root@localhost:64466446 2/ Select primary node’s port mysql-js> sql mysql-sql> SELECT @@port; -- display 3310 3/ Primary node crash! mysql-sql> js mysql-js> dba.killSandboxInstance(3310) • Failover 4/ Select primary node’s port mysql-js> c root@localhost:6446 mysql-sql> SELECT @@port; -- display 3320 5/ Member is back to the group mysql-sql> js mysql-js> dba.startSandboxInstance(3310) var cluster = dba.getCluster('demoCluster') mysql-js> cluster.rejoinInstance('root@localhost:3310') mysql-js> cluster.status()
  • 70. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Scale-Out High Performance Ease-of-Use Built-in HA Out-of-Box Solution Everything Integrated MySQL InnoDB cluster MySQL InnoDB Cluster – Goals
  • 71. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Where to go from here? 83 • Packages – http://www.mysql.com/downloads/ • Documentation – http://dev.mysql.com/doc/refman/5.7/en/group-replication.html – https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-userguide.html – https://dev.mysql.com/doc/refman/5.7/en/mysql-shell.html – https://dev.mysql.com/doc/mysql-router/2.1/en/ – http://dev.mysql.com/doc/refman/8.0/en/group-replication.html • Blogs from the Engineers (news, technical information, and much more) – http://mysqlhighavailability.com – http://mysqlserverteam.com/ • Ressources en français – http://dasini.net/blog/2017/05/11/tutoriel-deployer-mysql-innodb-cluster/ – http://dasini.net/blog/2017/03/13/tester-mysql-innodb-cluster/ – http://dasini.net/blog/2016/11/08/deployer-un-cluster-mysql-group-replication/
  • 72. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Merci ! Olivier Dasini MySQL Principal Solutions Architect EMEA olivier.dasini@oracle.com @freshdaz http://dasini.net/blog/ PHP Tour 2017 - Nantes