SlideShare a Scribd company logo
Database Architectures
#MySQL8isGreat
Kenny Gryp
MySQL Product Manager
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for information purpose 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 up in making purchasing decisions. The development, release and timing of any
features or functionality described for Oracle´s product remains at the sole discretion of Oracle.
Copyright @ 2020 Oracle and/or its affiliates.
2 / 43
Past, Present & Future
Copyright @ 2020 Oracle and/or its affiliates.
3 / 43
Se ing up Replication topology was usually done
manually, taking many steps
including user management, restoring backups,
con guring replication...
MySQL o ered the technical pieces, leaving it up to
the user to setup an (always customized)
architecture
This requires technical components ... bringing lot's
of work for DBA's and experts, who spent their time
automating
'Past' - Manual
Copyright @ 2020 Oracle and/or its affiliates.
4 / 43
2016 - MySQL InnoDB Cluster
Group Replication: Automatic membership
changes, network partition handling, consistency...
Shell to provide a powerful interface that helps in
automating an integrating all components
InnoDB CLONE to automatically provision
members, fully integrated in InnoDB
Present - Solutions!
Copyright @ 2020 Oracle and/or its affiliates.
5 / 43
2020 - MySQL InnoDB Replicaset
'classic', 'asynchronous' Replication based Solution,
fully integrated
Present - Solutions!
Copyright @ 2020 Oracle and/or its affiliates.
6 / 43
MySQL InnoDB Cluster
Copyright @ 2020 Oracle and/or its affiliates.
7 / 43
Components:
MySQL Server
MySQL Group Replication
MySQL Shell
MySQL Router
MySQL InnoDB Cluster
"A single product — MySQL — with high availability and scaling features baked in;
providing an integrated end-to-end solution that is easy to use."
Copyright @ 2020 Oracle and/or its affiliates.
8 / 43
One Product: MySQL
All components developed together
Integration of all components
Full stack testing
MySQL InnoDB Cluster - Goals
Copyright @ 2020 Oracle and/or its affiliates.
9 / 43
One Product: MySQL
All components developed together
Integration of all components
Full stack testing
Easy to Use
One client: MySQL Shell
Integrated orchestration
Homogenous servers
MySQL InnoDB Cluster - Goals
Copyright @ 2020 Oracle and/or its affiliates.
9 / 43
High Available Distributed MySQL DB
Fault tolerance
Automatic failover
Active/Active update anywhere (limits apply)
Automatic membership management
Adding/removing members
Network partitions, failures
Con ict detection and resolution
Prevents data loss
MySQL Group Replication
Copyright @ 2020 Oracle and/or its affiliates.
10 / 43
MySQL Group Replication
Implementation of Replicated Database State Machine
Total Order - Writes
XCOM - Paxos implementation
Con gurable Consistency Guarantees
eventual consistency
8.0+: per session & global read/write consistency
Using MySQL replication framework by design
binary logs
relay logs
GTIDs: Global Transaction IDs
Generally Available since MySQL 5.7
Supported on all platforms: linux, windows, solaris, macosx, freebsd
Copyright @ 2020 Oracle and/or its affiliates.
11 / 43
Consistency: No Data Loss (RPO=0)
in event of failure of (primary) member
Split brain prevention (Quorum)
MySQL Group Replication - Use Cases
Copyright @ 2020 Oracle and/or its affiliates.
12 / 43
Consistency: No Data Loss (RPO=0)
in event of failure of (primary) member
Split brain prevention (Quorum)
Highly Available: Automatic Failover
Primary members are automatically elected
Automatic Network Partition handling
MySQL Group Replication - Use Cases
Copyright @ 2020 Oracle and/or its affiliates.
12 / 43
Consistency: No Data Loss (RPO=0)
in event of failure of (primary) member
Split brain prevention (Quorum)
Highly Available: Automatic Failover
Primary members are automatically elected
Automatic Network Partition handling
Read Scaleout
Add/Remove members as needed
Replication Lag handling with Flow Control
Con gurable Consistency Levels
Eventual
Full Consistency -- no stale reads
MySQL Group Replication - Use Cases
Copyright @ 2020 Oracle and/or its affiliates.
12 / 43
Consistency: No Data Loss (RPO=0)
in event of failure of (primary) member
Split brain prevention (Quorum)
Highly Available: Automatic Failover
Primary members are automatically elected
Automatic Network Partition handling
Read Scaleout
Add/Remove members as needed
Replication Lag handling with Flow Control
Con gurable Consistency Levels
Eventual
Full Consistency -- no stale reads
Active/Active environments
Write to many members at the same time
ordered writes within the group (XCOM)
guaranteed consistency
Good write performance
due to Optimistic Locking
(workload dependent)
MySQL Group Replication - Use Cases
Copyright @ 2020 Oracle and/or its affiliates.
12 / 43
Transparent Access to Database Arch.
"provide transparent routing between your application
and back-end MySQL Servers"
Transparent client connection routing
Load balancing
Application connection failover
Li le to no con guration needed
Stateless design o ers easy HA client routing
Router as part of the application stack
Integration into InnoDB Cluster & InnoDB
ReplicaSet
2 TCP Ports: PRIMARY and NON-PRIMARY
tra c
MySQL Router
Copyright @ 2020 Oracle and/or its affiliates.
13 / 43
Database Administration Interface
"MySQL Shell provides the developer and DBA with a
single intuitive, exible, and powerful interface for all
MySQL related tasks!"
Multi-Language: JavaScript, Python, and SQL
Naturally scriptable
Supports Document and Relational models
Exposes full Development and Admin API
Classic MySQL protocol and X protocol
MySQL Shell
Copyright @ 2020 Oracle and/or its affiliates.
14 / 43
MySQL InnoDB Cluster
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
15 / 43
MySQL InnoDB Cluster
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
Con gure server to add later:
mysql-js> dba.con gureInstance('admin@mysql2')
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
15 / 43
MySQL InnoDB Cluster
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
Con gure server to add later:
mysql-js> dba.con gureInstance('admin@mysql2')
Add server to the Cluster:
mysql-js> cluster.addInstance('admin@mysql2')
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
15 / 43
MySQL InnoDB Cluster
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
Con gure server to add later:
mysql-js> dba.con gureInstance('admin@mysql2')
Add server to the Cluster:
mysql-js> cluster.addInstance('admin@mysql2')
Bootstrap MySQL Router
$ sudo mysqlrouter --user=mysqlrouter --bootstrap
$ sudo systemctl start mysqlrouter
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
15 / 43
mysql-js> cluster.status()
{
"clusterName": "cluster",
"defaultReplicaSet": {
"name": "default",
"primary": "mysql1:3306",
"ssl": "REQUIRED",
"status": "OK",
"statusText": "Cluster is ONLINE and can
tolerate up to ONE failure.",
"topology": {
"mysql1:3306": {
"address": "mysql1:3306",
"mode": "R/W",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"mysql2:3306": {
"address": "mysql2:3306",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
},
"mysql3:3306": {
"address": "mysql3:3306",
"mode": "R/O",
"readReplicas": {},
"role": "HA",
"status": "ONLINE"
}
}
}
MySQL Shell - Easy to Use
Check the Cluster status:
Copyright @ 2020 Oracle and/or its affiliates.
16 / 43
MySQL InnoDB Cluster - Evolving
Copyright @ 2020 Oracle and/or its affiliates.
17 / 43
Many of our customers have adopted InnoDB Cluster!
Fully integrated MySQL Router
Automatic Routing
Ease of use with MySQL Shell
Con guring, Adding, Removing members
Group Replication Architecture
Providing Consistency
Automatic Failover
Network Partition Handling
No data loss in case of failure
Automatic Member Provisioning (CLONE)
MySQL InnoDB Cluster - Adoption
Copyright @ 2020 Oracle and/or its affiliates.
18 / 43
MySQL InnoDB ReplicaSet
Copyright @ 2020 Oracle and/or its affiliates.
19 / 43
Fully integrated MySQL Router
Automatic Routing
Ease of use with MySQL Shell
Con guring, Adding, Removing members
Automatic Member Provisioning (CLONE)
Replication Architecture:
(manual) Switchover & Failover
(asynchronous) Read Scaleout
'Simple' Replication architecture:
no network/hardware requirements
Provides Availability on PRIMARY
during issues with members or network
MySQL InnoDB ReplicaSet
Copyright @ 2020 Oracle and/or its affiliates.
20 / 43
Past MySQL InnoDB ReplicaSet
Restore a backup to provision a member
 
Automatically provisioning new members:
InnoDB CLONE
MySQL InnoDB ReplicaSet - Features
Copyright @ 2020 Oracle and/or its affiliates.
21 / 43
Past MySQL InnoDB ReplicaSet
Restore a backup to provision a member
 
Automatically provisioning new members:
InnoDB CLONE
Con gure Replication Users
Con gure Replication
MySQL Shell Automatically con gures users & replication
MySQL InnoDB ReplicaSet - Features
Copyright @ 2020 Oracle and/or its affiliates.
21 / 43
Past MySQL InnoDB ReplicaSet
Restore a backup to provision a member
 
Automatically provisioning new members:
InnoDB CLONE
Con gure Replication Users
Con gure Replication
MySQL Shell Automatically con gures users & replication
Manually con guring, adding removing servers in
Application, MySQL Router (or other proxy)
 
Integrated MySQL Router load balancing
Only need to bootstrap Router
Router is stateless, adapts to topology changes
MySQL InnoDB ReplicaSet - Features
Copyright @ 2020 Oracle and/or its affiliates.
21 / 43
Past MySQL InnoDB ReplicaSet
Restore a backup to provision a member
 
Automatically provisioning new members:
InnoDB CLONE
Con gure Replication Users
Con gure Replication
MySQL Shell Automatically con gures users & replication
Manually con guring, adding removing servers in
Application, MySQL Router (or other proxy)
 
Integrated MySQL Router load balancing
Only need to bootstrap Router
Router is stateless, adapts to topology changes
Manually or relying on external tools to make topology
changes
Easy to use manual switchover/failover
MySQL InnoDB ReplicaSet - Features
Copyright @ 2020 Oracle and/or its affiliates.
21 / 43
Past MySQL InnoDB ReplicaSet
MySQL InnoDB ReplicaSet - Features
Copyright @ 2020 Oracle and/or its affiliates.
22 / 43
Past MySQL InnoDB ReplicaSet
Use additional monitoring tool log in on all machines to
check topology status
See status of the topology through MySQL Shell status()
 
MySQL InnoDB ReplicaSet - Features
Copyright @ 2020 Oracle and/or its affiliates.
22 / 43
Past MySQL InnoDB ReplicaSet
Use additional monitoring tool log in on all machines to
check topology status
See status of the topology through MySQL Shell status()
 
complexity: user is responsible for the full con guration
of every component and it's se ings
Shell con gures Server, Router, Replication in a
standardized best practice setup, prevents mistakes
MySQL InnoDB ReplicaSet - Features
Copyright @ 2020 Oracle and/or its affiliates.
22 / 43
Past MySQL InnoDB ReplicaSet
Use additional monitoring tool log in on all machines to
check topology status
See status of the topology through MySQL Shell status()
 
complexity: user is responsible for the full con guration
of every component and it's se ings
Shell con gures Server, Router, Replication in a
standardized best practice setup, prevents mistakes
every setup is a customized setup Standard Solution -- Supported & QA'ed by Oracle
MySQL InnoDB ReplicaSet - Features
Copyright @ 2020 Oracle and/or its affiliates.
22 / 43
Past MySQL InnoDB ReplicaSet
Use additional monitoring tool log in on all machines to
check topology status
See status of the topology through MySQL Shell status()
 
complexity: user is responsible for the full con guration
of every component and it's se ings
Shell con gures Server, Router, Replication in a
standardized best practice setup, prevents mistakes
every setup is a customized setup Standard Solution -- Supported & QA'ed by Oracle
A lot of manual steps and additional software required,
always customized and often overengineered by MySQL
DBA's
Easy to use, even for MySQL beginner
MySQL InnoDB ReplicaSet - Features
Copyright @ 2020 Oracle and/or its affiliates.
22 / 43
MySQL InnoDB ReplicaSet - Requirements & Limitations
Requirements:
MySQL 8 (SET PERSIST!)
GTID
Limitations:
Manual failover
No multi-primary as such topology cannot guarantee data consistency
All secondary members replicate from primary
Copyright @ 2020 Oracle and/or its affiliates.
23 / 43
MySQL InnoDB ReplicaSet - Demo
Copyright @ 2020 Oracle and/or its affiliates.
00:00
24 / 43
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
25 / 43
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
mysql-js> c admin@mysql1
mysql-js> rs = dba.createReplicaSet('replicaset')
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
25 / 43
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
mysql-js> c admin@mysql1
mysql-js> rs = dba.createReplicaSet('replicaset')
Con gure server to add later
mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2')
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
25 / 43
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
mysql-js> c admin@mysql1
mysql-js> rs = dba.createReplicaSet('replicaset')
Con gure server to add later
mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2')
Add server to the Cluster
mysql-js> cluster.addInstance('admin@mysql2') mysql-js> rs.addInstance('admin@mysql2')
MySQL Shell - Easy to Use
Copyright @ 2020 Oracle and/or its affiliates.
25 / 43
MySQL InnoDB Cluster MySQL InnoDB ReplicaSet
mysql-js> c admin@mysql1
mysql-js> cluster = dba.createCluster('cluster')
mysql-js> c admin@mysql1
mysql-js> rs = dba.createReplicaSet('replicaset')
Con gure server to add later
mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2')
Add server to the Cluster
mysql-js> cluster.addInstance('admin@mysql2') mysql-js> rs.addInstance('admin@mysql2')
Bootstrap MySQL Router
$ sudo mysqlrouter --user=mysqlrouter --bootstrap
$ sudo systemctl start mysqlrouter
$ sudo mysqlrouter --user=mysqlrouter --bootstrap
$ sudo systemctl start mysqlrouter
MySQL Shell - Easy to Use
Demo: h ps://mysqlserverteam.com/introducing-mysql-innodb-replicaset
Copyright @ 2020 Oracle and/or its affiliates.
25 / 43
What does your business need?
Copyright @ 2020 Oracle and/or its affiliates.
26 / 43
Recovery Time Objective (RTO)
How fast should the service recover from a failure
Recovery Point Objective (RPO)
How much data loss can the service lose from a failure
Business Requirements
Copyright @ 2020 Oracle and/or its affiliates.
27 / 43
Recovery Time Objective (RTO)
How fast should the service recover from a failure
Recovery Point Objective (RPO)
How much data loss can the service lose from a failure
Types of Failures
High Availability: Single Server Failure, Network
Partition
Disaster Recovery: Full Region/Network Failure
Human Error: Li le Bobby Tables
How Much
None
few seconds
minutes
hours
day
...
Business Requirements
Copyright @ 2020 Oracle and/or its affiliates.
27 / 43
Which Solution fits my business?
Single Region
Copyright @ 2020 Oracle and/or its affiliates.
28 / 43
RTO = hours
RPO = minutes
Single MySQL Server
with backups
syncing binary logs (change stream) to other host
Single Region
Copyright @ 2020 Oracle and/or its affiliates.
29 / 43
RTO = hours
RPO = less than a second
Single MySQL Server
with frequent backups
remote binary log pulling (point in time recovery)
Single Region
Copyright @ 2020 Oracle and/or its affiliates.
30 / 43
RTO = minutes
RPO = less than a second
MySQL InnoDB ReplicaSet
Single Region
Copyright @ 2020 Oracle and/or its affiliates.
31 / 43
RTO = seconds
RPO = 0
MySQL InnoDB Cluster
Single Region
Copyright @ 2020 Oracle and/or its affiliates.
32 / 43
Which Solution fits my business?
Multi Region
Copyright @ 2020 Oracle and/or its affiliates.
33 / 43
Region Failure:
RTO = minutes,
RPO = seconds
MySQL InnoDB Cluster:
with asynchronous Replica
Note:
no write throughput impact on write transactions
Multi Region
Copyright @ 2020 Oracle and/or its affiliates.
34 / 43
Region Failure
RTO = seconds and/or
Region Failure RPO = 0
MySQL InnoDB Cluster deployed accross multiple
regions
consistency level AFTER with 2 regions
OR 3 regions with each region having 1-3 members.
write throughput impact on write transactions to
guarantee transactions are synced
Multi Region
Copyright @ 2020 Oracle and/or its affiliates.
35 / 43
Which Solution fits my business?
MySQL InnoDB Cluster Other Requirements
Copyright @ 2020 Oracle and/or its affiliates.
36 / 43
Fully Consistent Reads
Multi Primary Single Region
Multi Primary Multi Region
Multi Primary MySQL InnoDB Cluster
MySQL InnoDB Cluster Other Requirements
Copyright @ 2020 Oracle and/or its affiliates.
37 / 43
MySQL Database Architectures
Summary
Copyright @ 2020 Oracle and/or its affiliates.
38 / 43
MySQL Database Architectures
Single Region
Requirement Solution
RTO = hours,     RPO = minutes MySQL Server w. Backups & Binary Log Sync
RTO = hours,     RPO = less than a second MySQL Server w. Backups & Binary Log Stream
RTO = minutes, RPO = less than a second MySQL InnoDB ReplicaSet
RTO = seconds, RPO = 0 MySQL InnoDB Cluster
Multi Region
Requirement Solution
RTO = minutes, RPO = seconds MySQL InnoDB Cluster w. asynchronous replica
RTO = seconds
and/or RPO = 0
Multi Region MySQL InnoDB Cluster w:
- 2 region: consistency level AFTER
- 3 region deployment
Copyright @ 2020 Oracle and/or its affiliates.
39 / 43
MySQL Database Architectures
Other Requirements
Requirement Solution
Fully Consistent Reads MySQL InnoDB Cluster w. custom consistency levels
Multi Primary Single Region MySQL InnoDB Cluster
Multi Primary Multi Region Multi Region MySQL InnoDB Cluster
Copyright @ 2020 Oracle and/or its affiliates.
40 / 43
Q&A
Copyright @ 2020 Oracle and/or its affiliates.
41 / 43
Up Next
Panel: SQL or NoSQL? Schema or Schemaless?
Morgan Tocker, Markus Winand,
Bill Karwin, Moderator: Frédéric Descamps
MySQL Performance Tuning
Jesper Wisborg Krogh
Please visit the website for event agenda:
h p://developer.oracle.com/devlivemysql
Click the join bu on on the agenda to join either of the upcoming sessions.
Copyright @ 2020 Oracle and/or its affiliates.
42 / 43
Up Next
Panel: SQL or NoSQL? Schema or Schemaless?
Morgan Tocker, Markus Winand,
Bill Karwin, Moderator: Frédéric Descamps
MySQL Shell: The Best MySQL DBA Tool
Miguel Araújo
Please visit the website for event agenda:
h p://developer.oracle.com/devlivemysql
Click the join bu on on the agenda to join either of the upcoming sessions.
Copyright @ 2020 Oracle and/or its affiliates.
43 / 43

More Related Content

PDF
[2018] MySQL 이중화 진화기
PDF
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
PDF
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
PDF
MySQL Fabricでぼっこぼこにされたはなし
PDF
MySQL Router REST API
PDF
Galera cluster for high availability
PDF
ProxySQL High Avalability and Configuration Management Overview
PDF
M|18 Architectural Overview: MariaDB MaxScale
[2018] MySQL 이중화 진화기
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Fabricでぼっこぼこにされたはなし
MySQL Router REST API
Galera cluster for high availability
ProxySQL High Avalability and Configuration Management Overview
M|18 Architectural Overview: MariaDB MaxScale

What's hot (20)

ODP
Monitoring IO performance with iostat and pt-diskstats
ODP
MySQL Group Replication
PPTX
MySQL8.0_performance_schema.pptx
PDF
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
PPTX
MySQL_MariaDB로의_전환_기술요소-202212.pptx
PDF
MySQL Administrator 2021 - 네오클로바
PDF
Evolution of MySQL Parallel Replication
PDF
What is new in MariaDB 10.6?
PDF
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
PPTX
Running MariaDB in multiple data centers
PDF
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
PDF
MariaDB MaxScale
PDF
MySQL Advanced Administrator 2021 - 네오클로바
PDF
MySQL Multi-Source Replication for PL2016
PDF
Deep review of LMS process
DOCX
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
PPTX
Oracle RAC features on Exadata
PDF
MySQL Shell for DBAs
PDF
How to Manage Scale-Out Environments with MariaDB MaxScale
PDF
Maxscale_메뉴얼
Monitoring IO performance with iostat and pt-diskstats
MySQL Group Replication
MySQL8.0_performance_schema.pptx
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
MySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL Administrator 2021 - 네오클로바
Evolution of MySQL Parallel Replication
What is new in MariaDB 10.6?
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Running MariaDB in multiple data centers
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MariaDB MaxScale
MySQL Advanced Administrator 2021 - 네오클로바
MySQL Multi-Source Replication for PL2016
Deep review of LMS process
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Oracle RAC features on Exadata
MySQL Shell for DBAs
How to Manage Scale-Out Environments with MariaDB MaxScale
Maxscale_메뉴얼
Ad

Similar to MySQL Database Architectures - 2020-10 (20)

PDF
MySQL Database Architectures - 2022-08
PDF
20200613 my sql-ha-deployment
PDF
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
PDF
MySQL Database Architectures - High Availability and Disaster Recovery Solution
PDF
MySQL InnoDB Cluster / ReplicaSet - Tutorial
PDF
MySQL InnoDB Cluster / ReplicaSet - Tutorial
PDF
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
PDF
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
PDF
DataOps Barcelona - MySQL HA so easy... that's insane !
PDF
Sunshine php my sql 8.0 v2
PDF
the State of the Dolphin - October 2020
PDF
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
PDF
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
PDF
20191001 bkk-secret-of inno-db_clusterv1
PDF
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
PDF
20190817 coscup-oracle my sql innodb cluster sharing
PDF
MySQL 8 High Availability with InnoDB Clusters
PDF
MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)
PDF
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
PDF
Mysql User Camp : 20th June - Mysql New Features
MySQL Database Architectures - 2022-08
20200613 my sql-ha-deployment
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?
MySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - Tutorial
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
DataOps Barcelona - MySQL HA so easy... that's insane !
Sunshine php my sql 8.0 v2
the State of the Dolphin - October 2020
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
20191001 bkk-secret-of inno-db_clusterv1
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB Cluster
20190817 coscup-oracle my sql innodb cluster sharing
MySQL 8 High Availability with InnoDB Clusters
MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20th June - Mysql New Features
Ad

More from Kenny Gryp (12)

PDF
MySQL Operator for Kubernetes
PDF
MySQL Connectors 8.0.19 & DNS SRV
PDF
MySQL Group Replication - Ready For Production? (2018-04)
PDF
Reducing Risk When Upgrading MySQL
PDF
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
PDF
MySQL Group Replication
PDF
Multi Source Replication With MySQL 5.7 @ Verisure
PDF
MySQL Group Replication - HandsOn Tutorial
PDF
Online MySQL Backups with Percona XtraBackup
PDF
Advanced Percona XtraDB Cluster in a nutshell... la suite
PDF
Java MySQL Connector & Connection Pool Features & Optimization
PDF
Percona XtraDB Cluster
MySQL Operator for Kubernetes
MySQL Connectors 8.0.19 & DNS SRV
MySQL Group Replication - Ready For Production? (2018-04)
Reducing Risk When Upgrading MySQL
Percona XtraDB Cluster vs Galera Cluster vs MySQL Group Replication
MySQL Group Replication
Multi Source Replication With MySQL 5.7 @ Verisure
MySQL Group Replication - HandsOn Tutorial
Online MySQL Backups with Percona XtraBackup
Advanced Percona XtraDB Cluster in a nutshell... la suite
Java MySQL Connector & Connection Pool Features & Optimization
Percona XtraDB Cluster

Recently uploaded (20)

PDF
Digital Strategies for Manufacturing Companies
PPTX
FLIGHT TICKET RESERVATION SYSTEM | FLIGHT BOOKING ENGINE API
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
CRUISE TICKETING SYSTEM | CRUISE RESERVATION SOFTWARE
PPTX
Introduction to Artificial Intelligence
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
DOCX
The Five Best AI Cover Tools in 2025.docx
PPTX
Materi_Pemrograman_Komputer-Looping.pptx
PPTX
Safe Confined Space Entry Monitoring_ Singapore Experts.pptx
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
System and Network Administration Chapter 2
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Presentation of Computer CLASS 2 .pptx
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Mini project ppt template for panimalar Engineering college
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Digital Strategies for Manufacturing Companies
FLIGHT TICKET RESERVATION SYSTEM | FLIGHT BOOKING ENGINE API
Essential Infomation Tech presentation.pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
CRUISE TICKETING SYSTEM | CRUISE RESERVATION SOFTWARE
Introduction to Artificial Intelligence
Upgrade and Innovation Strategies for SAP ERP Customers
ISO 45001 Occupational Health and Safety Management System
2025 Textile ERP Trends: SAP, Odoo & Oracle
The Five Best AI Cover Tools in 2025.docx
Materi_Pemrograman_Komputer-Looping.pptx
Safe Confined Space Entry Monitoring_ Singapore Experts.pptx
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administration Chapter 2
Online Work Permit System for Fast Permit Processing
Understanding Forklifts - TECH EHS Solution
Presentation of Computer CLASS 2 .pptx
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Mini project ppt template for panimalar Engineering college
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...

MySQL Database Architectures - 2020-10

  • 2. Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purpose 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 up in making purchasing decisions. The development, release and timing of any features or functionality described for Oracle´s product remains at the sole discretion of Oracle. Copyright @ 2020 Oracle and/or its affiliates. 2 / 43
  • 3. Past, Present & Future Copyright @ 2020 Oracle and/or its affiliates. 3 / 43
  • 4. Se ing up Replication topology was usually done manually, taking many steps including user management, restoring backups, con guring replication... MySQL o ered the technical pieces, leaving it up to the user to setup an (always customized) architecture This requires technical components ... bringing lot's of work for DBA's and experts, who spent their time automating 'Past' - Manual Copyright @ 2020 Oracle and/or its affiliates. 4 / 43
  • 5. 2016 - MySQL InnoDB Cluster Group Replication: Automatic membership changes, network partition handling, consistency... Shell to provide a powerful interface that helps in automating an integrating all components InnoDB CLONE to automatically provision members, fully integrated in InnoDB Present - Solutions! Copyright @ 2020 Oracle and/or its affiliates. 5 / 43
  • 6. 2020 - MySQL InnoDB Replicaset 'classic', 'asynchronous' Replication based Solution, fully integrated Present - Solutions! Copyright @ 2020 Oracle and/or its affiliates. 6 / 43
  • 7. MySQL InnoDB Cluster Copyright @ 2020 Oracle and/or its affiliates. 7 / 43
  • 8. Components: MySQL Server MySQL Group Replication MySQL Shell MySQL Router MySQL InnoDB Cluster "A single product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use." Copyright @ 2020 Oracle and/or its affiliates. 8 / 43
  • 9. One Product: MySQL All components developed together Integration of all components Full stack testing MySQL InnoDB Cluster - Goals Copyright @ 2020 Oracle and/or its affiliates. 9 / 43
  • 10. One Product: MySQL All components developed together Integration of all components Full stack testing Easy to Use One client: MySQL Shell Integrated orchestration Homogenous servers MySQL InnoDB Cluster - Goals Copyright @ 2020 Oracle and/or its affiliates. 9 / 43
  • 11. High Available Distributed MySQL DB Fault tolerance Automatic failover Active/Active update anywhere (limits apply) Automatic membership management Adding/removing members Network partitions, failures Con ict detection and resolution Prevents data loss MySQL Group Replication Copyright @ 2020 Oracle and/or its affiliates. 10 / 43
  • 12. MySQL Group Replication Implementation of Replicated Database State Machine Total Order - Writes XCOM - Paxos implementation Con gurable Consistency Guarantees eventual consistency 8.0+: per session & global read/write consistency Using MySQL replication framework by design binary logs relay logs GTIDs: Global Transaction IDs Generally Available since MySQL 5.7 Supported on all platforms: linux, windows, solaris, macosx, freebsd Copyright @ 2020 Oracle and/or its affiliates. 11 / 43
  • 13. Consistency: No Data Loss (RPO=0) in event of failure of (primary) member Split brain prevention (Quorum) MySQL Group Replication - Use Cases Copyright @ 2020 Oracle and/or its affiliates. 12 / 43
  • 14. Consistency: No Data Loss (RPO=0) in event of failure of (primary) member Split brain prevention (Quorum) Highly Available: Automatic Failover Primary members are automatically elected Automatic Network Partition handling MySQL Group Replication - Use Cases Copyright @ 2020 Oracle and/or its affiliates. 12 / 43
  • 15. Consistency: No Data Loss (RPO=0) in event of failure of (primary) member Split brain prevention (Quorum) Highly Available: Automatic Failover Primary members are automatically elected Automatic Network Partition handling Read Scaleout Add/Remove members as needed Replication Lag handling with Flow Control Con gurable Consistency Levels Eventual Full Consistency -- no stale reads MySQL Group Replication - Use Cases Copyright @ 2020 Oracle and/or its affiliates. 12 / 43
  • 16. Consistency: No Data Loss (RPO=0) in event of failure of (primary) member Split brain prevention (Quorum) Highly Available: Automatic Failover Primary members are automatically elected Automatic Network Partition handling Read Scaleout Add/Remove members as needed Replication Lag handling with Flow Control Con gurable Consistency Levels Eventual Full Consistency -- no stale reads Active/Active environments Write to many members at the same time ordered writes within the group (XCOM) guaranteed consistency Good write performance due to Optimistic Locking (workload dependent) MySQL Group Replication - Use Cases Copyright @ 2020 Oracle and/or its affiliates. 12 / 43
  • 17. Transparent Access to Database Arch. "provide transparent routing between your application and back-end MySQL Servers" Transparent client connection routing Load balancing Application connection failover Li le to no con guration needed Stateless design o ers easy HA client routing Router as part of the application stack Integration into InnoDB Cluster & InnoDB ReplicaSet 2 TCP Ports: PRIMARY and NON-PRIMARY tra c MySQL Router Copyright @ 2020 Oracle and/or its affiliates. 13 / 43
  • 18. Database Administration Interface "MySQL Shell provides the developer and DBA with a single intuitive, exible, and powerful interface for all MySQL related tasks!" Multi-Language: JavaScript, Python, and SQL Naturally scriptable Supports Document and Relational models Exposes full Development and Admin API Classic MySQL protocol and X protocol MySQL Shell Copyright @ 2020 Oracle and/or its affiliates. 14 / 43
  • 19. MySQL InnoDB Cluster mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') MySQL Shell - Easy to Use Copyright @ 2020 Oracle and/or its affiliates. 15 / 43
  • 20. MySQL InnoDB Cluster mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') Con gure server to add later: mysql-js> dba.con gureInstance('admin@mysql2') MySQL Shell - Easy to Use Copyright @ 2020 Oracle and/or its affiliates. 15 / 43
  • 21. MySQL InnoDB Cluster mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') Con gure server to add later: mysql-js> dba.con gureInstance('admin@mysql2') Add server to the Cluster: mysql-js> cluster.addInstance('admin@mysql2') MySQL Shell - Easy to Use Copyright @ 2020 Oracle and/or its affiliates. 15 / 43
  • 22. MySQL InnoDB Cluster mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') Con gure server to add later: mysql-js> dba.con gureInstance('admin@mysql2') Add server to the Cluster: mysql-js> cluster.addInstance('admin@mysql2') Bootstrap MySQL Router $ sudo mysqlrouter --user=mysqlrouter --bootstrap $ sudo systemctl start mysqlrouter MySQL Shell - Easy to Use Copyright @ 2020 Oracle and/or its affiliates. 15 / 43
  • 23. mysql-js> cluster.status() { "clusterName": "cluster", "defaultReplicaSet": { "name": "default", "primary": "mysql1:3306", "ssl": "REQUIRED", "status": "OK", "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.", "topology": { "mysql1:3306": { "address": "mysql1:3306", "mode": "R/W", "readReplicas": {}, "role": "HA", "status": "ONLINE" }, "mysql2:3306": { "address": "mysql2:3306", "mode": "R/O", "readReplicas": {}, "role": "HA", "status": "ONLINE" }, "mysql3:3306": { "address": "mysql3:3306", "mode": "R/O", "readReplicas": {}, "role": "HA", "status": "ONLINE" } } } MySQL Shell - Easy to Use Check the Cluster status: Copyright @ 2020 Oracle and/or its affiliates. 16 / 43
  • 24. MySQL InnoDB Cluster - Evolving Copyright @ 2020 Oracle and/or its affiliates. 17 / 43
  • 25. Many of our customers have adopted InnoDB Cluster! Fully integrated MySQL Router Automatic Routing Ease of use with MySQL Shell Con guring, Adding, Removing members Group Replication Architecture Providing Consistency Automatic Failover Network Partition Handling No data loss in case of failure Automatic Member Provisioning (CLONE) MySQL InnoDB Cluster - Adoption Copyright @ 2020 Oracle and/or its affiliates. 18 / 43
  • 26. MySQL InnoDB ReplicaSet Copyright @ 2020 Oracle and/or its affiliates. 19 / 43
  • 27. Fully integrated MySQL Router Automatic Routing Ease of use with MySQL Shell Con guring, Adding, Removing members Automatic Member Provisioning (CLONE) Replication Architecture: (manual) Switchover & Failover (asynchronous) Read Scaleout 'Simple' Replication architecture: no network/hardware requirements Provides Availability on PRIMARY during issues with members or network MySQL InnoDB ReplicaSet Copyright @ 2020 Oracle and/or its affiliates. 20 / 43
  • 28. Past MySQL InnoDB ReplicaSet Restore a backup to provision a member   Automatically provisioning new members: InnoDB CLONE MySQL InnoDB ReplicaSet - Features Copyright @ 2020 Oracle and/or its affiliates. 21 / 43
  • 29. Past MySQL InnoDB ReplicaSet Restore a backup to provision a member   Automatically provisioning new members: InnoDB CLONE Con gure Replication Users Con gure Replication MySQL Shell Automatically con gures users & replication MySQL InnoDB ReplicaSet - Features Copyright @ 2020 Oracle and/or its affiliates. 21 / 43
  • 30. Past MySQL InnoDB ReplicaSet Restore a backup to provision a member   Automatically provisioning new members: InnoDB CLONE Con gure Replication Users Con gure Replication MySQL Shell Automatically con gures users & replication Manually con guring, adding removing servers in Application, MySQL Router (or other proxy)   Integrated MySQL Router load balancing Only need to bootstrap Router Router is stateless, adapts to topology changes MySQL InnoDB ReplicaSet - Features Copyright @ 2020 Oracle and/or its affiliates. 21 / 43
  • 31. Past MySQL InnoDB ReplicaSet Restore a backup to provision a member   Automatically provisioning new members: InnoDB CLONE Con gure Replication Users Con gure Replication MySQL Shell Automatically con gures users & replication Manually con guring, adding removing servers in Application, MySQL Router (or other proxy)   Integrated MySQL Router load balancing Only need to bootstrap Router Router is stateless, adapts to topology changes Manually or relying on external tools to make topology changes Easy to use manual switchover/failover MySQL InnoDB ReplicaSet - Features Copyright @ 2020 Oracle and/or its affiliates. 21 / 43
  • 32. Past MySQL InnoDB ReplicaSet MySQL InnoDB ReplicaSet - Features Copyright @ 2020 Oracle and/or its affiliates. 22 / 43
  • 33. Past MySQL InnoDB ReplicaSet Use additional monitoring tool log in on all machines to check topology status See status of the topology through MySQL Shell status()   MySQL InnoDB ReplicaSet - Features Copyright @ 2020 Oracle and/or its affiliates. 22 / 43
  • 34. Past MySQL InnoDB ReplicaSet Use additional monitoring tool log in on all machines to check topology status See status of the topology through MySQL Shell status()   complexity: user is responsible for the full con guration of every component and it's se ings Shell con gures Server, Router, Replication in a standardized best practice setup, prevents mistakes MySQL InnoDB ReplicaSet - Features Copyright @ 2020 Oracle and/or its affiliates. 22 / 43
  • 35. Past MySQL InnoDB ReplicaSet Use additional monitoring tool log in on all machines to check topology status See status of the topology through MySQL Shell status()   complexity: user is responsible for the full con guration of every component and it's se ings Shell con gures Server, Router, Replication in a standardized best practice setup, prevents mistakes every setup is a customized setup Standard Solution -- Supported & QA'ed by Oracle MySQL InnoDB ReplicaSet - Features Copyright @ 2020 Oracle and/or its affiliates. 22 / 43
  • 36. Past MySQL InnoDB ReplicaSet Use additional monitoring tool log in on all machines to check topology status See status of the topology through MySQL Shell status()   complexity: user is responsible for the full con guration of every component and it's se ings Shell con gures Server, Router, Replication in a standardized best practice setup, prevents mistakes every setup is a customized setup Standard Solution -- Supported & QA'ed by Oracle A lot of manual steps and additional software required, always customized and often overengineered by MySQL DBA's Easy to use, even for MySQL beginner MySQL InnoDB ReplicaSet - Features Copyright @ 2020 Oracle and/or its affiliates. 22 / 43
  • 37. MySQL InnoDB ReplicaSet - Requirements & Limitations Requirements: MySQL 8 (SET PERSIST!) GTID Limitations: Manual failover No multi-primary as such topology cannot guarantee data consistency All secondary members replicate from primary Copyright @ 2020 Oracle and/or its affiliates. 23 / 43
  • 38. MySQL InnoDB ReplicaSet - Demo Copyright @ 2020 Oracle and/or its affiliates. 00:00 24 / 43
  • 39. MySQL Shell - Easy to Use Copyright @ 2020 Oracle and/or its affiliates. 25 / 43
  • 40. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') mysql-js> c admin@mysql1 mysql-js> rs = dba.createReplicaSet('replicaset') MySQL Shell - Easy to Use Copyright @ 2020 Oracle and/or its affiliates. 25 / 43
  • 41. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') mysql-js> c admin@mysql1 mysql-js> rs = dba.createReplicaSet('replicaset') Con gure server to add later mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2') MySQL Shell - Easy to Use Copyright @ 2020 Oracle and/or its affiliates. 25 / 43
  • 42. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') mysql-js> c admin@mysql1 mysql-js> rs = dba.createReplicaSet('replicaset') Con gure server to add later mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2') Add server to the Cluster mysql-js> cluster.addInstance('admin@mysql2') mysql-js> rs.addInstance('admin@mysql2') MySQL Shell - Easy to Use Copyright @ 2020 Oracle and/or its affiliates. 25 / 43
  • 43. MySQL InnoDB Cluster MySQL InnoDB ReplicaSet mysql-js> c admin@mysql1 mysql-js> cluster = dba.createCluster('cluster') mysql-js> c admin@mysql1 mysql-js> rs = dba.createReplicaSet('replicaset') Con gure server to add later mysql-js> dba.con gureInstance('admin@mysql2') mysql-js> dba.con gureReplicaSetInstance('admin@mysql2') Add server to the Cluster mysql-js> cluster.addInstance('admin@mysql2') mysql-js> rs.addInstance('admin@mysql2') Bootstrap MySQL Router $ sudo mysqlrouter --user=mysqlrouter --bootstrap $ sudo systemctl start mysqlrouter $ sudo mysqlrouter --user=mysqlrouter --bootstrap $ sudo systemctl start mysqlrouter MySQL Shell - Easy to Use Demo: h ps://mysqlserverteam.com/introducing-mysql-innodb-replicaset Copyright @ 2020 Oracle and/or its affiliates. 25 / 43
  • 44. What does your business need? Copyright @ 2020 Oracle and/or its affiliates. 26 / 43
  • 45. Recovery Time Objective (RTO) How fast should the service recover from a failure Recovery Point Objective (RPO) How much data loss can the service lose from a failure Business Requirements Copyright @ 2020 Oracle and/or its affiliates. 27 / 43
  • 46. Recovery Time Objective (RTO) How fast should the service recover from a failure Recovery Point Objective (RPO) How much data loss can the service lose from a failure Types of Failures High Availability: Single Server Failure, Network Partition Disaster Recovery: Full Region/Network Failure Human Error: Li le Bobby Tables How Much None few seconds minutes hours day ... Business Requirements Copyright @ 2020 Oracle and/or its affiliates. 27 / 43
  • 47. Which Solution fits my business? Single Region Copyright @ 2020 Oracle and/or its affiliates. 28 / 43
  • 48. RTO = hours RPO = minutes Single MySQL Server with backups syncing binary logs (change stream) to other host Single Region Copyright @ 2020 Oracle and/or its affiliates. 29 / 43
  • 49. RTO = hours RPO = less than a second Single MySQL Server with frequent backups remote binary log pulling (point in time recovery) Single Region Copyright @ 2020 Oracle and/or its affiliates. 30 / 43
  • 50. RTO = minutes RPO = less than a second MySQL InnoDB ReplicaSet Single Region Copyright @ 2020 Oracle and/or its affiliates. 31 / 43
  • 51. RTO = seconds RPO = 0 MySQL InnoDB Cluster Single Region Copyright @ 2020 Oracle and/or its affiliates. 32 / 43
  • 52. Which Solution fits my business? Multi Region Copyright @ 2020 Oracle and/or its affiliates. 33 / 43
  • 53. Region Failure: RTO = minutes, RPO = seconds MySQL InnoDB Cluster: with asynchronous Replica Note: no write throughput impact on write transactions Multi Region Copyright @ 2020 Oracle and/or its affiliates. 34 / 43
  • 54. Region Failure RTO = seconds and/or Region Failure RPO = 0 MySQL InnoDB Cluster deployed accross multiple regions consistency level AFTER with 2 regions OR 3 regions with each region having 1-3 members. write throughput impact on write transactions to guarantee transactions are synced Multi Region Copyright @ 2020 Oracle and/or its affiliates. 35 / 43
  • 55. Which Solution fits my business? MySQL InnoDB Cluster Other Requirements Copyright @ 2020 Oracle and/or its affiliates. 36 / 43
  • 56. Fully Consistent Reads Multi Primary Single Region Multi Primary Multi Region Multi Primary MySQL InnoDB Cluster MySQL InnoDB Cluster Other Requirements Copyright @ 2020 Oracle and/or its affiliates. 37 / 43
  • 57. MySQL Database Architectures Summary Copyright @ 2020 Oracle and/or its affiliates. 38 / 43
  • 58. MySQL Database Architectures Single Region Requirement Solution RTO = hours,     RPO = minutes MySQL Server w. Backups & Binary Log Sync RTO = hours,     RPO = less than a second MySQL Server w. Backups & Binary Log Stream RTO = minutes, RPO = less than a second MySQL InnoDB ReplicaSet RTO = seconds, RPO = 0 MySQL InnoDB Cluster Multi Region Requirement Solution RTO = minutes, RPO = seconds MySQL InnoDB Cluster w. asynchronous replica RTO = seconds and/or RPO = 0 Multi Region MySQL InnoDB Cluster w: - 2 region: consistency level AFTER - 3 region deployment Copyright @ 2020 Oracle and/or its affiliates. 39 / 43
  • 59. MySQL Database Architectures Other Requirements Requirement Solution Fully Consistent Reads MySQL InnoDB Cluster w. custom consistency levels Multi Primary Single Region MySQL InnoDB Cluster Multi Primary Multi Region Multi Region MySQL InnoDB Cluster Copyright @ 2020 Oracle and/or its affiliates. 40 / 43
  • 60. Q&A Copyright @ 2020 Oracle and/or its affiliates. 41 / 43
  • 61. Up Next Panel: SQL or NoSQL? Schema or Schemaless? Morgan Tocker, Markus Winand, Bill Karwin, Moderator: Frédéric Descamps MySQL Performance Tuning Jesper Wisborg Krogh Please visit the website for event agenda: h p://developer.oracle.com/devlivemysql Click the join bu on on the agenda to join either of the upcoming sessions. Copyright @ 2020 Oracle and/or its affiliates. 42 / 43
  • 62. Up Next Panel: SQL or NoSQL? Schema or Schemaless? Morgan Tocker, Markus Winand, Bill Karwin, Moderator: Frédéric Descamps MySQL Shell: The Best MySQL DBA Tool Miguel Araújo Please visit the website for event agenda: h p://developer.oracle.com/devlivemysql Click the join bu on on the agenda to join either of the upcoming sessions. Copyright @ 2020 Oracle and/or its affiliates. 43 / 43