SlideShare a Scribd company logo
1 of 75
Download to read offline
The following is intended to outline our general product direction. It is intended for information purposes
only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code,
or functionality, and should not be relied upon in making purchasing decisions. The development,
release, timing, and pricing of any features or functionality described for Oracle’s products may change
and remains at the sole discretion of Oracle Corporation.
Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and
prospects are “forward-looking statements” and are subject to material risks and uncertainties. A detailed
discussion of these factors and other risks that affect our business is contained in Oracle’s Securities and
Exchange Commission (SEC) filings, including our most recent reports on Form 10-K and Form 10-Q
under the heading “Risk Factors.” These filings are available on the SEC’s website or on Oracle’s website
at http://www.oracle.com/investor. All information in this presentation is current as of September 2019
and Oracle undertakes no duty to update any statement in light of new information or future events.
Safe Harbor
Copyright © 2019 Oracle and/or its affiliates.
$ whoami
Copyright © 2019 Oracle and/or its affiliates.
Miguel Araújo
• MySQL Developer since 2011
• AdminAPI Tech Lead @ MySQL Shell team
• Living in Portugal
• http://about.me/miguel-araujo
• @M1guelAraujo
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell AdminAPI
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell
• Interactive multi-language console interface that supports
development and administration for the MySQL Server:
• Supports JavaScript, Python and SQL
• Interactive and batch operations (scripting)
• Supports Document and Relational models (X and MySQL protocols)
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell
• Exposes full Development and Administration APIs:
• Scriptable “DevOps” APIS
• Unified interface for developers and DBAs
Copyright © 2019 Oracle and/or its affiliates.
MySQL Shell AdminAPI
• Creation and Management of InnoDB Clusters / ReplicaSets
• Available in both JavaScript and Python; and command-line
• Simple and straight-forward
• Flexible, powerful and secure!
Copyright © 2019 Oracle and/or its affiliates.
•MySQL Group Replication
•MySQL Shell
•MySQL Router
InnoDB Cluster
“A single product – MySQL – with high
availability and scaling features baked in;
providing an integrated end-to-end
solution that is easy to use.”
Copyright © 2019 Oracle and/or its affiliates.
•MySQL Replication
•MySQL Shell
•MySQL Router
“We take a strong technology that is very
powerful but can be complex, and provide
an easy-to-use AdminAPI for it in the
MySQL Shell”
InnoDB ReplicaSet
Copyright © 2019 Oracle and/or its affiliates.
Creating a Cluster - AdminAPI
// Configure Instances for Cluster usage
mysqlsh-js> dba.configureInstance(“root@mysql1:3306”)
// Create the Cluster
mysqlsh-js> c root@mysql1:3306
mysqlsh-js> cluster = dba.createCluster(“myCluster”)
// Add Instances to the Cluster
mysqlsh-js> cluster.addInstance(“root@mysql2:3306”)
Copyright © 2019 Oracle and/or its affiliates.
Creating a ReplicaSet- AdminAPI
// Configure Instances for ReplicaSet usage
mysqlsh-js> dba.configureReplicaSetInstance(“root@mysql1:3306”)
// Create the ReplicaSet
mysqlsh-js> c root@mysql1:3306
mysqlsh-js> replicaset = dba.createReplicaSet(“myReplicaSet”)
// Add Instances to the ReplicaSet
mysqlsh-js> replicaset.addInstance(“mysql2:3306”)
Couldn’t be easier!
Powerful solutions supported by Shell’s ease of use.
Copyright © 2019 Oracle and/or its affiliates.
Node Provisioning
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
Provisioning
• Provisioning a server is the process of configuring and getting it
ready to be used in an InnoDB Cluster/ReplicaSet.
• In InnoDB Cluster, the server needs to have all clusters’ data to be
able to join it
• That’s typically done by:
1. Performing a backup of one of the cluster members
2. Restoring the image in the new member that wants to join
Copyright © 2019 Oracle and/or its affiliates.
Distributed Recovery
• Distributed recovery is a process that runs when a new member is
added to the group and has missing transactions
• A donor that can provide the missing data is automatically selected
• The catch-up happens transparently and the server is
synchronized with the rest of the cluster
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
• Incremental recovery fetches only the missing data based on the
GTIDs into
- The cluster must be able to provide all the missing data
• Relies on the classic Asynchronous Replication
• Also provides group transactional information
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
Some data is inserted in
the DB
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
The data modifications
are stored in the binlog.
And the transactions are
delivered to every cluster
member
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
Group Replication is
eventually synchronous.
Guarantees that
transactions are delivered
to all members in the
same order.
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
The binlogs keep track of
all data modifications.
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
A new member wants to
join the cluster
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
A new member wants to
join the cluster
The missing data is
fetched and the server
synchronizes with the rest
of the cluster
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
A donor is automatically
selected to fetch the
missing data from, using
plain Asynchronous
Replication
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
A donor is automatically
selected to fetch the
missing data from, using
plain Asynchronous
Replication
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
A donor is automatically
selected to fetch the
missing data from, using
plain Asynchronous
Replication
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
The instance successfully
joins the cluster!
Incremental Recovery to Provision
May take a considerable amount of time !
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
• But what if the cluster members lost all binary logs?
• Or even... Just some data is missing that is not
available on any binary log
• What about space constraints?
?
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
Some binary logs were
purged.
And the instance has no
data yet.
Copyright © 2019 Oracle and/or its affiliates.
Incremental Recovery to Provision
Some binary logs were
purged.
And the instance has no
data yet.
Failed attempt to join the
cluster !
Copyright © 2019 Oracle and/or its affiliates.
MySQL Clone Plugin
• Performs physical snapshots of databases
Really fast!
• Transfers snapshots over the network to provision
servers
Can be used remotely!
• Replaces all server data
Available in InnoDB
Cluster and ReplicaSet !
Copyright © 2019 Oracle and/or its affiliates.
Clone to Provision
Common issues solved with Clone:
• Very large datasesets
• Incomplete binary log history
• Re-provision diverged instances
Copyright © 2019 Oracle and/or its affiliates.
Clone to Provision
Some binary logs were
purged.
And the instance has no
data yet.
Copyright © 2019 Oracle and/or its affiliates.
Clone to Provision
Some binary logs were
purged.
And the instance has no
data yet.
Clone required !
Copyright © 2019 Oracle and/or its affiliates.
Clone to Provision
A donor is automatically
selected.
And a full snapshot of its
data is performed.
Copyright © 2019 Oracle and/or its affiliates.
Clone to Provision
The instance successfully
joins the cluster!
Clone-based
Recovery Live Demo
Copyright © 2019 Oracle and/or its affiliates.
InnoDB Cluster
Copyright © 2019 Oracle and/or its affiliates.
•Incremental recovery is possible if:
• At least 1 member can provide the
joiner with the same set of transactions
it has processed.
• The joiner does not have errant
transactions
•Incremental recovery appropriate if:
• No purged transactions
• Joiner does not have an empty GTID
set
• GTID support and binary logs were
always enabled
Which recovery shall be used?
Incremental recovery safe and appropriate:
Copyright © 2019 Oracle and/or its affiliates.
AdminAPI Guidance
Copyright © 2019 Oracle and/or its affiliates.
AdminAPI Guidance
Clone-based recovery required:
Clone-based
Recovery Live Demo
Copyright © 2019 Oracle and/or its affiliates.
InnoDB ReplicaSet
Copyright © 2019 Oracle and/or its affiliates.
InnoDB Cluster/ReplicaSet
• Built-in support for full instance provisioning!
• AdminAPI transparently:
ü Setups the cluster/replicaset to be ready for clone usage (plugin setup, user grants, etc.)
ü Detects every possible scenario and guides the user accordingly to the best provisioning
method
ü Still allowing manual intervention to choose the provisioning method
Monitoring
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
Node Provisioning Monitoring
• The AdminAPI was extended to provide monitoring features:
ü For any type of recovery method: clone or incremental
ü Real-time progress information
ü Detailed stage status
ü Asynchronous progress information from cluster.status()
Copyright © 2019 Oracle and/or its affiliates.
Node Provisioning Monitoring
Clone-based recovery
progress information from:
cluster.status()
Copyright © 2019 Oracle and/or its affiliates.
Cluster Status
Entry point for Cluster
monitoring:
ü Provides general info about the
cluster
ü Provides info about each member
status
mysqlsh-js> cluster.status()
Copyright © 2019 Oracle and/or its affiliates.
Extended Status
Provides information of:
• GR Group name + protocol version
• Cluster members UUIDs
• Cluster members roles and states
• Read-only settings
mysqlsh-js>
cluster.status({extended: 1})
Copyright © 2019 Oracle and/or its affiliates.
Extended Status
Provides information of:
• Transactions processed by
connection and applier threads
mysqlsh-js>
cluster.status({extended: 2})
Copyright © 2019 Oracle and/or its affiliates.
Extended Status
Provides information of:
• Detailed stats about the replication
machinery of each cluster member
mysqlsh-js>
cluster.status({extended: 3})
Copyright © 2019 Oracle and/or its affiliates.
ReplicaSet Status
Entry point for ReplicaSet
monitoring:
ü Provides general info about the
replicaset
ü Provides info about each member
status
mysqlsh-js> replicaset.status()
Copyright © 2019 Oracle and/or its affiliates.
Router Monitoring
Provides information of:
• Router info: name, version
• Last check-in
• Hostname
• RO/RW end ports
mysqlsh-js> cluster.listRouters()
Maintenance and
Troubleshooting
Copyright © 2019 Oracle and/or its affiliates.
Anything that can go wrong will go wrong.”“
Copyright © 2019 Oracle and/or its affiliates.
Monitoring a Cluster/ReplicaSet can provide info/hints about:
• Faulty Networks
• Server crashes/failures
• High latencies
Copyright © 2019 Oracle and/or its affiliates.
Maintenance
• Total outages
• … and much more!
Copyright © 2019 Oracle and/or its affiliates.
Cluster Options
Provides information of:
• The cluster global configuration options
• Each cluster member settings
mysqlsh-js> cluster.options()
memberWeight
Next primary in line when a
failover happens
autoRejoinTries
Automatically join back group
after leaving/being expelled
expelTimeout
Avoid frequent member expels due
to less reliable networks
consistency
Transaction consistency
guarantees
Copyright © 2019 Oracle and/or its affiliates.
Cluster Options
memberWeight
Highest value will be first to
be elected as primary in a
failover
autoRejoinTries
Set to 3
expelTimeout
Set to 5
Copyright © 2019 Oracle and/or its affiliates.
Cluster Options – Best practices
Copyright © 2019 Oracle and/or its affiliates.
Dynamically Changing Settings
// Change the member-weight value of a member
mysqlsh-js> cluster.setInstanceOption(“mysql2:3307”, “memberWeight”, 75)
// Change the auto-rejoin-tries of the cluster
mysqlsh-js> cluster.setOption(“autoRejoinTries”, 3)
// Change the cluster’s consistency level
mysqlsh-js> cluster.setOption(“consistency”, “AFTER”)
Copyright © 2019 Oracle and/or its affiliates.
Topology Modes
• The cluster’s primary instance can be changed, immediately:
Copyright © 2019 Oracle and/or its affiliates.
Topology Modes
• The topology-mode can be changed live:
// Change the topology-mode to multi-primary
mysqlsh-js> cluster.switchToMultiPrimaryMode()
// Change back to single-primary-mode
mysqlsh-js> cluster.switchToSinglePrimaryMode()
Copyright © 2019 Oracle and/or its affiliates.
Security
• Internal recovery accounts have randomly secure generated
passwords
• But security policies may enforce passwords lifetime
ü Support to reset a cluster’s recovery accounts credentials added
// Reset the recovery accounts credentials
mysqlsh-js> cluster.resetRecoveryAccountsPassword()
Some scenarios may require intervention…
• Network partitions
• Complete outage
• Server upgrades
Copyright © 2019 Oracle and/or its affiliates.
Troubleshooting
• Crashed members of a Cluster
or ReplicaSet
Copyright © 2019 Oracle and/or its affiliates.
Network Partitions
• A network partition can cause the loss
of quorum
• The cluster is not able to process any
more transactions
Copyright © 2019 Oracle and/or its affiliates.
Network Partitions
• Using a single AdminAPI command
the cluster can be easily unblocked
mysqlsh-js>
cluster.forceQuorumUsingPartitionOf(“clusterAdmin@server1:3306”)
Copyright © 2019 Oracle and/or its affiliates.
Complete Outage
• Very unlikely to happen!
• But...
• When it happens, restoring the instances back online is not enough
• The Group Replication group is completely gone
• Other configurations in place may have been lost
Copyright © 2019 Oracle and/or its affiliates.
Complete Outage
• Easily restore the Cluster back to its previously configured state
using:
mysqlsh-js> c clusterAdmin@server1:3306
mysqlsh-js> dba.rebootClusterFromCompleteOutage()
Copyright © 2019 Oracle and/or its affiliates.
Rejoin Instance
• An instance may not be able to automatically rejoin the
cluster/replicaset:
• Instance running MySQL 5.7 without settings persisted
• Instance from minority partition
• Invalidated primary from ReplicaSet
Copyright © 2019 Oracle and/or its affiliates.
Rejoin Instance
• Full detection of best provisioning method supported for rejoining
instances
mysqlsh-js> cluster.rejoinInstance(“server3:3306”)
mysqlsh-js> replicaset.rejoinInstance(“server3:3306”,
{recoveryMethod: “clone”})
Copyright © 2019 Oracle and/or its affiliates.
Upgrade Checker
• Verify whether instances are ready or not for upgrading to
MySQL 8
• Available through the objectutil
mysqlsh-js> util.checkForServerUpgrade(“root@localhost:3306”)
Copyright © 2019 Oracle and/or its affiliates.
Upgrade Checker
Closing
Copyright © 2019 Oracle and/or its affiliates.
Copyright © 2019 Oracle and/or its affiliates.
Final Thoughts
• InnoDB Cluster is THE built-in HA solution for MySQL
• InnoDB ReplicaSet fully integrates MySQL Replication with Router
and Shell brings ease of use!
• MySQL Clone Plugin pushed InnoDB Cluster and ReplicaSet to a
whole new level of usability!
• MySQL Shell is the unified interface for developers and DBAs and
the frontend manager for InnoDB Cluster and ReplicaSet
Copyright © 2019 Oracle and/or its affiliates.
MOAR Info
• https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-
cluster-userguide.html (InnoDB cluster userguide)
https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/8.0/ (Shell APIs JS Ref manual)
https://dev.mysql.com/doc/dev/mysqlsh-api-python/8.0/ (Shell APIs Python Ref manual)
• https://mysqlhighavailability.com (Blogging)
• http://mysqlserverteam.com/ (Blogging)
• https://mysqlcommunity.slack.com (Community Slack)
Thank you!
Copyright © 2019 Oracle and/or its affiliates.

More Related Content

What's hot

LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
MAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMarkus Michalewicz
 
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
 
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 InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLOlivier DASINI
 
Oracle Extended Clusters for Oracle RAC
Oracle Extended Clusters for Oracle RACOracle Extended Clusters for Oracle RAC
Oracle Extended Clusters for Oracle RACMarkus Michalewicz
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialFrederic Descamps
 
Maximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19cMaximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19cGlen Hawkins
 
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Markus Michalewicz
 
Oracle Database Management Basic 1
Oracle Database Management Basic 1Oracle Database Management Basic 1
Oracle Database Management Basic 1Chien Chung Shen
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...Frederic Descamps
 
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
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsFrederic Descamps
 
Oracle RAC - New Generation
Oracle RAC - New GenerationOracle RAC - New Generation
Oracle RAC - New GenerationAnil Nair
 
MySQL Shell for Database Engineers
MySQL Shell for Database EngineersMySQL Shell for Database Engineers
MySQL Shell for Database EngineersMydbops
 
All about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAll about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAltinity Ltd
 
Oracle Enterprise Manager
Oracle Enterprise ManagerOracle Enterprise Manager
Oracle Enterprise ManagerBob Rhubart
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationFrederic Descamps
 

What's hot (20)

LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
 
Query logging with proxysql
Query logging with proxysqlQuery logging with proxysql
Query logging with proxysql
 
MAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19cMAA Best Practices for Oracle Database 19c
MAA Best Practices for Oracle Database 19c
 
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
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group Replication
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
 
Oracle Extended Clusters for Oracle RAC
Oracle Extended Clusters for Oracle RACOracle Extended Clusters for Oracle RAC
Oracle Extended Clusters for Oracle RAC
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
 
Maximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19cMaximum Availability Architecture - Best Practices for Oracle Database 19c
Maximum Availability Architecture - Best Practices for Oracle Database 19c
 
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]Understanding Oracle RAC 12c Internals OOW13 [CON8806]
Understanding Oracle RAC 12c Internals OOW13 [CON8806]
 
Oracle Database Management Basic 1
Oracle Database Management Basic 1Oracle Database Management Basic 1
Oracle Database Management Basic 1
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
 
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
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and Histograms
 
Oracle RAC - New Generation
Oracle RAC - New GenerationOracle RAC - New Generation
Oracle RAC - New Generation
 
MySQL Shell for Database Engineers
MySQL Shell for Database EngineersMySQL Shell for Database Engineers
MySQL Shell for Database Engineers
 
All about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdfAll about Zookeeper and ClickHouse Keeper.pdf
All about Zookeeper and ClickHouse Keeper.pdf
 
Oracle Enterprise Manager
Oracle Enterprise ManagerOracle Enterprise Manager
Oracle Enterprise Manager
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database System
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 

Similar to MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as easy as pie

MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMiguel Araújo
 
Confoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSetConfoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSetDave Stokes
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsFrederic Descamps
 
Serverless patterns
Serverless patternsServerless patterns
Serverless patternsJesse Butler
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppPaulo Alberto Simoes ∴
 
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포DongHee Lee
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology OverviewKeith Hollman
 
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...Miguel Araújo
 
Oracle Autonomous Database - introducción técnica y hands on lab
Oracle Autonomous Database  - introducción técnica y hands on labOracle Autonomous Database  - introducción técnica y hands on lab
Oracle Autonomous Database - introducción técnica y hands on lab"Diego \"Perico\"" Sanchez
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLMario Beck
 
A Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document StoreA Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document StoreDave Stokes
 
MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019
MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019
MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019Dave Stokes
 
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...Geir Høydalsvik
 
API Design Principles Essential 
API Design Principles Essential API Design Principles Essential 
API Design Principles Essential Oracle Korea
 
Nonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SENonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SEDmitry Kornilov
 
A Cloud Journey - Move to the Oracle Cloud
A Cloud Journey - Move to the Oracle CloudA Cloud Journey - Move to the Oracle Cloud
A Cloud Journey - Move to the Oracle CloudMarkus Michalewicz
 

Similar to MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as easy as pie (20)

MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
 
Confoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSetConfoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSet
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & Operations
 
Serverless patterns
Serverless patternsServerless patterns
Serverless patterns
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
 
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
 
Em13c New Features- Two of Two
Em13c New Features- Two of TwoEm13c New Features- Two of Two
Em13c New Features- Two of Two
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
 
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
 
Oracle Autonomous Database - introducción técnica y hands on lab
Oracle Autonomous Database  - introducción técnica y hands on labOracle Autonomous Database  - introducción técnica y hands on lab
Oracle Autonomous Database - introducción técnica y hands on lab
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQL
 
A Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document StoreA Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document Store
 
MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019
MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019
MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019
 
Autonomous Data Warehouse
Autonomous Data WarehouseAutonomous Data Warehouse
Autonomous Data Warehouse
 
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
MySQL, An Open Source Ecosystem, Oracle Modern Cloud Day, Oslo, November 21, ...
 
API Design Principles Essential 
API Design Principles Essential API Design Principles Essential 
API Design Principles Essential 
 
ADW Topic.pdf
ADW Topic.pdfADW Topic.pdf
ADW Topic.pdf
 
Nonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SENonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SE
 
Oracle NoSQL
Oracle NoSQLOracle NoSQL
Oracle NoSQL
 
A Cloud Journey - Move to the Oracle Cloud
A Cloud Journey - Move to the Oracle CloudA Cloud Journey - Move to the Oracle Cloud
A Cloud Journey - Move to the Oracle Cloud
 

More from Miguel Araújo

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)Miguel Araújo
 
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!Miguel Araújo
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfMiguel Araújo
 
MySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery SolutionMySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery SolutionMiguel Araújo
 
MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMiguel Araújo
 
MySQL Shell: The DevOps Tool for MySQL
MySQL Shell: The DevOps Tool for MySQLMySQL Shell: The DevOps Tool for MySQL
MySQL Shell: The DevOps Tool for MySQLMiguel Araújo
 
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!Miguel Araújo
 
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQLMySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQLMiguel Araújo
 
MySQL Proxy. A powerful, flexible MySQL toolbox.
MySQL Proxy. A powerful, flexible MySQL toolbox.MySQL Proxy. A powerful, flexible MySQL toolbox.
MySQL Proxy. A powerful, flexible MySQL toolbox.Miguel Araújo
 
SLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foesSLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foesMiguel Araújo
 
Asynchronous Replication of Databases
Asynchronous Replication of DatabasesAsynchronous Replication of Databases
Asynchronous Replication of DatabasesMiguel Araújo
 
Evaluating Data Freshness in Large Scale Replicated Databases
Evaluating Data Freshness in Large Scale Replicated DatabasesEvaluating Data Freshness in Large Scale Replicated Databases
Evaluating Data Freshness in Large Scale Replicated DatabasesMiguel Araújo
 

More from Miguel Araújo (13)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
MySQL Router - Explore The Secrets (MySQL Belgian Days 2024)
 
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
MySQL Shell/AdminAPI - MySQL Architectures Made Easy For All!
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
 
MySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery SolutionMySQL Database Architectures - High Availability and Disaster Recovery Solution
MySQL Database Architectures - High Availability and Disaster Recovery Solution
 
MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - Tutorial
 
MySQL Shell: The DevOps Tool for MySQL
MySQL Shell: The DevOps Tool for MySQLMySQL Shell: The DevOps Tool for MySQL
MySQL Shell: The DevOps Tool for MySQL
 
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
FOSDEM'18: MySQL InnoDB Cluster - MySQL HA Made Easy!
 
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQLMySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
 
MySQL Proxy. A powerful, flexible MySQL toolbox.
MySQL Proxy. A powerful, flexible MySQL toolbox.MySQL Proxy. A powerful, flexible MySQL toolbox.
MySQL Proxy. A powerful, flexible MySQL toolbox.
 
SLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foesSLQ vs NOSQL - friends or foes
SLQ vs NOSQL - friends or foes
 
Asynchronous Replication of Databases
Asynchronous Replication of DatabasesAsynchronous Replication of Databases
Asynchronous Replication of Databases
 
Evaluating Data Freshness in Large Scale Replicated Databases
Evaluating Data Freshness in Large Scale Replicated DatabasesEvaluating Data Freshness in Large Scale Replicated Databases
Evaluating Data Freshness in Large Scale Replicated Databases
 

Recently uploaded

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburgmasabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 

Recently uploaded (20)

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 

MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as easy as pie

  • 1.
  • 2. The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation. Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and are subject to material risks and uncertainties. A detailed discussion of these factors and other risks that affect our business is contained in Oracle’s Securities and Exchange Commission (SEC) filings, including our most recent reports on Form 10-K and Form 10-Q under the heading “Risk Factors.” These filings are available on the SEC’s website or on Oracle’s website at http://www.oracle.com/investor. All information in this presentation is current as of September 2019 and Oracle undertakes no duty to update any statement in light of new information or future events. Safe Harbor Copyright © 2019 Oracle and/or its affiliates.
  • 3. $ whoami Copyright © 2019 Oracle and/or its affiliates.
  • 4. Miguel Araújo • MySQL Developer since 2011 • AdminAPI Tech Lead @ MySQL Shell team • Living in Portugal • http://about.me/miguel-araujo • @M1guelAraujo Copyright © 2019 Oracle and/or its affiliates.
  • 5. MySQL Shell AdminAPI Copyright © 2019 Oracle and/or its affiliates.
  • 6. Copyright © 2019 Oracle and/or its affiliates. MySQL Shell • Interactive multi-language console interface that supports development and administration for the MySQL Server: • Supports JavaScript, Python and SQL • Interactive and batch operations (scripting) • Supports Document and Relational models (X and MySQL protocols)
  • 7. Copyright © 2019 Oracle and/or its affiliates. MySQL Shell • Exposes full Development and Administration APIs: • Scriptable “DevOps” APIS • Unified interface for developers and DBAs
  • 8. Copyright © 2019 Oracle and/or its affiliates. MySQL Shell AdminAPI • Creation and Management of InnoDB Clusters / ReplicaSets • Available in both JavaScript and Python; and command-line • Simple and straight-forward • Flexible, powerful and secure!
  • 9. Copyright © 2019 Oracle and/or its affiliates. •MySQL Group Replication •MySQL Shell •MySQL Router 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.”
  • 10. Copyright © 2019 Oracle and/or its affiliates. •MySQL Replication •MySQL Shell •MySQL Router “We take a strong technology that is very powerful but can be complex, and provide an easy-to-use AdminAPI for it in the MySQL Shell” InnoDB ReplicaSet
  • 11. Copyright © 2019 Oracle and/or its affiliates. Creating a Cluster - AdminAPI // Configure Instances for Cluster usage mysqlsh-js> dba.configureInstance(“root@mysql1:3306”) // Create the Cluster mysqlsh-js> c root@mysql1:3306 mysqlsh-js> cluster = dba.createCluster(“myCluster”) // Add Instances to the Cluster mysqlsh-js> cluster.addInstance(“root@mysql2:3306”)
  • 12. Copyright © 2019 Oracle and/or its affiliates. Creating a ReplicaSet- AdminAPI // Configure Instances for ReplicaSet usage mysqlsh-js> dba.configureReplicaSetInstance(“root@mysql1:3306”) // Create the ReplicaSet mysqlsh-js> c root@mysql1:3306 mysqlsh-js> replicaset = dba.createReplicaSet(“myReplicaSet”) // Add Instances to the ReplicaSet mysqlsh-js> replicaset.addInstance(“mysql2:3306”)
  • 13. Couldn’t be easier! Powerful solutions supported by Shell’s ease of use. Copyright © 2019 Oracle and/or its affiliates.
  • 14. Node Provisioning Copyright © 2019 Oracle and/or its affiliates.
  • 15. Copyright © 2019 Oracle and/or its affiliates. Provisioning • Provisioning a server is the process of configuring and getting it ready to be used in an InnoDB Cluster/ReplicaSet. • In InnoDB Cluster, the server needs to have all clusters’ data to be able to join it • That’s typically done by: 1. Performing a backup of one of the cluster members 2. Restoring the image in the new member that wants to join
  • 16. Copyright © 2019 Oracle and/or its affiliates. Distributed Recovery • Distributed recovery is a process that runs when a new member is added to the group and has missing transactions • A donor that can provide the missing data is automatically selected • The catch-up happens transparently and the server is synchronized with the rest of the cluster
  • 17. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision • Incremental recovery fetches only the missing data based on the GTIDs into - The cluster must be able to provide all the missing data • Relies on the classic Asynchronous Replication • Also provides group transactional information
  • 18. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision Some data is inserted in the DB
  • 19. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision The data modifications are stored in the binlog. And the transactions are delivered to every cluster member
  • 20. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision Group Replication is eventually synchronous. Guarantees that transactions are delivered to all members in the same order.
  • 21. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision The binlogs keep track of all data modifications.
  • 22. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision A new member wants to join the cluster
  • 23. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision A new member wants to join the cluster The missing data is fetched and the server synchronizes with the rest of the cluster
  • 24. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision A donor is automatically selected to fetch the missing data from, using plain Asynchronous Replication
  • 25. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision A donor is automatically selected to fetch the missing data from, using plain Asynchronous Replication
  • 26. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision A donor is automatically selected to fetch the missing data from, using plain Asynchronous Replication
  • 27. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision The instance successfully joins the cluster!
  • 28. Incremental Recovery to Provision May take a considerable amount of time ! Copyright © 2019 Oracle and/or its affiliates.
  • 29. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision • But what if the cluster members lost all binary logs? • Or even... Just some data is missing that is not available on any binary log • What about space constraints? ?
  • 30. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision Some binary logs were purged. And the instance has no data yet.
  • 31. Copyright © 2019 Oracle and/or its affiliates. Incremental Recovery to Provision Some binary logs were purged. And the instance has no data yet. Failed attempt to join the cluster !
  • 32. Copyright © 2019 Oracle and/or its affiliates. MySQL Clone Plugin • Performs physical snapshots of databases Really fast! • Transfers snapshots over the network to provision servers Can be used remotely! • Replaces all server data Available in InnoDB Cluster and ReplicaSet !
  • 33. Copyright © 2019 Oracle and/or its affiliates. Clone to Provision Common issues solved with Clone: • Very large datasesets • Incomplete binary log history • Re-provision diverged instances
  • 34. Copyright © 2019 Oracle and/or its affiliates. Clone to Provision Some binary logs were purged. And the instance has no data yet.
  • 35. Copyright © 2019 Oracle and/or its affiliates. Clone to Provision Some binary logs were purged. And the instance has no data yet. Clone required !
  • 36. Copyright © 2019 Oracle and/or its affiliates. Clone to Provision A donor is automatically selected. And a full snapshot of its data is performed.
  • 37. Copyright © 2019 Oracle and/or its affiliates. Clone to Provision The instance successfully joins the cluster!
  • 38. Clone-based Recovery Live Demo Copyright © 2019 Oracle and/or its affiliates. InnoDB Cluster
  • 39. Copyright © 2019 Oracle and/or its affiliates. •Incremental recovery is possible if: • At least 1 member can provide the joiner with the same set of transactions it has processed. • The joiner does not have errant transactions •Incremental recovery appropriate if: • No purged transactions • Joiner does not have an empty GTID set • GTID support and binary logs were always enabled Which recovery shall be used?
  • 40. Incremental recovery safe and appropriate: Copyright © 2019 Oracle and/or its affiliates. AdminAPI Guidance
  • 41. Copyright © 2019 Oracle and/or its affiliates. AdminAPI Guidance Clone-based recovery required:
  • 42. Clone-based Recovery Live Demo Copyright © 2019 Oracle and/or its affiliates. InnoDB ReplicaSet
  • 43. Copyright © 2019 Oracle and/or its affiliates. InnoDB Cluster/ReplicaSet • Built-in support for full instance provisioning! • AdminAPI transparently: ü Setups the cluster/replicaset to be ready for clone usage (plugin setup, user grants, etc.) ü Detects every possible scenario and guides the user accordingly to the best provisioning method ü Still allowing manual intervention to choose the provisioning method
  • 44. Monitoring Copyright © 2019 Oracle and/or its affiliates.
  • 45. Copyright © 2019 Oracle and/or its affiliates. Node Provisioning Monitoring • The AdminAPI was extended to provide monitoring features: ü For any type of recovery method: clone or incremental ü Real-time progress information ü Detailed stage status ü Asynchronous progress information from cluster.status()
  • 46. Copyright © 2019 Oracle and/or its affiliates. Node Provisioning Monitoring Clone-based recovery progress information from: cluster.status()
  • 47. Copyright © 2019 Oracle and/or its affiliates. Cluster Status Entry point for Cluster monitoring: ü Provides general info about the cluster ü Provides info about each member status mysqlsh-js> cluster.status()
  • 48. Copyright © 2019 Oracle and/or its affiliates. Extended Status Provides information of: • GR Group name + protocol version • Cluster members UUIDs • Cluster members roles and states • Read-only settings mysqlsh-js> cluster.status({extended: 1})
  • 49. Copyright © 2019 Oracle and/or its affiliates. Extended Status Provides information of: • Transactions processed by connection and applier threads mysqlsh-js> cluster.status({extended: 2})
  • 50. Copyright © 2019 Oracle and/or its affiliates. Extended Status Provides information of: • Detailed stats about the replication machinery of each cluster member mysqlsh-js> cluster.status({extended: 3})
  • 51. Copyright © 2019 Oracle and/or its affiliates. ReplicaSet Status Entry point for ReplicaSet monitoring: ü Provides general info about the replicaset ü Provides info about each member status mysqlsh-js> replicaset.status()
  • 52. Copyright © 2019 Oracle and/or its affiliates. Router Monitoring Provides information of: • Router info: name, version • Last check-in • Hostname • RO/RW end ports mysqlsh-js> cluster.listRouters()
  • 53. Maintenance and Troubleshooting Copyright © 2019 Oracle and/or its affiliates.
  • 54. Anything that can go wrong will go wrong.”“ Copyright © 2019 Oracle and/or its affiliates.
  • 55. Monitoring a Cluster/ReplicaSet can provide info/hints about: • Faulty Networks • Server crashes/failures • High latencies Copyright © 2019 Oracle and/or its affiliates. Maintenance • Total outages • … and much more!
  • 56. Copyright © 2019 Oracle and/or its affiliates. Cluster Options Provides information of: • The cluster global configuration options • Each cluster member settings mysqlsh-js> cluster.options()
  • 57. memberWeight Next primary in line when a failover happens autoRejoinTries Automatically join back group after leaving/being expelled expelTimeout Avoid frequent member expels due to less reliable networks consistency Transaction consistency guarantees Copyright © 2019 Oracle and/or its affiliates. Cluster Options
  • 58. memberWeight Highest value will be first to be elected as primary in a failover autoRejoinTries Set to 3 expelTimeout Set to 5 Copyright © 2019 Oracle and/or its affiliates. Cluster Options – Best practices
  • 59. Copyright © 2019 Oracle and/or its affiliates. Dynamically Changing Settings // Change the member-weight value of a member mysqlsh-js> cluster.setInstanceOption(“mysql2:3307”, “memberWeight”, 75) // Change the auto-rejoin-tries of the cluster mysqlsh-js> cluster.setOption(“autoRejoinTries”, 3) // Change the cluster’s consistency level mysqlsh-js> cluster.setOption(“consistency”, “AFTER”)
  • 60. Copyright © 2019 Oracle and/or its affiliates. Topology Modes • The cluster’s primary instance can be changed, immediately:
  • 61. Copyright © 2019 Oracle and/or its affiliates. Topology Modes • The topology-mode can be changed live: // Change the topology-mode to multi-primary mysqlsh-js> cluster.switchToMultiPrimaryMode() // Change back to single-primary-mode mysqlsh-js> cluster.switchToSinglePrimaryMode()
  • 62. Copyright © 2019 Oracle and/or its affiliates. Security • Internal recovery accounts have randomly secure generated passwords • But security policies may enforce passwords lifetime ü Support to reset a cluster’s recovery accounts credentials added // Reset the recovery accounts credentials mysqlsh-js> cluster.resetRecoveryAccountsPassword()
  • 63. Some scenarios may require intervention… • Network partitions • Complete outage • Server upgrades Copyright © 2019 Oracle and/or its affiliates. Troubleshooting • Crashed members of a Cluster or ReplicaSet
  • 64. Copyright © 2019 Oracle and/or its affiliates. Network Partitions • A network partition can cause the loss of quorum • The cluster is not able to process any more transactions
  • 65. Copyright © 2019 Oracle and/or its affiliates. Network Partitions • Using a single AdminAPI command the cluster can be easily unblocked mysqlsh-js> cluster.forceQuorumUsingPartitionOf(“clusterAdmin@server1:3306”)
  • 66. Copyright © 2019 Oracle and/or its affiliates. Complete Outage • Very unlikely to happen! • But... • When it happens, restoring the instances back online is not enough • The Group Replication group is completely gone • Other configurations in place may have been lost
  • 67. Copyright © 2019 Oracle and/or its affiliates. Complete Outage • Easily restore the Cluster back to its previously configured state using: mysqlsh-js> c clusterAdmin@server1:3306 mysqlsh-js> dba.rebootClusterFromCompleteOutage()
  • 68. Copyright © 2019 Oracle and/or its affiliates. Rejoin Instance • An instance may not be able to automatically rejoin the cluster/replicaset: • Instance running MySQL 5.7 without settings persisted • Instance from minority partition • Invalidated primary from ReplicaSet
  • 69. Copyright © 2019 Oracle and/or its affiliates. Rejoin Instance • Full detection of best provisioning method supported for rejoining instances mysqlsh-js> cluster.rejoinInstance(“server3:3306”) mysqlsh-js> replicaset.rejoinInstance(“server3:3306”, {recoveryMethod: “clone”})
  • 70. Copyright © 2019 Oracle and/or its affiliates. Upgrade Checker • Verify whether instances are ready or not for upgrading to MySQL 8 • Available through the objectutil mysqlsh-js> util.checkForServerUpgrade(“root@localhost:3306”)
  • 71. Copyright © 2019 Oracle and/or its affiliates. Upgrade Checker
  • 72. Closing Copyright © 2019 Oracle and/or its affiliates.
  • 73. Copyright © 2019 Oracle and/or its affiliates. Final Thoughts • InnoDB Cluster is THE built-in HA solution for MySQL • InnoDB ReplicaSet fully integrates MySQL Replication with Router and Shell brings ease of use! • MySQL Clone Plugin pushed InnoDB Cluster and ReplicaSet to a whole new level of usability! • MySQL Shell is the unified interface for developers and DBAs and the frontend manager for InnoDB Cluster and ReplicaSet
  • 74. Copyright © 2019 Oracle and/or its affiliates. MOAR Info • https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb- cluster-userguide.html (InnoDB cluster userguide) https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/8.0/ (Shell APIs JS Ref manual) https://dev.mysql.com/doc/dev/mysqlsh-api-python/8.0/ (Shell APIs Python Ref manual) • https://mysqlhighavailability.com (Blogging) • http://mysqlserverteam.com/ (Blogging) • https://mysqlcommunity.slack.com (Community Slack)
  • 75. Thank you! Copyright © 2019 Oracle and/or its affiliates.