Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
1 / 192
MySQL Group Replication in a nutshell
MySQL InnoDB Cluster: hands-on tutorial
 
Percona Live Amsterdam- October 2016
 
Frédéric Descamps - MySQL Community Manager - Oracle
Kenny Gryp - MySQL Practice Manager - Percona
2 / 192
 
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 @ 2016 Oracle and/or its affiliates. All rights reserved.
3 / 192
about.me/lefred
Who are we ?
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
4 / 192

Recommended for you

MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesMySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices

MySQL InnoDB Cluster provides a complete high availability solution for MySQL. MySQL Shell includes AdminAPI which enables you to easily configure and administer a group of at least three MySQL server instances to function as an InnoDB cluster. This talk includes best practices.

mysqlmysql group replication galera pxc mariadb perconadatabase
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication

The document discusses MySQL Group Replication, which is a plugin that provides multi-master replication capability for MySQL. It allows data to be replicated between multiple MySQL servers so that they can stay in sync. The replication works by having each server send transaction writesets to other servers through a group communication system, and then each server certifies and applies the changes locally in an asynchronous manner.

high availabilitymysql innodb clustermysql group replication
Multi Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureMulti Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ Verisure

Verisure migrated their data warehouse from using Tungsten Replicator to native multi-source replication in MySQL 5.7 to simplify operations. They loaded data from production shards into the new data warehouse setup using XtraBackup backups and improved replication capacity with MySQL's parallel replication features. Some issues were encountered with replication lag reporting and crashes during the upgrade but most were resolved. Monitoring and management tools also required updates to support the new multi-source replication configuration.

mysqlreplicationpercona
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
5 / 192
Frédéric Descamps
@lefred
MySQL Evangelist
Managing MySQL since 3.23
devops believer
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
6 / 192
Kenny Gryp
@gryp
MySQL Practice Manager
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
7 / 192
get more at the conference
MySQL Group Replication
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
8 / 192

Recommended for you

MySQL Group Replication - an Overview
MySQL Group Replication - an OverviewMySQL Group Replication - an Overview
MySQL Group Replication - an Overview

The document provides an overview of MySQL Group Replication, which is a multi-master update anywhere replication plugin for MySQL that provides built-in automatic distributed recovery, conflict detection, and group membership. It allows for active/active update anywhere setups, automates group reconfiguration, and provides a highly available distributed database service. The document discusses the theory behind MySQL Group Replication, provides examples of how to use it, and concludes by discussing its benefits and future releases.

distributed consensusclustersmysql
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 BangaloreMySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore

The document discusses MySQL InnoDB Cluster and Group Replication. It provides an introduction and overview of InnoDB Cluster, outlining the key features and how to get an InnoDB Cluster up and running in 3 steps: deploying instances, creating a cluster, and adding more instances. It also covers setting up and starting a router. For Group Replication, it discusses the concept of replicating writes across multiple servers for high availability and read scaling. It shows how Group Replication achieves consensus on membership, message delivery and state updates across the group.

mysql group replication and innodb cluster
OSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devopsOSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devops

This document discusses the principles of DevOps culture and how they apply to database administration. It advocates for automating database deployment, configuration, and schema changes using tools like Puppet and an online schema migration tool called online-migration. Key points covered include: - The four principles of DevOps culture, automation, measurement, and sharing (CAMS) - How DBAs can adopt a DevOps culture by communicating more with developers and sysadmins throughout the project lifecycle - Automating database installation, configuration, monitoring, backups, etc. using configuration management tools like Puppet - Using the online-migration tool to version control database schemas, automate schema changes, and rollback changes if needed

perconalivedevopsautomation
Other session
MySQL Replication: Latest Developments
LuìsSoares
Tuesday 4 October 2016
3:10pmto 4:00pm- Zürich 1
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
9 / 192
Agenda
Prepare your workstation
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
10 / 192
Agenda
Prepare your workstation
Group Replication concepts
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
11 / 192
Agenda
Prepare your workstation
Group Replication concepts
Migration fromMaster-Slave to GR
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
12 / 192

Recommended for you

Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster

Oracle’s InnoDB Cluster vs. Continuent Tungsten Clusters for MySQL Building a Geo-Distributed, Multi-Region and Highly Available MySQL Cloud Back-End This is the fifth of our High Noon series covering MySQL clustering solutions for high availability (HA), disaster recovery (DR), and geographic distribution. InnoDB Cluster uses MySQL’s group replication to handle the replication. It’s also known as semi-synchronous replication. Learn about this and more in this webinar! You may use Tungsten Clustering with native MySQL, MariaDB or Percona Server for MySQL in GCP, AWS, Azure, and/or on-premises data centers for better technological capabilities, control, and flexibility. But learn about the pros and cons! AGENDA - Goals for the High Noon Webinar Series - High Noon Series: Tungsten Clustering vs Others - Oracle InnoDB Cluster - Key Characteristics - Certification-based Replication - InnoDB Cluster Multi-Site Requirements - Limitations Using InnoDB Cluster - How to do better MySQL HA / DR / Geo-Distribution? - InnoDB Cluster vs Tungsten Clustering - About Continuent & Its Solutions PRESENTER Matthew Lang - Customer Success Director – Americas, Continuent - has over 25 years of experience in database administration, database programming, and system architecture, including the creation of a database replication product that is still in use today. He has designed highly available, scaleable systems that have allowed startups to quickly become enterprise organizations, utilizing a variety of technologies including open source projects, virtualization and cloud.

mysqlmariadbgeographic distribution
MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRV

In MySQL 8.0.19, we introduced DNS-SRV support in the Connectors, which improves the integration with various service discovery services.

mysqldnsdns-srv
Oracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12cOracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12c

Oracle Failover Database Cluster with Grid Infrastructure 12c Cluster Resource Management Registering Resources Resource Monitoring Resource Placement

failor databoaseoraclecluster
Agenda
Prepare your workstation
Group Replication concepts
Migration fromMaster-Slave to GR
Howto monitor ?
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
13 / 192
Agenda
Prepare your workstation
Group Replication concepts
Migration fromMaster-Slave to GR
Howto monitor ?
Application interaction
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
14 / 192
VirtualBox
Setup your workstation
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
15 / 192
Setup your workstation
Install VirtualBox 5
On the USB key, there is a file called PLAM16_GR.ova, please copy it on your
laptop and doubleclick on it
Start all virtual machines (mysql1, mysql2, mysql3 &mysql4)
Install putty if you are using Windows
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
16 / 192

Recommended for you

MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - Tutorial

Tutorial on MySQL InnoDB Cluster and ReplicaSet, a fully integrated product built on MySQL technology, by MySQL. MySQL InnoDB Cluster and ReplicaSet provide failover/high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use.

mysqlgroup replication
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsMix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups

The document discusses mixing asynchronous replication and group replication for advanced MySQL replication setups. It provides an overview of asynchronous replication, semi-synchronous replication, multi-source replication, and group replication. It then discusses some basic scenarios for mixing these technologies, such as using asynchronous replication for read scaling beyond the group's 9 member limit or aggregating data from multiple groups. The document also covers migrating from asynchronous to group replication and migrating disjoint servers into a group.

group_replicationmysql
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0

The document provides instructions for setting up a two-node Oracle 12c RAC environment within Oracle VirtualBox on a Windows laptop. The main steps include: 1. Configuring VirtualBox with a host-only network and installing Oracle Linux 6 on the first virtual machine. 2. Creating shared virtual disks for the ASM storage and installing Oracle Grid Infrastructure. 3. Cloning the first virtual machine to create the second node, and installing the Oracle 12c database software. This allows users to test an Oracle 12c RAC sandbox environment locally without requiring additional physical hardware.

Setup your workstation
Install VirtualBox 5
On the USB key, there is a file called PLAM16_GR.ova, please copy it on your
laptop and doubleclick on it
Start all virtual machines (mysql1, mysql2, mysql3 &mysql4)
Install putty if you are using Windows
Try to connect to all VM's fromyour terminal or putty (rootpasswordisX):
ssh -p 8821 root@127.0.0.1 to mysql1
ssh -p 8822 root@127.0.0.1 to mysql2
ssh -p 8823 root@127.0.0.1 to mysql3
ssh -p 8824 root@127.0.0.1 to mysql4
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
17 / 192
LAB1: Current situation
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
18 / 192
launch
run_app.sh
on mysql1 into
a screen
session
verify that
mysql2 is a
running slave
LAB1: Current situation
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
19 / 192
Summary
 
+--------+----------+--------------+-----------------+
| | ROLE | SSH PORT | INTERNAL IP |
+--------+----------+--------------+-----------------+
| | | | |
| mysql1 | master | 8821 | 192.168.56.11 |
| | | | |
| mysql2 | slave | 8822 | 192.168.56.12 |
| | | | |
| mysql3 | n/a | 8823 | 192.168.56.13 |
| | | | |
| mysql4 | n/a | 8824 | 192.168.56.14 |
| | | | |
+--------+----------+--------------+-----------------+
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
20 / 192

Recommended for you

MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster

This document provides an overview and comparison of MySQL InnoDB Cluster and MySQL InnoDB ReplicaSet. It discusses the components, goals, and features of each solution. MySQL InnoDB Cluster uses Group Replication to provide high availability, automatic failover, and data consistency. MySQL InnoDB ReplicaSet uses asynchronous replication and provides availability and read scaling through manual primary/secondary configuration and failover. Both solutions integrate MySQL Shell, Router, and automatic member provisioning for easy management.

mysql
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)

MySQL InnoDB cluster provides a complete high availability solution for MySQL. MySQL Shell includes AdminAPI which enables you to easily configure and administer a group of at least three MySQL server instances to function as an InnoDB cluster. Each MySQL server instance runs MySQL Group Replication, which provides the mechanism to replicate data within InnoDB clusters, with built-in failover. MySQL Router can automatically configure itself based on the cluster you deploy, connecting client applications transparently to the server instances.

mysqlmysql innodb clusterinnodb
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster

The document discusses asynchronous MySQL replication and its limitations. Asynchronous replication involves replicas streaming replication logs from a single master, which can lead to lag. Replica provisioning and data consistency must be manually handled. Complex replication topologies can be built but come with challenges around write safety and management overhead. Group replication aims to address some of these issues.

mysql innodb clustermysqlha
the magic explained
Group Replication Concept
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
21 / 192
Group Replication : what is it ?
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
22 / 192
Group Replication : what is it ?
MySQL Group Replication is one of the major components of MySQL InnoDB Cluster
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
23 / 192
Group Replication : what is it ?
MySQL Group Replication is one of the major components of MySQL InnoDB Cluster  
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
24 / 192

Recommended for you

MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication

Group Replication went Generally Available end of 2016, it introduces a 'synchronous' active:active multi-master eplication, in addition to asynchronous and semi-synchronous replication, the latter 2 being available in in MySQL for longtime. As with any new feature, and especially with introducing active:active multi-master replication, it takes a while before companies are adopting the software in production database environment. For example, even though MySQL 5.7 has been GA for more than a year, adoption is only starting to increase recently. We can, and should, expect the same from Group Replication. As with every release, bugs will be found, and with new features, best practises still need to formed out of practical experience. After giving a short introduction on what Group Replication is, I will cover my experience so far in evaluating Group Replication.

mysqlgroup replicationoracle
MySQL Replication Performance in the Cloud
MySQL Replication Performance in the CloudMySQL Replication Performance in the Cloud
MySQL Replication Performance in the Cloud

Pre-FOSDEM 2020 talk about how latency in Cloud deployments can affect MySQL performance, and Replication in particular.

cloudlatencymysql
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...

The document discusses using ProxySQL as a solution for anonymizing data in MySQL databases. It describes how ProxySQL can mask specific columns by replacing values with partial values and characters like X. Rules are created in ProxySQL to match SQL statements and regular expressions are used to modify the statements by replacing column values with the masked values. Examples of SQL statements and the masking applied are also provided.

mysqldatamaskingfosdem
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
25 / 192
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
26 / 192
Group replication is a plugin !
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
27 / 192
Group replication is a plugin !
GR is a plugin for MySQL, made by MySQL and packaged with MySQL
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
28 / 192

Recommended for you

MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB Clusters

A single product — MySQL — with high availability and scaling features baked in; providing an integrated end-to-end solution that is easy to use.

mysqlhigh availabilitydistributed consensus
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster

This document provides an overview of MySQL high availability solutions including InnoDB Cluster and NDB Cluster. InnoDB Cluster allows setting up a highly available MySQL cluster with auto-sharding using Group Replication and MySQL Router for transparent application routing. NDB Cluster is a memory-optimized database for low-latency applications requiring high scalability and availability. MySQL Shell provides a unified interface for deploying, managing and monitoring these MySQL HA solutions.

ndbmysqlmysql cluster
Haute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplicationHaute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplication

Présentation faite lors du Meetup OpenTech/OpenSka à Paris - 6 septembre 2016

mysqlhareplication
Group replication is a plugin !
GR is a plugin for MySQL, made by MySQL and packaged with MySQL
GR is an implementation of Replicated Database State Machine theory
MySQL Group Communication System(GCS) is based on Paxos Mencius
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
29 / 192
Group replication is a plugin !
GR is a plugin for MySQL, made by MySQL and packaged with MySQL
GR is an implementation of Replicated Database State Machine theory
MySQL Group Communication System(GCS) is based on Paxos Mencius
Provides virtually synchronous replication for MySQL 5.7+
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
30 / 192
Group replication is a plugin !
GR is a plugin for MySQL, made by MySQL and packaged with MySQL
GR is an implementation of Replicated Database State Machine theory
MySQL Group Communication System(GCS) is based on Paxos Mencius
Provides virtually synchronous replication for MySQL 5.7+
Supported on all MySQL platforms !!
Linux, Windows, Solaris, OSX, FreeBSD
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
31 / 192
“Multi-masterupdateanywherereplicationpluginforMySQLwithbuilt-inconflict
detectionandresolution,automaticdistributedrecovery,andgroupmembership.”
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
32 / 192

Recommended for you

MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication

MySQL Group Replication is a new 'synchronous', multi-master, auto-everything replication plugin for MySQL introduced with MySQL 5.7. It is the perfect tool for small 3-20 machine MySQL clusters to gain high availability and high performance. It stands for high availability because the fault of replica don't stop the cluster. Failed nodes can rejoin the cluster and new nodes can be added in a fully automatic way - no DBA intervention required. Its high performance because multiple masters process writes, not just one like with MySQL Replication. Running applications on it is simple: no read-write splitting, no fiddling with eventual consistency and stale data. The cluster offers strong consistency (generalized snapshot isolation). It is based on Group Communication principles, hence the name.

mysqlvirtual synchronygroup communication
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...

This document discusses automating database schema changes and migrations. It introduces the MySQL Utilities and Percona Toolkit tools that can be used to compare and synchronize database schemas. It then describes an online-migration.py script that uses these tools to automate schema migrations in a way that can be integrated with Puppet for infrastructure automation. The script allows rolling back migrations, checking the schema version and differences, and performing migrations without blocking reads or writes to the database.

puppetmysqlmysql utilities
devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016

This document outlines Oracle's general product direction for MySQL and includes the following key points: 1. The information is for informational purposes only and does not represent a commitment to deliver features. 2. Oracle has sole discretion over the development, release, and timing of product features. 3. The presentation discusses MySQL's support for DevOps practices through features like InnoDB Cluster for high availability, Group Replication for multi-master replication, MySQL Shell for administration, and persisting configuration variables.

devopspuppetmysql
Group Replication : how does it work ?
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
33 / 192
Group Replication : how does it work ?
A node (member of the group) sends the changes (binlog events) made by a
transaction to the group through the GCS.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
34 / 192
Group Replication : how does it work ?
A node (member of the group) sends the changes (binlog events) made by a
transaction to the group through the GCS.
All members consume the writeset and certify it, no need to wait for all members,
ack by the majority is enough.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
35 / 192
Group Replication : how does it work ?
A node (member of the group) sends the changes (binlog events) made by a
transaction to the group through the GCS.
All members consume the writeset and certify it, no need to wait for all members,
ack by the majority is enough.
If passed it is applied, if failed, transaction is rolled back on originating server and
discarded at other servers.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
36 / 192

Recommended for you

Webinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadminWebinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadmin

The document discusses how database administrators (DBAs) can adopt a devops approach to their work. It recommends that DBAs focus on communication, configuration management, testing, and visibility. Specific techniques mentioned include using Puppet for infrastructure automation, monitoring with tools like Cacti and Percona plugins, and collaborating with developers and sysadmins on projects from start to finish using practices like continuous integration. The goal is to align DBA work more closely with devops principles of collaboration, automation, and transparency.

devopsmysql
MySQL InnoDB Cluster 미리보기 (remote cluster test)
MySQL InnoDB Cluster 미리보기 (remote cluster test)MySQL InnoDB Cluster 미리보기 (remote cluster test)
MySQL InnoDB Cluster 미리보기 (remote cluster test)

MySQL Power Group 2017년 1차 오프라인 세미나 발표자료 입니다. MySQL InnoDB Cluster 에 대한 간단한 설명 및 Remote Cluster 구성하여 테스트한 내용입니다.

innodb clustermysql routergroup replication
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeursMySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs

Présentation faite lors du Meetup OpenTech/OpenSka à Paris - 6 septembre 2016

mysqldocument storejson
OK... but how does it work ?!
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
37 / 192
OK... but how does it work ?!
It's just magic !
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
38 / 192
OK... but how does it work ?!
It's just magic !
... no, the writeset replication is synchronous and then certification and applying of the
changes happen locally on each node and is asynchronous.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
39 / 192
OK... but how does it work ?!
It's just magic !
... no, the writeset replication is synchronous and then certification and applying of the
changes happen locally on each node and is asynchronous.
not that easy to understand... right ? Let's illustrate this...
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
40 / 192

Recommended for you

Group Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication CoreGroup Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication Core

This document discusses the journey of MySQL Group Replication from using a third-party group communication system (Corosync) to its own built-in group communication engine (XCOM) based on Paxos algorithms. It describes the key components of MySQL Group Replication including the group communication interface, XCOM engine, and optimizations in XCOM like pipelining and batching. It also provides performance results of MySQL Group Replication with multiple writers.

high availabilitymysqlreplication
Jeudis du Libre - MySQL InnoDB Cluster
Jeudis du Libre - MySQL InnoDB ClusterJeudis du Libre - MySQL InnoDB Cluster
Jeudis du Libre - MySQL InnoDB Cluster

Quand Haute Disponibilité et faclilité de déploiement font bon ménage

mysqljeudis du librefrancais
Jeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document StoreJeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document Store

Avec le support du JSON Datatype et le X Plugin pour le support des opérations CRUD, remplacez votre serveur NoSQL par MySQL

mysqldocument storenosql
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
41 / 192
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
42 / 192
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
43 / 192
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
44 / 192

Recommended for you

MySQL High Availability with Replication New Features
MySQL High Availability with Replication New FeaturesMySQL High Availability with Replication New Features
MySQL High Availability with Replication New Features

The session was presented at open source India 2014 (http://osidays.com/osidays/) by Shivji (me) and Manish Kumar. It talks of the new features in MySQL-5.7 Replication. It covered work on 1) performance enhancements in MySQL Replication 2) Usability improvements 3) More flexibility to provide more options to our users so they can chose what is best for their application. 4) Semisynchronous and MySQL Group Replication At then end, there are a lot of links to the blogs written on these features by the MySQL Replication engineers.

mysqlreplication
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication

MySQL Group Replication provides a high availability multi-master replication solution for MySQL. It allows multiple MySQL instances to act as equal masters that can accept writes and remain available even if some instances fail. Transactions are synchronously committed across all members of the replication group to ensure consistency. Group Replication handles failure detection and recovery transparently through its use of group communication systems and built-in conflict detection. It provides a highly available, scalable and fully distributed database solution compared to traditional MySQL replication and clustering options.

group replicationreplicationbogdan kecman
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group Replication

MySQL Group Replication is a plugin that enables multi-master replication. It allows any server in the replication group to accept writes and provides automatic recovery from failures or new servers joining. It uses message passing and conflict detection to keep all servers in sync. The plugin manages the distributed transaction execution and recovery process.

mysqlgroup-replication
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
45 / 192
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
46 / 192
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
47 / 192
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
48 / 192

Recommended for you

Advanced mysql replication techniques
Advanced mysql replication techniquesAdvanced mysql replication techniques
Advanced mysql replication techniques

This document provides an overview of advanced MySQL replication techniques. It begins with an introduction to replication basics like principles, setup, and monitoring. It then discusses challenges with replication including master switchovers during failures and slaves falling behind. The document outlines various replication power techniques and features that can help address these issues like row-based and semi-synchronous replication. It also covers tools for replication and techniques for replication outside of the traditional setup.

partitionsmysqlreplication
Pluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadminPluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadmin

This document discusses how database administrators (DBAs) can adopt a DevOps approach to their work. It suggests DBAs focus on communication, configuration management, testing, and visibility/monitoring. Some specific DevOps practices for DBAs include: discussing database designs with developers and sysadmins; treating schema changes like code migrations; automating configurations with tools like Puppet; integrating database testing; and sharing monitoring dashboards. The overall goal is for DBAs, developers and sysadmins to work as a collaborative "DevDBAOps" team with improved communication and feedback loops.

mysqlautomationpuppet
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016

This is a tutorial I gave with my colleague Kenny Gryp at Percona Live 2016 in Santa Clara Percona XtraDB Cluster is a high availability and high scalability solution for MySQL clustering. Percona XtraDB Cluster integrates Percona Server with the Galera synchronous replication library in a single product package, which enables you to create a cost-effective MySQL cluster. For three years at Percona Live, we've introduced people to this technology... but what's next? This tutorial continues your education, and targets users that already have experience with Percona XtraDB Cluster and want to go further. This tutorial will cover the following topics: - Bootstrapping in details - certification errors, understanding and preventing them - Replication failures, how to deal with them - Secrets of Galera Cache - Mastering flow control - Understanding and verifying replication throughput - How to use WAN replication - Implications of consistent reads - Backups - Load balancers and proxy protocol

perconapxcmysql
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
49 / 192
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
50 / 192
MySQL Group Replication (autocommit)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
51 / 192
MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
52 / 192

Recommended for you

Percon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshellPercon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshell

Percona XtraDB Cluster is a high availability and high scalability solution for MySQL clustering. Percona XtraDB Cluster integrates Percona Server with the Galera synchronous replication library in a single product package which enables you to create a cost-effective MySQL cluster. This tutorial will cover the following topics: - Migration from standard MySQL Master-Slave Architecture to PXC - Configuration differences between standard MySQLl and Xtradb Cluster - How to add a node and what does SST, IST mean ? How to use them ? - How to backup the cluster - How to monitor the cluster - 2 nodes servers- Why this isn't ideal but reasons and steps to setting it up anyway. - Galera Arbitrator: Defining what it is. - How to maintain the cluster - Setting up load balancing for Xtradb cluster - How to handle the cluster in the cloud - Tips and tricks - ... and if available cover PXC 5.6 with Galera 3 !!

pxcmysqlgalera
MySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellMySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a Nutshell

This document outlines the agenda and steps for a hands-on tutorial on MySQL InnoDB Cluster and Group Replication. The agenda includes preparing the workstation by setting up virtual machines, an overview of MySQL InnoDB Cluster and Group Replication, migrating from a master-slave topology to Group Replication, monitoring Group Replication, and application interaction with Group Replication. The first lab demonstrates the current master-slave setup. The migration plan involves installing MySQL InnoDB Cluster on a new server, restoring a backup, setting up asynchronous replication on the new server, adding it to the Group Replication group, pointing the application to a new node, and stopping asynchronous replication after catch up.

mysqlmysql innodb clustergroup replication
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster

This document provides an introduction to MySQL InnoDB Cluster, which is MySQL's solution for high availability and scaling. It discusses how Group Replication, the heart of MySQL InnoDB Cluster, allows data to be written simultaneously across cluster nodes while maintaining consistency through techniques like conflict detection and resolution. The document also explains how Group Replication provides automatic recovery from failures and makes high availability easy for users to setup and manage.

mysqlhainnodb cluster
MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
53 / 192
MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
54 / 192
MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
55 / 192
MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
56 / 192

Recommended for you

MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...

Migration from Asynchronous Master/Slave pair to MySQL InnoDB Cluster using MySQL Enterprise Backup (MEB)

mysql enterprisemysqlmysql innodb cluster
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial

Percona Live Hands-on Tutorial on MySQL InnoDB Cluster : How to migrate from master-slave setup to better HA with MySQL InnoDB Cluster

mysqlmysql innodb clustermysql group replication
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster

Introduction to MySQL InnoDB Cluster, the native MySQL HA solution. This session was delivered at Percona Live Europe 2017 in Dublin

mysql innodb clustermysqlha
MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
57 / 192
MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
58 / 192
MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
59 / 192
MySQL Group Replication (full transaction)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
60 / 192

Recommended for you

MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabMySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab

The document provides an overview of MySQL InnoDB Cluster and demonstrates how to set up a basic cluster. Key points include: - MySQL InnoDB Cluster uses Group Replication to provide high availability, fault tolerance and automated recovery. - The demo deploys 3 sandbox MySQL instances and uses the MySQL Shell to create an InnoDB cluster spanning the instances. - By default, the cluster operates in single-primary mode, where one node acts as the primary and accepts writes. Multi-primary mode is also demonstrated. - Status variables and queries are shown to identify the current primary node.

mysqlmysql innodb clustermysql group replication
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...

MySQL Group Replication is the heart of MySQL InnoDB Cluster, the new HA solution for MySQL. How does it work ?

mysqlmysql innodb clustermysql group replication
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster

The document discusses MySQL InnoDB Cluster, which provides high availability and scaling features for MySQL. It uses Group Replication under the hood, which allows data to be written simultaneously across cluster nodes while maintaining consistency. By default, MySQL InnoDB Cluster runs in Single Primary Mode, where one node acts as the primary/writable node and others act as hot standbys through an automated leader election process.

mysqlinnodb clusterha
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
61 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
62 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
63 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
64 / 192

Recommended for you

Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...

The document discusses migrating from a master-slave MySQL configuration to a MySQL InnoDB Cluster. The plan involves: 1) Taking a hot backup of the current slave and restoring it on a new server; 2) Configuring the new server as an asynchronous slave; 3) Creating an initial InnoDB Cluster with the new server; 4) Stopping replication on the original slave and joining it to the cluster; 5) Optionally adding the original master to the cluster to enable high availability.

mysqlmysql innodb clustermysql group replication
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !

1. MySQL 8.0 InnoDB Cluster is a new high availability and scaling solution for MySQL that makes setup easy. 2. It uses Group Replication under the hood to allow writing to all nodes simultaneously while maintaining consistency. 3. Key components include MySQL Router for routing and load balancing, and MySQL Shell for administration.

mysqlmysql innodb clustermysql group replication
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

ROLE INTERNAL IP mysql1 master / app 192.168.56.11 mysql2 replica 192.168.56.12 mysql3 n/a 192.168.56.13 The document outlines steps to migrate an asynchronous MySQL replication setup to a MySQL InnoDB Cluster configuration. It describes cloning data from mysql2 to mysql3, creating an InnoDB Cluster with mysql3, configuring asynchronous replication from mysql1 to mysql3, adding mysql2 to the cluster, and bootstrapping a MySQL Router.

mysqlhamysql innodb cluster
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
65 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
66 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
67 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
68 / 192

Recommended for you

MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!

The document is a safe harbor statement outlining Oracle's general product direction for informational purposes only. It states that Oracle has sole discretion over developing and releasing features and that nothing in the document should be relied upon for purchasing decisions. It also contains copyright information.

mysqlmysql innodb clustermysql group replication
Swedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB ClusterSwedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB Cluster

Presentation at the SMUG in King Games office about MySQL High Availability made easy with MySQL InnoDB Cluster

mysqlmysql shellmysql group replication
Helsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB ClusterHelsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB Cluster

Presentation at the HMUG in Solinor's office about MySQL High Availability made easy with MySQL InnoDB Cluster

mysql shellmysqlmysql innodb cluster
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
69 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
70 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
71 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
72 / 192

Recommended for you

How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL Shell

This document provides an overview of operating and maintaining a MySQL InnoDB Cluster with MySQL Shell. It discusses node provisioning using the MySQL CLONE plugin for automatic data synchronization of new nodes. It also covers observability of cluster status using the status() method in MySQL Shell or Performance Schema tables. Cluster configuration options that can be checked and changed include global settings as well as group-specific and instance-specific settings for Group Replication. Consistency levels for the cluster are also discussed to guarantee the most up-to-date data is read without stale or dirty reads.

mysqlmysql innodb clustermysql group replication
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & Operations

The document discusses various methods for provisioning and monitoring new members joining a MySQL InnoDB cluster. It describes the incremental recovery and clone-based provisioning processes. It provides guidance on forcing the use of clone over incremental recovery for both provisioning and recovery scenarios. The document also discusses using MySQL Shell commands and Performance Schema tables to monitor the provisioning and recovery processes, as well as the overall health and performance of the cluster.

mysqlmysql innodb clusterha
Mysql repos testing.odp
Mysql repos testing.odpMysql repos testing.odp
Mysql repos testing.odp

This document discusses MySQL repositories and testing. It introduces different MySQL repositories for various platforms and distributions. It emphasizes the importance of testing repositories to ensure high quality packages and compatibility. The presentation describes the testing approach, which includes installing, upgrading, and dependency testing across multiple scenarios. It provides examples of installing and upgrading MySQL servers from repositories on various Linux platforms.

mysqldistrossoftware testing
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
73 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
74 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
75 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
76 / 192

Recommended for you

MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08

Since the introduction of replication in MySQL, users have been trying to automate the promotion of a replica to a primary as well as automating the failover of TCP connections from one database server to another in the event of a database failure: planned or unplanned. For over a decade, users and organizations have designed various types of solutions to achieve this. Though, many of these solutions were done manually or were using third party software, mostly open source, to automate and integrate various architectures. For more than 5 years now, MySQL offers complete and very easy-to-use solutions to set up database architectures that provide High-Availability and recently added Disaster Recovery capabilities. Completely built in-house and supported by Oracle, many enterprises large and small have adopted these solutions into business-critical applications. Business requirements dictate what type of database architecture is required for your system. Disaster tolerance is key and can be measured at different levels: data loss, data availability, and uptime. In this session, the various MySQL Database Architecture solutions will be covered to help you choose the right solution based on your business requirements

mysqlgroup replicationinnodb cluster
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’s InnoDB cluster provides a high-level, easy-to-use solution for MySQL high availability. Combining MySQL Group Replication with MySQL Router and the MySQL Shell into an integrated solution, InnoDB clusters offer easy setup and management of MySQL instances into a fault-tolerant database service. In this session learn how to set up a basic InnoDB cluster, integrate it with applications, and recognize and react to common failure scenarios that would otherwise lead to a database outage. - Workshop presentation

adminapihigh-availabilitymysql
20191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv120191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv1

This document discusses deploying MySQL InnoDB Cluster for high availability. It provides an overview of MySQL InnoDB Cluster and compares it to other MySQL and Oracle high availability solutions. It then covers topics like MySQL InnoDB Cluster architecture, example deployments, configuration settings for replication, failover consistency, network reliability and adding replicas. Finally, it discusses MySQL Router configuration and using MySQL Shell and MySQL Enterprise Backup for management and recovery.

mysql innodb clustermysql
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
77 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
78 / 192
Group Replication : Total Order Delivery - GTID
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
79 / 192
Group Replication : Optimistic Locking
Group Replication uses optimistic locking
during a transaction, local (InnoDB) locking happens
optimistically assumes there will be no conflicts across nodes
(no communication between nodes necessary)
cluster-wide conflict resolution happens only at COMMIT, during certification
Let's first have a look at the traditional locking to compare.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
80 / 192

Recommended for you

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...

Découvrez un nouveau monde où l'on peut gérer ses données sans la moindre ligne de SQL. MySQL Document Store utilise le nouveau protocol MySQL X, qui est également présent avec MySQL Database Service sur OCI, et permet aux développeurs d'écrire du code simple et efficace. Mais attention, si nécessaire, MySQL Document Store peut également traiter les document JSON comme s'ils étaient des tables relationnelles et permettre des requêtes très poussées...

mysqldocument storejson
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension

Discover the power of the new MySQL command line client and explore the new Visual Studio Code extension to work with MySQL

mysqlmysql shellvisual studio code
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms

This document discusses how MySQL indexes and histograms can speed up queries. It begins with an introduction to the presenter and topic. The goal of reducing query response time is discussed. Methods for identifying inefficient queries are covered, including using the sys schema. The role of the MySQL optimizer in evaluating query plans is then explained. Different types of indexes that can be used to optimize queries are also outlined.

mysqlhistogramsindexes
Traditional locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
81 / 192
Traditional locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
82 / 192
Traditional locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
83 / 192
Traditional locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
84 / 192

Recommended for you

RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdf

This document summarizes Frédéric Descamps' presentation on new features in MySQL 8.0 for developers. It introduces Descamps and covers several new features in MySQL 8.0, including the new volcano iterator and optimizer refactoring, EXPLAIN ANALYZE for analyzing query performance, hash joins replacing block nested loops, common table expressions, lateral derived tables, window functions, JSON functions, table value constructors, functional indexes, invisible indexes, check constraints, expressions as default values, lock modes like NOWAIT and SKIP LOCKED, and support for generated invisible columns as primary keys.

mysql
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8

This document provides an overview of new features and enhancements in MySQL 8.0 over the last 18 months, from versions 8.0.23 to 8.0.30. It discusses improvements to replication, Group Replication, InnoDB, and primary keys. Some key changes include a new InnoDB redo log architecture, support for disabling the redo log at runtime, parallel index builds, and the ability to add an invisible auto-increment primary key column to tables without a primary key. The document is presented by Frédéric Descamps at the MySQL User Group NL.

mysql
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022

Frédéric Descamps presented on the state of MySQL in 2022. Some key points included: - MySQL 8.0.29 was the latest release with improvements like IF NOT EXISTS for DDL statements. - MySQL remains the most popular open source database according to surveys. - MySQL HeatWave on OCI provides high performance for analytics workloads compared to other cloud offerings. - The MySQL Operator for Kubernetes makes it easier to deploy and manage MySQL on Kubernetes. - Upcoming certifications for MySQL 8.0 DBA and Developer were announced.

mysql
Traditional locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
85 / 192
Traditional locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
86 / 192
Optimistic Locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
87 / 192
Optimistic Locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
88 / 192

Recommended for you

Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code

The document discusses MySQL Shell for Visual Studio Code, a new client for developers and DBAs. It provides an overview of the key features and components of the MySQL Shell extension for VS Code, including how to install and use the SQL Notebook editor, MySQL Shell Console, and its integration with Oracle Cloud Infrastructure. The document also covers how MySQL Shell plugins can still be used with the VS Code extension by copying plugins to the appropriate directory.

mysqlsql editorvscode
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

From a single MySQL instance to multi-site high availability, this is what you will find out in this presentation. You will learn how to make this transition and which solutions best suit changing business requirements (RPO, RTO). Recently, MySQL has extended the possibilities for easy deployment of architecture with integrated tools. Come and discover these open source solutions that are part of MySQL.

mysqlmysql innodb clustermysql innodb clusterset
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL Architectures

In this tutorial, we cover the different deployment possibilities of the MySQL architecture depending on the business requirements for the data. We also deploy some architecture and see how to evolve to the next one. The tutorial covers the new MySQL Solutions like InnoDB ReplicaSet, InnoDB Cluster, and InnoDB ClusterSet.

mysql innodb clustermysqlmysql innodb replicaset
Optimistic Locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
89 / 192
Optimistic Locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
90 / 192
Optimistic Locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
91 / 192
Optimistic Locking
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
92 / 192

Recommended for you

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

At the beginning of a project, the database is just a single MySQL instance (maybe not even running on its own hardware)... but with the evolution of the business requirements, the database must change to also meet the new targets of data loss and uptime. During this session we will follow the journey of a single MySQL server from the simple instance to a High Available Architecture with multi-site Disaster Recovery. We will discover easy manageable native solutions like MySQL InnoDB ReplicaSet, MySQL InnoDB Cluster and MySQL InnoDB ClusterSet. The session is also illustrated with commands and examples.

mysqlmysql innodb clustermysql replicaset
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

Nobody complains that the database is too fast. But when things slow down, the complaints come quickly. The two most popular approaches to speeding up queries are indexes and histograms. But there are so many options and types on indexes that it can get confusing. Histograms are fairly new to MySQL but they do not work for all types of data. This talk covers how indexes and histograms work and show you how to test just how effective they are so you can measure the performance of your queries.

mysqlindexeshistograms
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service

HeatWave is a massively parallel, high performance, in-memory query accelerator for Oracle MySQL Database Service that accelerates MySQL performance by orders of magnitude for analytics and mixed workloads. But how do you collect data from an Internet of Things Environment so you can use HeatWave to process it? In one hour you will see how data collected by a Raspberry PI or other Internet of Things device can be uploaded to the MySQL Database Service and then processed by HeatWave.

analyticscloudheatwave
Optimistic Locking
The systemreturns error 149 as certification failed:
ERROR 1180 (HY000): Got error 149 during COMMIT
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
93 / 192
Group Replication : requirements
exclusively works with InnoDB tables only
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
94 / 192
Group Replication : requirements
exclusively works with InnoDB tables only
every tables must have a PK defined
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
95 / 192
Group Replication : requirements
exclusively works with InnoDB tables only
every tables must have a PK defined
only IPV4 is supported
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
96 / 192

Recommended for you

Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL

D'une simple instance MysQL à une haute-disponibilité multi-sites, voici ce que vous décrouvrirez dans cette présentation. Comment effectuer cette transition et quelles solutions conviennent les mieux aux évolutions des exigences commerciales (RPO, RTO). Récemment, MySQL a étendu les possibilités de déploiement aisé d'architecture avec des outils intégrés. Venez découvrir ces solution Open Source qui font partie de MySQL.

mysqlmysql innodb clustermysql group replication
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-...

Logical dumps are becoming popular again. MySQL Shell parallel dump & load utility changed to way to deal with logical dumps, certainly when using instances in the cloud. MySQL 8.0 released also an awesome physical snapshot feature with CLONE. In this session, I will show how to use these two ways of saving your data and how to use the generated backup to perform point-in-time recovery like a rockstar with MySQL 8.0 in 2022 !

#mysql#backup#snapshot
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0

The document discusses the new features of MySQL 8.0. It covers improvements to SQL functionality with common table expressions, window functions, and JSON support. It also discusses performance enhancements including hash joins, faster I/O with the new InnoDB buffer, and group replication for high availability. New features improve security, validation, indexing and usability.

mysqldatabases
Group Replication : requirements
exclusively works with InnoDB tables only
every tables must have a PK defined
only IPV4 is supported
a good network with lowlatency is important
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
97 / 192
Group Replication : requirements
exclusively works with InnoDB tables only
every tables must have a PK defined
only IPV4 is supported
a good network with lowlatency is important
maximumof 9 members per group
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
98 / 192
Group Replication : requirements
exclusively works with InnoDB tables only
every tables must have a PK defined
only IPV4 is supported
a good network with lowlatency is important
maximumof 9 members per group
log-bin must be enabled and only ROWformat is supported
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
99 / 192
Group Replication : requirements (2)
enable GTIDs
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
100 / 192

Recommended for you

Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0

The document is a presentation in French on the new features of MySQL 8.0. It discusses improvements to SQL functionality with Common Table Expressions, Window Functions, and LATERAL queries. It also covers new JSON functions and indexing, improved performance, and new management features in areas like replication, security, and error logging. The presentation provides examples and emphasizes that MySQL now supports both transactional SQL and NoSQL operations on JSON data, combining the benefits of both approaches.

mysqlmysql 8.0mysql innodb cluster
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021

This document provides a summary of updates to MySQL between October 2021 and May 2021. It discusses three releases of MySQL 8.0 (versions 8.0.23, 8.0.24, and 8.0.25) and new features including invisible columns, asynchronous replication connection failover, improved load/dump functionality in MySQL Shell, and the new MySQL Database Service on Oracle Cloud Infrastructure with HeatWave for accelerated analytics.

mysqlhashell
MySQL Shell for DBAs
MySQL Shell for DBAsMySQL Shell for DBAs
MySQL Shell for DBAs

The document discusses MySQL Shell and how it can help database administrators (DBAs) with common tasks like deploying architectures, preparing upgrades, dumping and loading data, and managing users. MySQL Shell provides tools like the Admin API for configuring MySQL clusters and replicasets, an upgrade checker utility to validate upgrades to MySQL 8.0, and parallel dump and load functionality to backup, migrate, and reset data.

mysqlmysql shelldba
Group Replication : requirements (2)
enable GTIDs
replication meta-data must be stored on systemtables
--master-info-repository=TABLE
--relay-log-info-repository=TABLE
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
101 / 192
Group Replication : requirements (2)
enable GTIDs
replication meta-data must be stored on systemtables
--master-info-repository=TABLE
--relay-log-info-repository=TABLE
writesets extraction must be enabled
--transaction-write-set-extraction=XXHASH64
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
102 / 192
Group Replication : requirements (2)
enable GTIDs
replication meta-data must be stored on systemtables
--master-info-repository=TABLE
--relay-log-info-repository=TABLE
writesets extraction must be enabled
--transaction-write-set-extraction=XXHASH64
log-slave-updates must be enabled
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
103 / 192
Group Replication : limitations
There are also some technical limitations:
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
104 / 192

Recommended for you

Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS

Deploying Magento on Oracle Cloud Infrastructure with MySQL Database Service. Increasing your performance with HeatWave included !!

mysqlmagentoecommerce
MySQL Router REST API
MySQL Router REST APIMySQL Router REST API
MySQL Router REST API

This document summarizes Frédéric Descamps' journey to add a user to the router_rest_accounts table to authenticate with the MySQL Router REST API. After several failed attempts using generated or external passwords, he learns directly from the MySQL Router development team that the REST API supports using the default MySQL 8.0 authentication string or the modular_crypt_format for password hashes, allowing simple password insertion.

mysqlrouterfosdem
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf

Kief Morris rethinks the infrastructure code delivery lifecycle, advocating for a shift towards composable infrastructure systems. We should shift to designing around deployable components rather than code modules, use more useful levels of abstraction, and drive design and deployment from applications rather than bottom-up, monolithic architecture and delivery.

infrastructure as codeclouddevops
Group Replication : limitations
There are also some technical limitations:
binlog checksumis not supported
--binlog-checksum=NONE
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
105 / 192
Group Replication : limitations
There are also some technical limitations:
binlog checksumis not supported
--binlog-checksum=NONE
Savepoints are not supported
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
106 / 192
Group Replication : limitations
There are also some technical limitations:
binlog checksumis not supported
--binlog-checksum=NONE
Savepoints are not supported
SERIALIZABLEis not supported as transaction isolation level
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
107 / 192
Group Replication : limitations
There are also some technical limitations:
binlog checksumis not supported
--binlog-checksum=NONE
Savepoints are not supported
SERIALIZABLEis not supported as transaction isolation level
an object cannot be changed concurrently at different servers by two operations,
where one of themis a DDL and the other is either a DML or DDL.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
108 / 192

Recommended for you

@Call @Girls Thiruvananthapuram 🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...
@Call @Girls Thiruvananthapuram  🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...@Call @Girls Thiruvananthapuram  🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...
@Call @Girls Thiruvananthapuram 🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...

@Call @Girls Thiruvananthapuram 🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cute Girl any Time For Ad post Mail : adityaroy0215@gmail.com

K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024

K2G - Insurtech Innovation Award 2024

k2gawards
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference

We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner! We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too! Check out our proposed agenda below 👇👇 08:30 ☕ Welcome coffee (30') 09:00 Opening note/ Intro to UiPath Community (10') Cristina Vidu, Global Manager, Marketing Community @UiPath Dawid Kot, Digital Transformation Lead @Proservartner 09:10 Cloud migration - Proservartner & DOVISTA case study (30') Marcin Drozdowski, Automation CoE Manager @DOVISTA Pawel Kamiński, RPA developer @DOVISTA Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 09:40 From bottlenecks to breakthroughs: Citizen Development in action (25') Pawel Poplawski, Director, Improvement and Automation @McCormick & Company Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company 10:05 Next-level bots: API integration in UiPath Studio (30') Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 10:35 ☕ Coffee Break (15') 10:50 Document Understanding with my RPA Companion (45') Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath 11:35 Power up your Robots: GenAI and GPT in REFramework (45') Krzysztof Karaszewski, Global RPA Product Manager 12:20 🍕 Lunch Break (1hr) 13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30') Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance 13:50 Communications Mining - focus on AI capabilities (30') Thomasz Wierzbicki, Business Analyst @Office Samurai 14:20 Polish MVP panel: Insights on MVP award achievements and career profiling

#uipathcommunity#automation#automationdeveloper
Is my workload ready for Group Replication ?
As the writesets (transactions) are replicated to all available nodes on commit, and as
they are certified on every node, a very large writeset could increase the amount of
certification errors.
Additionally, changing the same record on all the nodes (hotspot) concurrently will also
cause problems.
And finally, the certification uses the primary key of the tables, a table without PK is also
a problem.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
109 / 192
Is my workload ready for Group Replication ?
Therefore, when using Group Replication, we should pay attention to these points:
PK is mandatory (and a good one is better)
avoid large transactions
avoid hotspot
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
110 / 192
ready ?
Migration from Master-Slave to GR
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
111 / 192
The plan
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
112 / 192

Recommended for you

What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024

This is a powerpoint that features Microsoft Teams Devices and everything that is new including updates to its software and devices for May 2024

microsoft teamsmicrosoft
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design ApproachesKnowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches

In this follow-up session on knowledge and prompt engineering, we will explore structured prompting, chain of thought prompting, iterative prompting, prompt optimization, emotional language prompts, and the inclusion of user signals and industry-specific data to enhance LLM performance. Join EIS Founder & CEO Seth Earley and special guest Nick Usborne, Copywriter, Trainer, and Speaker, as they delve into these methodologies to improve AI-driven knowledge processes for employees and customers alike.

prompt engineeringaillms
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx

MuleSoft Meetup on APM and IDP

mulesoftai
1) We install and
setup MySQL InnoDB
Cluster on one of the
newservers
The plan
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
113 / 192
2) We restore a
backup
3) setup
asynchronous
replication on the new
server.
The plan
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
114 / 192
4) We add a new
instance to our group
The plan
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
115 / 192
5) We point the
application to one of
our newnodes.
6) We wait and check
that asynchronous
replication is caught
up
7) we stop those
asynchronous slaves
The plan
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
116 / 192

Recommended for you

Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides

If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights. During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to: - Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value - Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems - Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors - Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported - Look Ahead: Gain insights into where FME is headed with coordinate systems in the future Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!

Performance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy EvertsPerformance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy Everts

Performance budgets have been around for more than ten years. Over those years, we’ve learned a lot about what works, what doesn’t, and what we need to improve. In this session, Tammy revisits old assumptions about performance budgets and offers some new best practices. Topics include: • Understanding performance budgets vs. performance goals • Aligning budgets with user experience • Pros and cons of Core Web Vitals • How to stay on top of your budgets to fight regressions

Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time

Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality. Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality. Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality. Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank? ** Episode Overview ** In this first episode of our quality series, Kristen Hansen and the panel discuss: ⦿ What do we mean when we say patent quality? ⦿ Why is patent quality important? ⦿ How to balance quality and budget ⦿ The importance of searching, continuations, and draftsperson domain expertise ⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications https://www.aurorapatents.com/patently-strategic-podcast.html

patentspatent applicationpatent prosecution
8) We attach the
mysql2 slave to the
group
The plan
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
117 / 192
9) Use MySQL Router
for directing traffic
The plan
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
118 / 192
MySQL InnoDB Cluster fromLabs is already
installed on mysql3.
Let's take a backup on mysql1:
[mysql1 ~]# xtrabackup --backup 
--target-dir=/tmp/backup 
--user=root 
--password=X --host=127.0.0.1
[mysql1 ~]# xtrabackup --prepare 
--target-dir=/tmp/backup
LAB2: Prepare mysql3
Asynchronousslave
119 / 192
LAB2: Prepare mysql3 (2)
Asynchronousslave
Copy the backup frommysql1 to mysql3:
[mysql1 ~]# scp -r /tmp/backup mysql3:/tmp
And restore it:
[mysql3 ~]# xtrabackup --copy-back --target-dir=/tmp/backup
[mysql3 ~]# chown -R mysql. /var/lib/mysql
120 / 192

Recommended for you

What's Next Web Development Trends to Watch.pdf
What's Next Web Development Trends to Watch.pdfWhat's Next Web Development Trends to Watch.pdf
What's Next Web Development Trends to Watch.pdf

Explore the latest advancements and upcoming innovations in web development with our guide to the trends shaping the future of digital experiences. Read our article today for more information.

#webdevelopmentservicescompany#webdevelopmentservices#webdevelopmentfirm
How Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global ScaleHow Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global Scale

We all want to build applications that are blazingly fast. We also want to scale them to users all over the world. Can the two happen together? Can users in the slowest of environments also get a fast experience? Learn how we do this at Netflix: how we understand every user's needs and preferences and build high performance applications that work for every user, every time.

@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time

For Ad post Contact : adityaroy0215@gmail.com @Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time

LAB3: mysql3 as asynchronous slave (2)
Asynchronousslave
Configure /etc/my.cnf:
[mysqld]
...
server_id=3
enforce_gtid_consistency = on
gtid_mode = on
log_bin
log_slave_updates
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
121 / 192
LAB2: Prepare mysql3 (3)
Asynchronousslave
Let's start MySQL on mysql3:
[mysql3 ~]# systemctl start mysqld
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
122 / 192
find the GTIDs purged
change MASTER
set the purged GTIDs
start replication
LAB3: mysql3 as asynchronous slave (1)
 
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
123 / 192
LAB3: mysql3 as asynchronous slave (2)
Find the latest purged GTIDs:
[mysql3 ~]# cat /tmp/backup/xtrabackup_binlog_info
mysql-bin.000002 167646328 b346474c-8601-11e6-9b39-08002718d305:1-771
Connect to mysql3 and setup replication:
mysql> CHANGE MASTER TO MASTER_HOST="mysql1",
MASTER_USER="repl_async", MASTER_PASSWORD='Xslave',
MASTER_AUTO_POSITION=1;
mysql> RESET MASTER;
mysql> SET global gtid_purged="VALUE FOUND PREVIOUSLY";
mysql> START SLAVE;
Check that you receive the application's traffic
124 / 192

Recommended for you

How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf

In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.

social media hackerfacebook hackerhire a instagram hacker
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world

The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries: 1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes. 2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions. 3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines. 4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors. 5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering. 6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands. 7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems. 8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering. 9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively. Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.

fdmffffused deposition modeling
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx

This is a slide deck that showcases the updates in Microsoft Copilot for May 2024

microsoftmicrosoft copilot
Disclamer !
The following commands to manage and use MySQL InnoDB Cluster are compatible with
MySQL InnoDB Cluster 5.7.15 Previewfromlabs.
Functions may change in future releases.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
125 / 192
LAB4: MySQL InnoDB Cluster
Createasingleinstancecluster
Time to use the newMySQL Shell !
[mysql3 ~]# mysqlsh
Let's verify if our server is ready to become a member of a newcluster:
mysql-js> dba.validateInstance('root@mysql3:3306')
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
126 / 192
LAB4: configuration settings (2)
mysql3's my.cnf
Configure /etc/my.cnf:
[mysqld]
...
server_id=3
enforce_gtid_consistency = on
gtid_mode = on
log_bin
log_slave_updates
binlog_checksum = none
master_info_repository = TABLE
relay_log_info_repository = TABLE
transaction_write_set_extraction = XXHASH64
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
127 / 192
LAB4: configuration settings (2)
mysql3's my.cnf
Configure /etc/my.cnf:
[mysqld]
...
server_id=3
enforce_gtid_consistency = on
gtid_mode = on
log_bin
log_slave_updates
binlog_checksum = none
master_info_repository = TABLE
relay_log_info_repository = TABLE
transaction_write_set_extraction = XXHASH64
[mysql3 ~]# systemctl restart mysqld
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
128 / 192

Recommended for you

Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...

Have you noticed the OpenSSF Scorecard badges on the official Dart and Flutter repos? It's Google's way of showing that they care about security. Practices such as pinning dependencies, branch protection, required reviews, continuous integration tests etc. are measured to provide a score and accompanying badge. You can do the same for your projects, and this presentation will show you how, with an emphasis on the unique challenges that come up when working with Dart and Flutter. The session will provide a walkthrough of the steps involved in securing a first repository, and then what it takes to repeat that process across an organization with multiple repos. It will also look at the ongoing maintenance involved once scorecards have been implemented, and how aspects of that maintenance can be better automated to minimize toil.

dartflutteropenssf
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure

Recent advancements in the NIST-JARVIS infrastructure: JARVIS-Overview, JARVIS-DFT, AtomGPT, ALIGNN, JARVIS-Leaderboard

jarvisjarvis-dftalignn
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024

Everything that I found interesting about machines behaving intelligently during June 2024

quantumfaxmachine
LAB4: MySQL InnoDB Cluster (3)
Createasingleinstancecluster
[mysql3 ~]# mysqlsh
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
129 / 192
LAB4: MySQL InnoDB Cluster (3)
Createasingleinstancecluster
[mysql3 ~]# mysqlsh
mysql-js> dba.validateInstance('root@mysql3:3306')
mysql-js> c root@mysql3:3306
mysql-js> cluster = dba.createCluster('plam')
The KEY is the only credential we need to remember to manage our cluster.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
130 / 192
LAB4: MySQL InnoDB Cluster (3)
Createasingleinstancecluster
[mysql3 ~]# mysqlsh
mysql-js> dba.validateInstance('root@mysql3:3306')
mysql-js> c root@mysql3:3306
mysql-js> cluster = dba.createCluster('plam')
The KEY is the only credential we need to remember to manage our cluster.
mysql-js> cluster.status()
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
131 / 192
Cluster Status
mysql-js> cluster.status()
{
"clusterName": "plam",
"defaultReplicaSet": {
"status": "Cluster is NOT tolerant to any failures.",
"topology": {
"mysql3:3306": {
"address": "mysql3:3306",
"status": "ONLINE",
"role": "HA",
"mode": "R/W",
"leaves": {}
}
}
}
}
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
132 / 192

Recommended for you

WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf

Profile portofolio

Add mysql4 to the Group:
restore the backup
set the purged GTIDs
use MySQL shell
LAB5: add mysql4 to the cluster (1)
 
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
133 / 192
LAB5: add mysql4 to the cluster (2)
Copy the backup frommysql1 to mysql4:
[mysql1 ~]# scp -r /tmp/backup mysql4:/tmp
And restore it:
[mysql4 ~]# xtrabackup --copy-back --target-dir=/tmp/backup
[mysql4 ~]# chown -R mysql. /var/lib/mysql
Start MySQL on mysql4:
[mysql4 ~]# systemctl start mysqld
134 / 192
LAB5: MySQL shell to add an instance (3)
[mysql4 ~]# mysqlsh
Let's verify the config:
mysql-js> dba.validateInstance('root@mysql4:3306')
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
135 / 192
LAB5: MySQL shell to add an instance (4)
Configure /etc/my.cnf:
[mysqld]
...
server_id=4
enforce_gtid_consistency = on
gtid_mode = on
log_bin
log_slave_updates
binlog_checksum = none
master_info_repository = TABLE
relay_log_info_repository = TABLE
transaction_write_set_extraction = XXHASH64
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
136 / 192

Recommended for you

LAB5: MySQL shell to add an instance (4)
Configure /etc/my.cnf:
[mysqld]
...
server_id=4
enforce_gtid_consistency = on
gtid_mode = on
log_bin
log_slave_updates
binlog_checksum = none
master_info_repository = TABLE
relay_log_info_repository = TABLE
transaction_write_set_extraction = XXHASH64
[mysql4 ~]# systemctl restart mysqld
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
137 / 192
LAB5: MySQL InnoDB Cluster (4)
Groupof2instances
Find the latest purged GTIDs:
[mysql4 ~]# cat /tmp/backup/xtrabackup_binlog_info
mysql-bin.000002 167646328 b346474c-8601-11e6-9b39-08002718d305:1-77177
Connect to mysql4 and set GTID_PURGED
[mysql4 ~]# mysqlsh
mysql-js> c root@mysql4:3306
mysql-js> sql
mysql-sql> RESET MASTER;
mysql-sql> SET global gtid_purged="VALUE FOUND PREVIOUSLY";
138 / 192
LAB5: MySQL InnoDB Cluster (5)
mysql-sql> js
mysql-js> dba.validateInstance('root@mysql4:3306')
mysql-js> c root@mysql3:3306
mysql-js> cluster = dba.getCluster('plam')
mysql-js> cluster.addInstance("root@mysql4:3306")
mysql-js> cluster.status()
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
139 / 192
Cluster Status
mysql-js> cluster.status()
{
"clusterName": "plam",
"defaultReplicaSet": {
"status": "Cluster is NOT tolerant to any failures.",
"topology": {
"mysql3:3306": {
"address": "mysql3:3306",
"status": "ONLINE",
"role": "HA",
"mode": "R/W",
"leaves": {
"mysql4:3306": {
"address": "mysql4:3306",
"status": "RECOVERING",
"role": "HA",
"mode": "R/O",
"leaves": {}
}
}
}
}
}
}
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
140 / 192

Recommended for you

Recovering progress
On standard MySQL, monitor the group_replication_recovery channel to see
the progress:
mysql> show slave status for channel 'group_replication_recovery'G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: mysql3
Master_User: mysql_innodb_cluster_rpl_user
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
Retrieved_Gtid_Set: 6e7d7848-860f-11e6-92e4-08002718d305:1-6,
7c1f0c2d-860d-11e6-9df7-08002718d305:1-15,
b346474c-8601-11e6-9b39-08002718d305:1964-77177,
e8c524df-860d-11e6-9df7-08002718d305:1-2
Executed_Gtid_Set: 7c1f0c2d-860d-11e6-9df7-08002718d305:1-7,
b346474c-8601-11e6-9b39-08002718d305:1-45408,
e8c524df-860d-11e6-9df7-08002718d305:1-2
...
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
141 / 192
point the application
to the cluster
Migrate the application
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
142 / 192
LAB6: Migrate the application
Nowwe need to point the application to mysql3, this is the only downtime !
...
[ 21257s] threads: 4, tps: 12.00, reads: 167.94, writes: 47.98, response time: 18
[ 21258s] threads: 4, tps: 6.00, reads: 83.96, writes: 23.99, response time: 14
[ 21259s] threads: 4, tps: 7.00, reads: 98.05, writes: 28.01, response time: 16
[ 31250s] threads: 4, tps: 8.00, reads: 111.95, writes: 31.99, response time: 30
[ 31251s] threads: 4, tps: 11.00, reads: 154.01, writes: 44.00, response time: 13
[ 31252s] threads: 4, tps: 11.00, reads: 153.94, writes: 43.98, response time: 12
[ 31253s] threads: 4, tps: 10.01, reads: 140.07, writes: 40.02, response time: 17
^C
[mysql1 ~]# run_app.sh mysql3
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
143 / 192
LAB6: Migrate the application
Make sure replication is running properly on mysql2 and mysql3.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
144 / 192

Recommended for you

LAB6: Migrate the application
Make sure replication is running properly on mysql2 and mysql3.
************************** 1. row ***************************
...
Master_Host: mysql1
Slave_IO_Running: Yes
Slave_SQL_Running: No
...
Last_SQL_Errno: 3100
Last_SQL_Error: Error in Xid_log_event: Commit could not be completed,
'Error on observer while running replication hook 'before_commit'.'
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 8fbcd944-8760-11e6-9b4e-08002718d305
...
Last_SQL_Error_Timestamp: 160930 23:04:07
Retrieved_Gtid_Set: 8fbcd944-8760-11e6-9b4e-08002718d305:360-3704
Executed_Gtid_Set: 0b31b4f3-8762-11e6-bb35-08002718d305:1-7,
30212757-8762-11e6-ad73-08002718d305:1-2,
8fbcd944-8760-11e6-9b4e-08002718d305:1-2652
Auto_Position: 1
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
145 / 192
LAB6: Migrate the application
Fix replication if necessary:
mysql3> start slave;
mysql3> show slave status;
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
146 / 192
LAB6: Migrate the application
Fix replication if necessary:
mysql3> start slave;
mysql3> show slave status;
Stop asynchronous replication on mysql2 and mysql3:
mysql2> stop slave;
mysql3> stop slave;
Make sure gtid_executed range on mysql2 is lower or equal than on mysql3
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
147 / 192
LAB6: Migrate the application
Fix replication if necessary:
mysql3> start slave;
mysql3> show slave status;
Stop asynchronous replication on mysql2 and mysql3:
mysql2> stop slave;
mysql3> stop slave;
Make sure gtid_executed range on mysql2 is lower or equal than on mysql3
mysql2> set global super_read_only=off;# http://bugs.mysql.com/bug.php?id=83234
mysql2> reset slave all;
mysql3> reset slave all;
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
148 / 192

Recommended for you

previous slave
(mysql2) can now
be part of the cluster
Add a third instance
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
149 / 192
LAB7: Add mysql2 to the group
We first validate the instance using MySQL shell and we modify the configuration.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
150 / 192
LAB7: Add mysql2 to the group
We first validate the instance using MySQL shell and we modify the configuration.
[mysqld]
...
super_read_only=0
server_id=2
binlog_checksum = none
enforce_gtid_consistency = on
gtid_mode = on
log_bin
log_slave_updates
master_info_repository = TABLE
relay_log_info_repository = TABLE
transaction_write_set_extraction = XXHASH64
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
151 / 192
LAB7: Add mysql2 to the group
We first validate the instance using MySQL shell and we modify the configuration.
[mysqld]
...
super_read_only=0
server_id=2
binlog_checksum = none
enforce_gtid_consistency = on
gtid_mode = on
log_bin
log_slave_updates
master_info_repository = TABLE
relay_log_info_repository = TABLE
transaction_write_set_extraction = XXHASH64
[mysql2 ~]# systemctl restart mysqld
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
152 / 192

Recommended for you

LAB7: Add mysql2 to the group (2)
Back in MySQL shell we add the newinstance:
[mysql2 ~]# mysqlsh
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
153 / 192
LAB7: Add mysql2 to the group (2)
Back in MySQL shell we add the newinstance:
[mysql2 ~]# mysqlsh
mysql-js> dba.validateInstance('root@mysql2:3306')
mysql-js> c root@mysql3:3306
mysql-js> cluster = dba.getCluster('plam')
mysql-js> cluster.addInstance("root@mysql2:3306")
mysql-js> cluster.status()
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
154 / 192
LAB7: Add mysql2 to the group (3)
{
"clusterName": "plam",
"defaultReplicaSet": {
"status": "Cluster tolerant to up to ONE failure.",
"topology": {
"mysql3:3306": {
"address": "mysql3:3306",
"status": "ONLINE",
"role": "HA",
"mode": "R/W",
"leaves": {
"mysql4:3306": {
"address": "mysql4:3306",
"status": "ONLINE",
"role": "HA",
"mode": "R/O",
"leaves": {}
},
"mysql2:3306": {
"address": "mysql2:3306",
"status": "ONLINE",
"role": "HA",
"mode": "R/O",
"leaves": {}
}
} Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
155 / 192
WOOHOOOOW
IT WORKS!
156 / 192

Recommended for you

writing to a single server
Single Primary Mode
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
157 / 192
Default = Single Primary Mode
By default, MySQL InnoDB Cluster enables Single Primary Mode.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
158 / 192
Default = Single Primary Mode
By default, MySQL InnoDB Cluster enables Single Primary Mode.
mysql> show global variables like 'group_replication_single_primary_mode';
+---------------------------------------+-------+
| Variable_name | Value |
+---------------------------------------+-------+
| group_replication_single_primary_mode | ON |
+---------------------------------------+-------+
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
159 / 192
Default = Single Primary Mode
By default, MySQL InnoDB Cluster enables Single Primary Mode.
mysql> show global variables like 'group_replication_single_primary_mode';
+---------------------------------------+-------+
| Variable_name | Value |
+---------------------------------------+-------+
| group_replication_single_primary_mode | ON |
+---------------------------------------+-------+
In Single Primary Mode, a single member acts as the writable master (PRIMARY) and the
rest of the members act as hot-standbys (SECONDARY).
The group itself coordinates and configures itself automatically to determine which
member will act as the PRIMARY, through a leader election mechanism.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
160 / 192

Recommended for you

Who's the Primary Master ?
As the Primary Master is elected, all nodes part of the group knows which one was
elected. This value is exposed in status variables:
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
161 / 192
Who's the Primary Master ?
As the Primary Master is elected, all nodes part of the group knows which one was
elected. This value is exposed in status variables:
mysql> show status like 'group_replication_primary_member';
+----------------------------------+--------------------------------------+
| Variable_name | Value |
+----------------------------------+--------------------------------------+
| group_replication_primary_member | 28a4e51f-860e-11e6-bdc4-08002718d305 |
+----------------------------------+--------------------------------------+
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
162 / 192
Who's the Primary Master ?
As the Primary Master is elected, all nodes part of the group knows which one was
elected. This value is exposed in status variables:
mysql> show status like 'group_replication_primary_member';
+----------------------------------+--------------------------------------+
| Variable_name | Value |
+----------------------------------+--------------------------------------+
| group_replication_primary_member | 28a4e51f-860e-11e6-bdc4-08002718d305 |
+----------------------------------+--------------------------------------+
mysql> select member_host as "primary master"
from performance_schema.global_status
join performance_schema.replication_group_members
where variable_name = 'group_replication_primary_member'
and member_id=variable_value;
+---------------+
| primary master|
+---------------+
| mysql3 |
+---------------+
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
163 / 192
get more info
Monitoring
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
164 / 192

Recommended for you

Performance Schema
Group Replication uses Performance_Schema to expose status
mysql3> SELECT * FROM performance_schema.replication_group_membersG
*************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
MEMBER_ID: 00db47c7-3e23-11e6-afd4-08002774c31b
MEMBER_HOST: mysql3.localdomain
MEMBER_PORT: 3306
MEMBER_STATE: ONLINE
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
165 / 192
Performance Schema
Group Replication uses Performance_Schema to expose status
mysql3> SELECT * FROM performance_schema.replication_group_membersG
*************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
MEMBER_ID: 00db47c7-3e23-11e6-afd4-08002774c31b
MEMBER_HOST: mysql3.localdomain
MEMBER_PORT: 3306
MEMBER_STATE: ONLINE
mysql3> SELECT * FROM performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
GROUP_NAME: afb80f36-2bff-11e6-84e0-0800277dd3bf
SOURCE_UUID: afb80f36-2bff-11e6-84e0-0800277dd3bf
THREAD_ID: NULL
SERVICE_STATE: ON
COUNT_RECEIVED_HEARTBEATS: 0
LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00
RECEIVED_TRANSACTION_SET: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-2
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
166 / 192
Member State
These are the different possible state for a node member:
ONLINE
OFFLINE
RECOVERING
ERROR: when a node is leaving but the plugin was not instructed to stop
UNREACHABLE
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
167 / 192
Status information & metrics
Members
mysql> SELECT * FROM performance_schema.replication_group_membersG
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
168 / 192

Recommended for you

Status information & metrics
Members
mysql> SELECT * FROM performance_schema.replication_group_membersG
*************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
MEMBER_ID: 00db47c7-3e23-11e6-afd4-08002774c31b
MEMBER_HOST: mysql3.localdomain
MEMBER_PORT: 3306
MEMBER_STATE: ONLINE
*************************** 2. row ***************************
CHANNEL_NAME: group_replication_applier
MEMBER_ID: e1544c9d-4451-11e6-9f5a-08002774c31b
MEMBER_HOST: mysql4.localdomain.localdomain
MEMBER_PORT: 3306
MEMBER_STATE: ONLINE
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
169 / 192
Status information & metrics
Connections
mysql> SELECT * FROM performance_schema.replication_connection_statusG
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
170 / 192
Status information & metrics
Connections
mysql> SELECT * FROM performance_schema.replication_connection_statusG
*************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
GROUP_NAME: afb80f36-2bff-11e6-84e0-0800277dd3bf
SOURCE_UUID: afb80f36-2bff-11e6-84e0-0800277dd3bf
THREAD_ID: NULL
SERVICE_STATE: ON
COUNT_RECEIVED_HEARTBEATS: 0
LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00
RECEIVED_TRANSACTION_SET: 5de4400b-3dd7-11e6-8a71-08002774c31b:1-814089,
afb80f36-2bff-11e6-84e0-0800277dd3bf:1-2834
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
*************************** 2. row ***************************
CHANNEL_NAME: group_replication_recovery
GROUP_NAME:
SOURCE_UUID:
THREAD_ID: NULL
SERVICE_STATE: OFF
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
171 / 192
Status information & metrics
Local node status
mysql> select * from performance_schema.replication_group_member_statsG
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
172 / 192

Recommended for you

Status information & metrics
Local node status
mysql> select * from performance_schema.replication_group_member_statsG
*************************** 1. row ***************************
CHANNEL_NAME: group_replication_applier
VIEW_ID: 14679667214442885:4
MEMBER_ID: e1544c9d-4451-11e6-9f5a-08002774c31b
COUNT_TRANSACTIONS_IN_QUEUE: 0
COUNT_TRANSACTIONS_CHECKED: 5961
COUNT_CONFLICTS_DETECTED: 0
COUNT_TRANSACTIONS_ROWS_VALIDATING: 0
TRANSACTIONS_COMMITTED_ALL_MEMBERS: 5de4400b-3dd7-11e6-8a71-08002774c31b:1-814089,
afb80f36-2bff-11e6-84e0-0800277dd3bf:1-5718
LAST_CONFLICT_FREE_TRANSACTION: afb80f36-2bff-11e6-84e0-0800277dd3bf:5718
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
173 / 192
Performance_Schema
You can find GR information in the following Performance_Schema tables:
replication_applier_con guration
replication_applier_status
replication_applier_status_by_worker
replication_connection_con guration
replication_connection_status
replication_group_member_stats
replication_group_members
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
174 / 192
Status during recovery
mysql> SHOW SLAVE STATUS FOR CHANNEL 'group_replication_recovery'G
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
175 / 192
Status during recovery
mysql> SHOW SLAVE STATUS FOR CHANNEL 'group_replication_recovery'G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: <NULL>
Master_User: gr_repl
Master_Port: 0
...
Relay_Log_File: mysql4-relay-bin-group_replication_recovery.000001
...
Slave_IO_Running: No
Slave_SQL_Running: No
...
Executed_Gtid_Set: 5de4400b-3dd7-11e6-8a71-08002774c31b:1-814089,
afb80f36-2bff-11e6-84e0-0800277dd3bf:1-5718
...
Channel_Name: group_replication_recovery
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
176 / 192

Recommended for you

Sys Schema
The easiest way to detect if a node is a member of the primary component (when there
are partitioning of your nodes due to network issues for example) and therefore a valid
candidate for routing queries to it, is to use the sys table.
Additional information for sys can be downloaded at
https://github.com/lefred/mysql_gr_routing_check/blob/master/addition_to_sys.sql
On the primary node:
[mysql3 ~]# mysql < /tmp/gr_addition_to_sys.sql
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
177 / 192
Sys Schema
Is this node part of PRIMARY Partition:
mysql3> SELECT sys.gr_member_in_primary_partition();
+------------------------------------+
| sys.gr_node_in_primary_partition() |
+------------------------------------+
| YES |
+------------------------------------+
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
178 / 192
Sys Schema
Is this node part of PRIMARY Partition:
mysql3> SELECT sys.gr_member_in_primary_partition();
+------------------------------------+
| sys.gr_node_in_primary_partition() |
+------------------------------------+
| YES |
+------------------------------------+
To use as healthcheck:
mysql3> SELECT * FROM sys.gr_member_routing_candidate_status;
+------------------+-----------+---------------------+----------------------+
| viable_candidate | read_only | transactions_behind | transactions_to_cert |
+------------------+-----------+---------------------+----------------------+
| YES | YES | 0 | 0 |
+------------------+-----------+---------------------+----------------------+
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
179 / 192
Sys Schema - Heath Check
On one of the non Primary nodes, run the following command:
mysql-sql> ush tables with read lock;
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
180 / 192

Recommended for you

Sys Schema - Heath Check
On one of the non Primary nodes, run the following command:
mysql-sql> ush tables with read lock;
Nowyou can verify what the healthcheck exposes to you:
mysql-sql> SELECT * FROM sys.gr_member_routing_candidate_status;
+------------------+-----------+---------------------+----------------------+
| viable_candidate | read_only | transactions_behind | transactions_to_cert |
+------------------+-----------+---------------------+----------------------+
| YES | YES | 950 | 0 |
+------------------+-----------+---------------------+----------------------+
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
181 / 192
Sys Schema - Heath Check
On one of the non Primary nodes, run the following command:
mysql-sql> ush tables with read lock;
Nowyou can verify what the healthcheck exposes to you:
mysql-sql> SELECT * FROM sys.gr_member_routing_candidate_status;
+------------------+-----------+---------------------+----------------------+
| viable_candidate | read_only | transactions_behind | transactions_to_cert |
+------------------+-----------+---------------------+----------------------+
| YES | YES | 950 | 0 |
+------------------+-----------+---------------------+----------------------+
mysql-sql> UNLOCK tables;
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
182 / 192
application interaction
MySQL Router
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
183 / 192
MySQL Router
We will nowuse mysqlrouter between our application and the cluster.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
184 / 192

Recommended for you

MySQL Router (2)
Configure MySQL Router (bootstrap it using an instance):
[mysql2 ~]# mysqlrouter --bootstrap mysql2:3306
Please enter the administrative MASTER key for the MySQL InnoDB cluster:
MySQL Router has now been con gured for the InnoDB cluster 'plam'.
The following connection information can be used to connect to the cluster.
Classic MySQL protocol connections to cluster 'plam':
- Read/Write Connections: localhost:6446
- Read/Only Connections: localhost:6447
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
185 / 192
MySQL Router (3)
Nowlet's copy the configuration to mysql1 (our app server) and modify it to listen to
port 3306:
[mysql2 ~]# scp /etc/mysqlrouter/mysqlrouter.conf mysql1:/etc/mysqlrouter/
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
186 / 192
MySQL Router (3)
Nowlet's copy the configuration to mysql1 (our app server) and modify it to listen to
port 3306:
[mysql2 ~]# scp /etc/mysqlrouter/mysqlrouter.conf mysql1:/etc/mysqlrouter/
[routing:default_rw]
-bind_port=6446
+bind_port=3306
+bind_address=mysql1
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
187 / 192
MySQL Router (3)
Nowlet's copy the configuration to mysql1 (our app server) and modify it to listen to
port 3306:
[mysql2 ~]# scp /etc/mysqlrouter/mysqlrouter.conf mysql1:/etc/mysqlrouter/
[routing:default_rw]
-bind_port=6446
+bind_port=3306
+bind_address=mysql1
We can stop mysqld on mysql1 and start mysqlrouter into a screen session:
[mysql1 ~]# systemctl stop mysqld
[mysql1 ~]# mysqlrouter
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
188 / 192

Recommended for you

MySQL Router (4)
Nowwe can point the application to the router:
[mysql1 ~]# run_app.sh mysql1
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
189 / 192
MySQL Router (4)
Nowwe can point the application to the router:
[mysql1 ~]# run_app.sh mysql1
Check app and kill mysqld on mysql3 (the Primary Master R/Wnode) !
[mysql3 ~]# kill -9 $(pidof mysqld)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
190 / 192
MySQL Router (4)
Nowwe can point the application to the router:
[mysql1 ~]# run_app.sh mysql1
Check app and kill mysqld on mysql3 (the Primary Master R/Wnode) !
[mysql3 ~]# kill -9 $(pidof mysqld)
mysql> select member_host as "primary" from performance_schema.global_status
join performance_schema.replication_group_members
where variable_name = 'group_replication_primary_member'
and member_id=variable_value;
+---------+
| primary |
+---------+
| mysql4 |
+---------+
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
191 / 192
Thank you !
Questions ?
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
192 / 192

Recommended for you

More Related Content

What's hot

Fine-tuning Group Replication for Performance
Fine-tuning Group Replication for PerformanceFine-tuning Group Replication for Performance
Fine-tuning Group Replication for Performance
Vitor Oliveira
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
Kenny Gryp
 
Boston meetup : MySQL Innodb Cluster - May 1st 2017
Boston meetup : MySQL Innodb Cluster - May 1st  2017Boston meetup : MySQL Innodb Cluster - May 1st  2017
Boston meetup : MySQL Innodb Cluster - May 1st 2017
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 Practices
Kenny Gryp
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
Frederic Descamps
 
Multi Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureMulti Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ Verisure
Kenny Gryp
 
MySQL Group Replication - an Overview
MySQL Group Replication - an OverviewMySQL Group Replication - an Overview
MySQL Group Replication - an Overview
Matt Lord
 
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 BangaloreMySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
Sujatha Sivakumar
 
OSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devopsOSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devops
Frederic Descamps
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Continuent
 
MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRV
Kenny Gryp
 
Oracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12cOracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12c
Trivadis
 
MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - Tutorial
Kenny Gryp
 
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsMix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Pedro Gomes
 
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
Yury Velikanov
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
Kenny Gryp
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)
Olivier DASINI
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
Kenny Gryp
 
MySQL Replication Performance in the Cloud
MySQL Replication Performance in the CloudMySQL Replication Performance in the Cloud
MySQL Replication Performance in the Cloud
Vitor Oliveira
 

What's hot (20)

Fine-tuning Group Replication for Performance
Fine-tuning Group Replication for PerformanceFine-tuning Group Replication for Performance
Fine-tuning Group Replication for Performance
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
 
Boston meetup : MySQL Innodb Cluster - May 1st 2017
Boston meetup : MySQL Innodb Cluster - May 1st  2017Boston meetup : MySQL Innodb Cluster - May 1st  2017
Boston meetup : MySQL Innodb Cluster - May 1st 2017
 
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesMySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
Multi Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ VerisureMulti Source Replication With MySQL 5.7 @ Verisure
Multi Source Replication With MySQL 5.7 @ Verisure
 
MySQL Group Replication - an Overview
MySQL Group Replication - an OverviewMySQL Group Replication - an Overview
MySQL Group Replication - an Overview
 
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 BangaloreMySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
MySQL InnoDB Cluster and Group Replication - OSI 2017 Bangalore
 
OSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devopsOSS4B: Installing & Managing MySQL like a real devops
OSS4B: Installing & Managing MySQL like a real devops
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB Cluster
 
MySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRVMySQL Connectors 8.0.19 & DNS SRV
MySQL Connectors 8.0.19 & DNS SRV
 
Oracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12cOracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12c
 
MySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - TutorialMySQL InnoDB Cluster / ReplicaSet - Tutorial
MySQL InnoDB Cluster / ReplicaSet - Tutorial
 
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsMix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
 
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
MySQL Replication Performance in the Cloud
MySQL Replication Performance in the CloudMySQL Replication Performance in the Cloud
MySQL Replication Performance in the Cloud
 

Viewers also liked

Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Frederic Descamps
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB Clusters
Matt Lord
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
Mario Beck
 
Haute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplicationHaute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplication
Frederic Descamps
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
Ulf Wendel
 
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
Frederic Descamps
 
devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016
Frederic Descamps
 
Webinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadminWebinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadmin
Frederic Descamps
 
MySQL InnoDB Cluster 미리보기 (remote cluster test)
MySQL InnoDB Cluster 미리보기 (remote cluster test)MySQL InnoDB Cluster 미리보기 (remote cluster test)
MySQL InnoDB Cluster 미리보기 (remote cluster test)
Seungmin Yu
 
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeursMySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
Frederic Descamps
 
Group Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication CoreGroup Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication Core
Alfranio Júnior
 
Jeudis du Libre - MySQL InnoDB Cluster
Jeudis du Libre - MySQL InnoDB ClusterJeudis du Libre - MySQL InnoDB Cluster
Jeudis du Libre - MySQL InnoDB Cluster
Frederic Descamps
 
Jeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document StoreJeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document Store
Frederic Descamps
 
MySQL High Availability with Replication New Features
MySQL High Availability with Replication New FeaturesMySQL High Availability with Replication New Features
MySQL High Availability with Replication New Features
Shivji Kumar Jha
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
Bogdan Kecman
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group Replication
Shivji Kumar Jha
 
Advanced mysql replication techniques
Advanced mysql replication techniquesAdvanced mysql replication techniques
Advanced mysql replication techniques
Giuseppe Maxia
 
Pluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadminPluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadmin
Frederic Descamps
 
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Frederic Descamps
 
Percon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshellPercon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshell
Frederic Descamps
 

Viewers also liked (20)

Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB Clusters
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
 
Haute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplicationHaute disponibilité my sql avec group réplication
Haute disponibilité my sql avec group réplication
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...
 
devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016devops Days Belgium Ghent 2016
devops Days Belgium Ghent 2016
 
Webinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadminWebinar manage MySQL like a devops sysadmin
Webinar manage MySQL like a devops sysadmin
 
MySQL InnoDB Cluster 미리보기 (remote cluster test)
MySQL InnoDB Cluster 미리보기 (remote cluster test)MySQL InnoDB Cluster 미리보기 (remote cluster test)
MySQL InnoDB Cluster 미리보기 (remote cluster test)
 
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeursMySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
MySQL 5.7 & JSON - Nouvelles opportunités pour les dévelopeurs
 
Group Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication CoreGroup Replication: A Journey to the Group Communication Core
Group Replication: A Journey to the Group Communication Core
 
Jeudis du Libre - MySQL InnoDB Cluster
Jeudis du Libre - MySQL InnoDB ClusterJeudis du Libre - MySQL InnoDB Cluster
Jeudis du Libre - MySQL InnoDB Cluster
 
Jeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document StoreJeudis du Libre - MySQL comme Document Store
Jeudis du Libre - MySQL comme Document Store
 
MySQL High Availability with Replication New Features
MySQL High Availability with Replication New FeaturesMySQL High Availability with Replication New Features
MySQL High Availability with Replication New Features
 
MySQL Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group Replication
 
Advanced mysql replication techniques
Advanced mysql replication techniquesAdvanced mysql replication techniques
Advanced mysql replication techniques
 
Pluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadminPluk2011 deploy-mysql-like-a-devops-sysadmin
Pluk2011 deploy-mysql-like-a-devops-sysadmin
 
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Advanced percona xtra db cluster in a nutshell... la suite plsc2016
Advanced percona xtra db cluster in a nutshell... la suite plsc2016
 
Percon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshellPercon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshell
 

Similar to MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster

MySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellMySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a Nutshell
Frederic Descamps
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
Frederic Descamps
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
Frederic Descamps
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabMySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
Frederic Descamps
 
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
Frederic Descamps
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Frederic Descamps
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
Frederic Descamps
 
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
Frederic Descamps
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
Frederic Descamps
 
Swedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB ClusterSwedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB Cluster
Frederic Descamps
 
Helsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB ClusterHelsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB Cluster
Frederic Descamps
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL Shell
Frederic Descamps
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & Operations
Frederic Descamps
 
Mysql repos testing.odp
Mysql repos testing.odpMysql repos testing.odp
Mysql repos testing.odp
Ramana Yeruva
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08
Kenny Gryp
 
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
Miguel Araújo
 
20191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv120191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv1
Ivan Ma
 

Similar to MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster (20)

MySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a NutshellMySQL InnoDB Cluster and Group Replication in a Nutshell
MySQL InnoDB Cluster and Group Replication in a Nutshell
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on LabMySQL InnoDB Cluster in a Nutshell - Hands-on Lab
MySQL InnoDB Cluster in a Nutshell - Hands-on Lab
 
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...DataOpsbarcelona 2019:  Deep dive into MySQL Group Replication... the magic e...
DataOpsbarcelona 2019: Deep dive into MySQL Group Replication... the magic e...
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
 
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
 
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
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
 
Swedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB ClusterSwedish MySQL User Group - MySQL InnoDB Cluster
Swedish MySQL User Group - MySQL InnoDB Cluster
 
Helsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB ClusterHelsinki MySQL User Group - MySQL InnoDB Cluster
Helsinki MySQL User Group - MySQL InnoDB Cluster
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL Shell
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & Operations
 
Mysql repos testing.odp
Mysql repos testing.odpMysql repos testing.odp
Mysql repos testing.odp
 
MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08MySQL Database Architectures - 2022-08
MySQL Database Architectures - 2022-08
 
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
 
20191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv120191001 bkk-secret-of inno-db_clusterv1
20191001 bkk-secret-of inno-db_clusterv1
 

More from Frederic Descamps

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

More from Frederic Descamps (20)

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

Recently uploaded

[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
@Call @Girls Thiruvananthapuram 🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...
@Call @Girls Thiruvananthapuram  🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...@Call @Girls Thiruvananthapuram  🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...
@Call @Girls Thiruvananthapuram 🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...
kantakumariji156
 
K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024
The Digital Insurer
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design ApproachesKnowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Earley Information Science
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Performance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy EvertsPerformance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy Everts
ScyllaDB
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
What's Next Web Development Trends to Watch.pdf
What's Next Web Development Trends to Watch.pdfWhat's Next Web Development Trends to Watch.pdf
What's Next Web Development Trends to Watch.pdf
SeasiaInfotech2
 
How Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global ScaleHow Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global Scale
ScyllaDB
 
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
amitchopra0215
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 

Recently uploaded (20)

[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
@Call @Girls Thiruvananthapuram 🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...
@Call @Girls Thiruvananthapuram  🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...@Call @Girls Thiruvananthapuram  🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...
@Call @Girls Thiruvananthapuram 🚒 XXXXXXXXXX 🚒 Priya Sharma Beautiful And Cu...
 
K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024K2G - Insurtech Innovation EMEA Award 2024
K2G - Insurtech Innovation EMEA Award 2024
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design ApproachesKnowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
Knowledge and Prompt Engineering Part 2 Focus on Prompt Design Approaches
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Performance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy EvertsPerformance Budgets for the Real World by Tammy Everts
Performance Budgets for the Real World by Tammy Everts
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
What's Next Web Development Trends to Watch.pdf
What's Next Web Development Trends to Watch.pdfWhat's Next Web Development Trends to Watch.pdf
What's Next Web Development Trends to Watch.pdf
 
How Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global ScaleHow Netflix Builds High Performance Applications at Global Scale
How Netflix Builds High Performance Applications at Global Scale
 
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
@Call @Girls Pune 0000000000 Riya Khan Beautiful Girl any Time
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 

MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster

  • 2. MySQL Group Replication in a nutshell MySQL InnoDB Cluster: hands-on tutorial   Percona Live Amsterdam- October 2016   Frédéric Descamps - MySQL Community Manager - Oracle Kenny Gryp - MySQL Practice Manager - Percona 2 / 192
  • 3.   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 @ 2016 Oracle and/or its affiliates. All rights reserved. 3 / 192
  • 4. about.me/lefred Who are we ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 4 / 192
  • 6. Frédéric Descamps @lefred MySQL Evangelist Managing MySQL since 3.23 devops believer Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 6 / 192
  • 7. Kenny Gryp @gryp MySQL Practice Manager Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 7 / 192
  • 8. get more at the conference MySQL Group Replication Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 8 / 192
  • 9. Other session MySQL Replication: Latest Developments LuìsSoares Tuesday 4 October 2016 3:10pmto 4:00pm- Zürich 1 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 9 / 192
  • 11. Agenda Prepare your workstation Group Replication concepts Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 11 / 192
  • 12. Agenda Prepare your workstation Group Replication concepts Migration fromMaster-Slave to GR Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 12 / 192
  • 13. Agenda Prepare your workstation Group Replication concepts Migration fromMaster-Slave to GR Howto monitor ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 13 / 192
  • 14. Agenda Prepare your workstation Group Replication concepts Migration fromMaster-Slave to GR Howto monitor ? Application interaction Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 14 / 192
  • 16. Setup your workstation Install VirtualBox 5 On the USB key, there is a file called PLAM16_GR.ova, please copy it on your laptop and doubleclick on it Start all virtual machines (mysql1, mysql2, mysql3 &mysql4) Install putty if you are using Windows Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 16 / 192
  • 17. Setup your workstation Install VirtualBox 5 On the USB key, there is a file called PLAM16_GR.ova, please copy it on your laptop and doubleclick on it Start all virtual machines (mysql1, mysql2, mysql3 &mysql4) Install putty if you are using Windows Try to connect to all VM's fromyour terminal or putty (rootpasswordisX): ssh -p 8821 root@127.0.0.1 to mysql1 ssh -p 8822 root@127.0.0.1 to mysql2 ssh -p 8823 root@127.0.0.1 to mysql3 ssh -p 8824 root@127.0.0.1 to mysql4 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 17 / 192
  • 19. launch run_app.sh on mysql1 into a screen session verify that mysql2 is a running slave LAB1: Current situation Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 19 / 192
  • 20. Summary   +--------+----------+--------------+-----------------+ | | ROLE | SSH PORT | INTERNAL IP | +--------+----------+--------------+-----------------+ | | | | | | mysql1 | master | 8821 | 192.168.56.11 | | | | | | | mysql2 | slave | 8822 | 192.168.56.12 | | | | | | | mysql3 | n/a | 8823 | 192.168.56.13 | | | | | | | mysql4 | n/a | 8824 | 192.168.56.14 | | | | | | +--------+----------+--------------+-----------------+ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 20 / 192
  • 21. the magic explained Group Replication Concept Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 21 / 192
  • 22. Group Replication : what is it ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 22 / 192
  • 23. Group Replication : what is it ? MySQL Group Replication is one of the major components of MySQL InnoDB Cluster Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 23 / 192
  • 24. Group Replication : what is it ? MySQL Group Replication is one of the major components of MySQL InnoDB Cluster   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 24 / 192
  • 27. Group replication is a plugin ! Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 27 / 192
  • 28. Group replication is a plugin ! GR is a plugin for MySQL, made by MySQL and packaged with MySQL Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 28 / 192
  • 29. Group replication is a plugin ! GR is a plugin for MySQL, made by MySQL and packaged with MySQL GR is an implementation of Replicated Database State Machine theory MySQL Group Communication System(GCS) is based on Paxos Mencius Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 29 / 192
  • 30. Group replication is a plugin ! GR is a plugin for MySQL, made by MySQL and packaged with MySQL GR is an implementation of Replicated Database State Machine theory MySQL Group Communication System(GCS) is based on Paxos Mencius Provides virtually synchronous replication for MySQL 5.7+ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 30 / 192
  • 31. Group replication is a plugin ! GR is a plugin for MySQL, made by MySQL and packaged with MySQL GR is an implementation of Replicated Database State Machine theory MySQL Group Communication System(GCS) is based on Paxos Mencius Provides virtually synchronous replication for MySQL 5.7+ Supported on all MySQL platforms !! Linux, Windows, Solaris, OSX, FreeBSD Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 31 / 192
  • 33. Group Replication : how does it work ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 33 / 192
  • 34. Group Replication : how does it work ? A node (member of the group) sends the changes (binlog events) made by a transaction to the group through the GCS. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 34 / 192
  • 35. Group Replication : how does it work ? A node (member of the group) sends the changes (binlog events) made by a transaction to the group through the GCS. All members consume the writeset and certify it, no need to wait for all members, ack by the majority is enough. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 35 / 192
  • 36. Group Replication : how does it work ? A node (member of the group) sends the changes (binlog events) made by a transaction to the group through the GCS. All members consume the writeset and certify it, no need to wait for all members, ack by the majority is enough. If passed it is applied, if failed, transaction is rolled back on originating server and discarded at other servers. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 36 / 192
  • 37. OK... but how does it work ?! Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 37 / 192
  • 38. OK... but how does it work ?! It's just magic ! Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 38 / 192
  • 39. OK... but how does it work ?! It's just magic ! ... no, the writeset replication is synchronous and then certification and applying of the changes happen locally on each node and is asynchronous. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 39 / 192
  • 40. OK... but how does it work ?! It's just magic ! ... no, the writeset replication is synchronous and then certification and applying of the changes happen locally on each node and is asynchronous. not that easy to understand... right ? Let's illustrate this... Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 40 / 192
  • 41. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 41 / 192
  • 42. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 42 / 192
  • 43. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 43 / 192
  • 44. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 44 / 192
  • 45. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 45 / 192
  • 46. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 46 / 192
  • 47. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 47 / 192
  • 48. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 48 / 192
  • 49. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 49 / 192
  • 50. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 50 / 192
  • 51. MySQL Group Replication (autocommit) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 51 / 192
  • 52. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 52 / 192
  • 53. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 53 / 192
  • 54. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 54 / 192
  • 55. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 55 / 192
  • 56. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 56 / 192
  • 57. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 57 / 192
  • 58. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 58 / 192
  • 59. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 59 / 192
  • 60. MySQL Group Replication (full transaction) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 60 / 192
  • 61. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 61 / 192
  • 62. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 62 / 192
  • 63. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 63 / 192
  • 64. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 64 / 192
  • 65. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 65 / 192
  • 66. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 66 / 192
  • 67. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 67 / 192
  • 68. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 68 / 192
  • 69. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 69 / 192
  • 70. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 70 / 192
  • 71. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 71 / 192
  • 72. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 72 / 192
  • 73. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 73 / 192
  • 74. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 74 / 192
  • 75. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 75 / 192
  • 76. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 76 / 192
  • 77. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 77 / 192
  • 78. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 78 / 192
  • 79. Group Replication : Total Order Delivery - GTID Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 79 / 192
  • 80. Group Replication : Optimistic Locking Group Replication uses optimistic locking during a transaction, local (InnoDB) locking happens optimistically assumes there will be no conflicts across nodes (no communication between nodes necessary) cluster-wide conflict resolution happens only at COMMIT, during certification Let's first have a look at the traditional locking to compare. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 80 / 192
  • 93. Optimistic Locking The systemreturns error 149 as certification failed: ERROR 1180 (HY000): Got error 149 during COMMIT Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 93 / 192
  • 94. Group Replication : requirements exclusively works with InnoDB tables only Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 94 / 192
  • 95. Group Replication : requirements exclusively works with InnoDB tables only every tables must have a PK defined Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 95 / 192
  • 96. Group Replication : requirements exclusively works with InnoDB tables only every tables must have a PK defined only IPV4 is supported Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 96 / 192
  • 97. Group Replication : requirements exclusively works with InnoDB tables only every tables must have a PK defined only IPV4 is supported a good network with lowlatency is important Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 97 / 192
  • 98. Group Replication : requirements exclusively works with InnoDB tables only every tables must have a PK defined only IPV4 is supported a good network with lowlatency is important maximumof 9 members per group Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 98 / 192
  • 99. Group Replication : requirements exclusively works with InnoDB tables only every tables must have a PK defined only IPV4 is supported a good network with lowlatency is important maximumof 9 members per group log-bin must be enabled and only ROWformat is supported Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 99 / 192
  • 100. Group Replication : requirements (2) enable GTIDs Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 100 / 192
  • 101. Group Replication : requirements (2) enable GTIDs replication meta-data must be stored on systemtables --master-info-repository=TABLE --relay-log-info-repository=TABLE Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 101 / 192
  • 102. Group Replication : requirements (2) enable GTIDs replication meta-data must be stored on systemtables --master-info-repository=TABLE --relay-log-info-repository=TABLE writesets extraction must be enabled --transaction-write-set-extraction=XXHASH64 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 102 / 192
  • 103. Group Replication : requirements (2) enable GTIDs replication meta-data must be stored on systemtables --master-info-repository=TABLE --relay-log-info-repository=TABLE writesets extraction must be enabled --transaction-write-set-extraction=XXHASH64 log-slave-updates must be enabled Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 103 / 192
  • 104. Group Replication : limitations There are also some technical limitations: Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 104 / 192
  • 105. Group Replication : limitations There are also some technical limitations: binlog checksumis not supported --binlog-checksum=NONE Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 105 / 192
  • 106. Group Replication : limitations There are also some technical limitations: binlog checksumis not supported --binlog-checksum=NONE Savepoints are not supported Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 106 / 192
  • 107. Group Replication : limitations There are also some technical limitations: binlog checksumis not supported --binlog-checksum=NONE Savepoints are not supported SERIALIZABLEis not supported as transaction isolation level Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 107 / 192
  • 108. Group Replication : limitations There are also some technical limitations: binlog checksumis not supported --binlog-checksum=NONE Savepoints are not supported SERIALIZABLEis not supported as transaction isolation level an object cannot be changed concurrently at different servers by two operations, where one of themis a DDL and the other is either a DML or DDL. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 108 / 192
  • 109. Is my workload ready for Group Replication ? As the writesets (transactions) are replicated to all available nodes on commit, and as they are certified on every node, a very large writeset could increase the amount of certification errors. Additionally, changing the same record on all the nodes (hotspot) concurrently will also cause problems. And finally, the certification uses the primary key of the tables, a table without PK is also a problem. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 109 / 192
  • 110. Is my workload ready for Group Replication ? Therefore, when using Group Replication, we should pay attention to these points: PK is mandatory (and a good one is better) avoid large transactions avoid hotspot Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 110 / 192
  • 111. ready ? Migration from Master-Slave to GR Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 111 / 192
  • 113. 1) We install and setup MySQL InnoDB Cluster on one of the newservers The plan Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 113 / 192
  • 114. 2) We restore a backup 3) setup asynchronous replication on the new server. The plan Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 114 / 192
  • 115. 4) We add a new instance to our group The plan Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 115 / 192
  • 116. 5) We point the application to one of our newnodes. 6) We wait and check that asynchronous replication is caught up 7) we stop those asynchronous slaves The plan Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 116 / 192
  • 117. 8) We attach the mysql2 slave to the group The plan Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 117 / 192
  • 118. 9) Use MySQL Router for directing traffic The plan Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 118 / 192
  • 119. MySQL InnoDB Cluster fromLabs is already installed on mysql3. Let's take a backup on mysql1: [mysql1 ~]# xtrabackup --backup --target-dir=/tmp/backup --user=root --password=X --host=127.0.0.1 [mysql1 ~]# xtrabackup --prepare --target-dir=/tmp/backup LAB2: Prepare mysql3 Asynchronousslave 119 / 192
  • 120. LAB2: Prepare mysql3 (2) Asynchronousslave Copy the backup frommysql1 to mysql3: [mysql1 ~]# scp -r /tmp/backup mysql3:/tmp And restore it: [mysql3 ~]# xtrabackup --copy-back --target-dir=/tmp/backup [mysql3 ~]# chown -R mysql. /var/lib/mysql 120 / 192
  • 121. LAB3: mysql3 as asynchronous slave (2) Asynchronousslave Configure /etc/my.cnf: [mysqld] ... server_id=3 enforce_gtid_consistency = on gtid_mode = on log_bin log_slave_updates Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 121 / 192
  • 122. LAB2: Prepare mysql3 (3) Asynchronousslave Let's start MySQL on mysql3: [mysql3 ~]# systemctl start mysqld Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 122 / 192
  • 123. find the GTIDs purged change MASTER set the purged GTIDs start replication LAB3: mysql3 as asynchronous slave (1)   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 123 / 192
  • 124. LAB3: mysql3 as asynchronous slave (2) Find the latest purged GTIDs: [mysql3 ~]# cat /tmp/backup/xtrabackup_binlog_info mysql-bin.000002 167646328 b346474c-8601-11e6-9b39-08002718d305:1-771 Connect to mysql3 and setup replication: mysql> CHANGE MASTER TO MASTER_HOST="mysql1", MASTER_USER="repl_async", MASTER_PASSWORD='Xslave', MASTER_AUTO_POSITION=1; mysql> RESET MASTER; mysql> SET global gtid_purged="VALUE FOUND PREVIOUSLY"; mysql> START SLAVE; Check that you receive the application's traffic 124 / 192
  • 125. Disclamer ! The following commands to manage and use MySQL InnoDB Cluster are compatible with MySQL InnoDB Cluster 5.7.15 Previewfromlabs. Functions may change in future releases. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 125 / 192
  • 126. LAB4: MySQL InnoDB Cluster Createasingleinstancecluster Time to use the newMySQL Shell ! [mysql3 ~]# mysqlsh Let's verify if our server is ready to become a member of a newcluster: mysql-js> dba.validateInstance('root@mysql3:3306') Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 126 / 192
  • 127. LAB4: configuration settings (2) mysql3's my.cnf Configure /etc/my.cnf: [mysqld] ... server_id=3 enforce_gtid_consistency = on gtid_mode = on log_bin log_slave_updates binlog_checksum = none master_info_repository = TABLE relay_log_info_repository = TABLE transaction_write_set_extraction = XXHASH64 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 127 / 192
  • 128. LAB4: configuration settings (2) mysql3's my.cnf Configure /etc/my.cnf: [mysqld] ... server_id=3 enforce_gtid_consistency = on gtid_mode = on log_bin log_slave_updates binlog_checksum = none master_info_repository = TABLE relay_log_info_repository = TABLE transaction_write_set_extraction = XXHASH64 [mysql3 ~]# systemctl restart mysqld Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 128 / 192
  • 129. LAB4: MySQL InnoDB Cluster (3) Createasingleinstancecluster [mysql3 ~]# mysqlsh Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 129 / 192
  • 130. LAB4: MySQL InnoDB Cluster (3) Createasingleinstancecluster [mysql3 ~]# mysqlsh mysql-js> dba.validateInstance('root@mysql3:3306') mysql-js> c root@mysql3:3306 mysql-js> cluster = dba.createCluster('plam') The KEY is the only credential we need to remember to manage our cluster. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 130 / 192
  • 131. LAB4: MySQL InnoDB Cluster (3) Createasingleinstancecluster [mysql3 ~]# mysqlsh mysql-js> dba.validateInstance('root@mysql3:3306') mysql-js> c root@mysql3:3306 mysql-js> cluster = dba.createCluster('plam') The KEY is the only credential we need to remember to manage our cluster. mysql-js> cluster.status() Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 131 / 192
  • 132. Cluster Status mysql-js> cluster.status() { "clusterName": "plam", "defaultReplicaSet": { "status": "Cluster is NOT tolerant to any failures.", "topology": { "mysql3:3306": { "address": "mysql3:3306", "status": "ONLINE", "role": "HA", "mode": "R/W", "leaves": {} } } } } Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 132 / 192
  • 133. Add mysql4 to the Group: restore the backup set the purged GTIDs use MySQL shell LAB5: add mysql4 to the cluster (1)   Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 133 / 192
  • 134. LAB5: add mysql4 to the cluster (2) Copy the backup frommysql1 to mysql4: [mysql1 ~]# scp -r /tmp/backup mysql4:/tmp And restore it: [mysql4 ~]# xtrabackup --copy-back --target-dir=/tmp/backup [mysql4 ~]# chown -R mysql. /var/lib/mysql Start MySQL on mysql4: [mysql4 ~]# systemctl start mysqld 134 / 192
  • 135. LAB5: MySQL shell to add an instance (3) [mysql4 ~]# mysqlsh Let's verify the config: mysql-js> dba.validateInstance('root@mysql4:3306') Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 135 / 192
  • 136. LAB5: MySQL shell to add an instance (4) Configure /etc/my.cnf: [mysqld] ... server_id=4 enforce_gtid_consistency = on gtid_mode = on log_bin log_slave_updates binlog_checksum = none master_info_repository = TABLE relay_log_info_repository = TABLE transaction_write_set_extraction = XXHASH64 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 136 / 192
  • 137. LAB5: MySQL shell to add an instance (4) Configure /etc/my.cnf: [mysqld] ... server_id=4 enforce_gtid_consistency = on gtid_mode = on log_bin log_slave_updates binlog_checksum = none master_info_repository = TABLE relay_log_info_repository = TABLE transaction_write_set_extraction = XXHASH64 [mysql4 ~]# systemctl restart mysqld Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 137 / 192
  • 138. LAB5: MySQL InnoDB Cluster (4) Groupof2instances Find the latest purged GTIDs: [mysql4 ~]# cat /tmp/backup/xtrabackup_binlog_info mysql-bin.000002 167646328 b346474c-8601-11e6-9b39-08002718d305:1-77177 Connect to mysql4 and set GTID_PURGED [mysql4 ~]# mysqlsh mysql-js> c root@mysql4:3306 mysql-js> sql mysql-sql> RESET MASTER; mysql-sql> SET global gtid_purged="VALUE FOUND PREVIOUSLY"; 138 / 192
  • 139. LAB5: MySQL InnoDB Cluster (5) mysql-sql> js mysql-js> dba.validateInstance('root@mysql4:3306') mysql-js> c root@mysql3:3306 mysql-js> cluster = dba.getCluster('plam') mysql-js> cluster.addInstance("root@mysql4:3306") mysql-js> cluster.status() Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 139 / 192
  • 140. Cluster Status mysql-js> cluster.status() { "clusterName": "plam", "defaultReplicaSet": { "status": "Cluster is NOT tolerant to any failures.", "topology": { "mysql3:3306": { "address": "mysql3:3306", "status": "ONLINE", "role": "HA", "mode": "R/W", "leaves": { "mysql4:3306": { "address": "mysql4:3306", "status": "RECOVERING", "role": "HA", "mode": "R/O", "leaves": {} } } } } } } Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 140 / 192
  • 141. Recovering progress On standard MySQL, monitor the group_replication_recovery channel to see the progress: mysql> show slave status for channel 'group_replication_recovery'G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: mysql3 Master_User: mysql_innodb_cluster_rpl_user ... Slave_IO_Running: Yes Slave_SQL_Running: Yes ... Retrieved_Gtid_Set: 6e7d7848-860f-11e6-92e4-08002718d305:1-6, 7c1f0c2d-860d-11e6-9df7-08002718d305:1-15, b346474c-8601-11e6-9b39-08002718d305:1964-77177, e8c524df-860d-11e6-9df7-08002718d305:1-2 Executed_Gtid_Set: 7c1f0c2d-860d-11e6-9df7-08002718d305:1-7, b346474c-8601-11e6-9b39-08002718d305:1-45408, e8c524df-860d-11e6-9df7-08002718d305:1-2 ... Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 141 / 192
  • 142. point the application to the cluster Migrate the application Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 142 / 192
  • 143. LAB6: Migrate the application Nowwe need to point the application to mysql3, this is the only downtime ! ... [ 21257s] threads: 4, tps: 12.00, reads: 167.94, writes: 47.98, response time: 18 [ 21258s] threads: 4, tps: 6.00, reads: 83.96, writes: 23.99, response time: 14 [ 21259s] threads: 4, tps: 7.00, reads: 98.05, writes: 28.01, response time: 16 [ 31250s] threads: 4, tps: 8.00, reads: 111.95, writes: 31.99, response time: 30 [ 31251s] threads: 4, tps: 11.00, reads: 154.01, writes: 44.00, response time: 13 [ 31252s] threads: 4, tps: 11.00, reads: 153.94, writes: 43.98, response time: 12 [ 31253s] threads: 4, tps: 10.01, reads: 140.07, writes: 40.02, response time: 17 ^C [mysql1 ~]# run_app.sh mysql3 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 143 / 192
  • 144. LAB6: Migrate the application Make sure replication is running properly on mysql2 and mysql3. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 144 / 192
  • 145. LAB6: Migrate the application Make sure replication is running properly on mysql2 and mysql3. ************************** 1. row *************************** ... Master_Host: mysql1 Slave_IO_Running: Yes Slave_SQL_Running: No ... Last_SQL_Errno: 3100 Last_SQL_Error: Error in Xid_log_event: Commit could not be completed, 'Error on observer while running replication hook 'before_commit'.' Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID: 8fbcd944-8760-11e6-9b4e-08002718d305 ... Last_SQL_Error_Timestamp: 160930 23:04:07 Retrieved_Gtid_Set: 8fbcd944-8760-11e6-9b4e-08002718d305:360-3704 Executed_Gtid_Set: 0b31b4f3-8762-11e6-bb35-08002718d305:1-7, 30212757-8762-11e6-ad73-08002718d305:1-2, 8fbcd944-8760-11e6-9b4e-08002718d305:1-2652 Auto_Position: 1 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 145 / 192
  • 146. LAB6: Migrate the application Fix replication if necessary: mysql3> start slave; mysql3> show slave status; Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 146 / 192
  • 147. LAB6: Migrate the application Fix replication if necessary: mysql3> start slave; mysql3> show slave status; Stop asynchronous replication on mysql2 and mysql3: mysql2> stop slave; mysql3> stop slave; Make sure gtid_executed range on mysql2 is lower or equal than on mysql3 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 147 / 192
  • 148. LAB6: Migrate the application Fix replication if necessary: mysql3> start slave; mysql3> show slave status; Stop asynchronous replication on mysql2 and mysql3: mysql2> stop slave; mysql3> stop slave; Make sure gtid_executed range on mysql2 is lower or equal than on mysql3 mysql2> set global super_read_only=off;# http://bugs.mysql.com/bug.php?id=83234 mysql2> reset slave all; mysql3> reset slave all; Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 148 / 192
  • 149. previous slave (mysql2) can now be part of the cluster Add a third instance Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 149 / 192
  • 150. LAB7: Add mysql2 to the group We first validate the instance using MySQL shell and we modify the configuration. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 150 / 192
  • 151. LAB7: Add mysql2 to the group We first validate the instance using MySQL shell and we modify the configuration. [mysqld] ... super_read_only=0 server_id=2 binlog_checksum = none enforce_gtid_consistency = on gtid_mode = on log_bin log_slave_updates master_info_repository = TABLE relay_log_info_repository = TABLE transaction_write_set_extraction = XXHASH64 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 151 / 192
  • 152. LAB7: Add mysql2 to the group We first validate the instance using MySQL shell and we modify the configuration. [mysqld] ... super_read_only=0 server_id=2 binlog_checksum = none enforce_gtid_consistency = on gtid_mode = on log_bin log_slave_updates master_info_repository = TABLE relay_log_info_repository = TABLE transaction_write_set_extraction = XXHASH64 [mysql2 ~]# systemctl restart mysqld Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 152 / 192
  • 153. LAB7: Add mysql2 to the group (2) Back in MySQL shell we add the newinstance: [mysql2 ~]# mysqlsh Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 153 / 192
  • 154. LAB7: Add mysql2 to the group (2) Back in MySQL shell we add the newinstance: [mysql2 ~]# mysqlsh mysql-js> dba.validateInstance('root@mysql2:3306') mysql-js> c root@mysql3:3306 mysql-js> cluster = dba.getCluster('plam') mysql-js> cluster.addInstance("root@mysql2:3306") mysql-js> cluster.status() Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 154 / 192
  • 155. LAB7: Add mysql2 to the group (3) { "clusterName": "plam", "defaultReplicaSet": { "status": "Cluster tolerant to up to ONE failure.", "topology": { "mysql3:3306": { "address": "mysql3:3306", "status": "ONLINE", "role": "HA", "mode": "R/W", "leaves": { "mysql4:3306": { "address": "mysql4:3306", "status": "ONLINE", "role": "HA", "mode": "R/O", "leaves": {} }, "mysql2:3306": { "address": "mysql2:3306", "status": "ONLINE", "role": "HA", "mode": "R/O", "leaves": {} } } Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 155 / 192
  • 157. writing to a single server Single Primary Mode Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 157 / 192
  • 158. Default = Single Primary Mode By default, MySQL InnoDB Cluster enables Single Primary Mode. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 158 / 192
  • 159. Default = Single Primary Mode By default, MySQL InnoDB Cluster enables Single Primary Mode. mysql> show global variables like 'group_replication_single_primary_mode'; +---------------------------------------+-------+ | Variable_name | Value | +---------------------------------------+-------+ | group_replication_single_primary_mode | ON | +---------------------------------------+-------+ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 159 / 192
  • 160. Default = Single Primary Mode By default, MySQL InnoDB Cluster enables Single Primary Mode. mysql> show global variables like 'group_replication_single_primary_mode'; +---------------------------------------+-------+ | Variable_name | Value | +---------------------------------------+-------+ | group_replication_single_primary_mode | ON | +---------------------------------------+-------+ In Single Primary Mode, a single member acts as the writable master (PRIMARY) and the rest of the members act as hot-standbys (SECONDARY). The group itself coordinates and configures itself automatically to determine which member will act as the PRIMARY, through a leader election mechanism. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 160 / 192
  • 161. Who's the Primary Master ? As the Primary Master is elected, all nodes part of the group knows which one was elected. This value is exposed in status variables: Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 161 / 192
  • 162. Who's the Primary Master ? As the Primary Master is elected, all nodes part of the group knows which one was elected. This value is exposed in status variables: mysql> show status like 'group_replication_primary_member'; +----------------------------------+--------------------------------------+ | Variable_name | Value | +----------------------------------+--------------------------------------+ | group_replication_primary_member | 28a4e51f-860e-11e6-bdc4-08002718d305 | +----------------------------------+--------------------------------------+ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 162 / 192
  • 163. Who's the Primary Master ? As the Primary Master is elected, all nodes part of the group knows which one was elected. This value is exposed in status variables: mysql> show status like 'group_replication_primary_member'; +----------------------------------+--------------------------------------+ | Variable_name | Value | +----------------------------------+--------------------------------------+ | group_replication_primary_member | 28a4e51f-860e-11e6-bdc4-08002718d305 | +----------------------------------+--------------------------------------+ mysql> select member_host as "primary master" from performance_schema.global_status join performance_schema.replication_group_members where variable_name = 'group_replication_primary_member' and member_id=variable_value; +---------------+ | primary master| +---------------+ | mysql3 | +---------------+ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 163 / 192
  • 165. Performance Schema Group Replication uses Performance_Schema to expose status mysql3> SELECT * FROM performance_schema.replication_group_membersG *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier MEMBER_ID: 00db47c7-3e23-11e6-afd4-08002774c31b MEMBER_HOST: mysql3.localdomain MEMBER_PORT: 3306 MEMBER_STATE: ONLINE Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 165 / 192
  • 166. Performance Schema Group Replication uses Performance_Schema to expose status mysql3> SELECT * FROM performance_schema.replication_group_membersG *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier MEMBER_ID: 00db47c7-3e23-11e6-afd4-08002774c31b MEMBER_HOST: mysql3.localdomain MEMBER_PORT: 3306 MEMBER_STATE: ONLINE mysql3> SELECT * FROM performance_schema.replication_connection_statusG *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier GROUP_NAME: afb80f36-2bff-11e6-84e0-0800277dd3bf SOURCE_UUID: afb80f36-2bff-11e6-84e0-0800277dd3bf THREAD_ID: NULL SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-2 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 166 / 192
  • 167. Member State These are the different possible state for a node member: ONLINE OFFLINE RECOVERING ERROR: when a node is leaving but the plugin was not instructed to stop UNREACHABLE Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 167 / 192
  • 168. Status information & metrics Members mysql> SELECT * FROM performance_schema.replication_group_membersG Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 168 / 192
  • 169. Status information & metrics Members mysql> SELECT * FROM performance_schema.replication_group_membersG *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier MEMBER_ID: 00db47c7-3e23-11e6-afd4-08002774c31b MEMBER_HOST: mysql3.localdomain MEMBER_PORT: 3306 MEMBER_STATE: ONLINE *************************** 2. row *************************** CHANNEL_NAME: group_replication_applier MEMBER_ID: e1544c9d-4451-11e6-9f5a-08002774c31b MEMBER_HOST: mysql4.localdomain.localdomain MEMBER_PORT: 3306 MEMBER_STATE: ONLINE Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 169 / 192
  • 170. Status information & metrics Connections mysql> SELECT * FROM performance_schema.replication_connection_statusG Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 170 / 192
  • 171. Status information & metrics Connections mysql> SELECT * FROM performance_schema.replication_connection_statusG *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier GROUP_NAME: afb80f36-2bff-11e6-84e0-0800277dd3bf SOURCE_UUID: afb80f36-2bff-11e6-84e0-0800277dd3bf THREAD_ID: NULL SERVICE_STATE: ON COUNT_RECEIVED_HEARTBEATS: 0 LAST_HEARTBEAT_TIMESTAMP: 0000-00-00 00:00:00 RECEIVED_TRANSACTION_SET: 5de4400b-3dd7-11e6-8a71-08002774c31b:1-814089, afb80f36-2bff-11e6-84e0-0800277dd3bf:1-2834 LAST_ERROR_NUMBER: 0 LAST_ERROR_MESSAGE: LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00 *************************** 2. row *************************** CHANNEL_NAME: group_replication_recovery GROUP_NAME: SOURCE_UUID: THREAD_ID: NULL SERVICE_STATE: OFF Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 171 / 192
  • 172. Status information & metrics Local node status mysql> select * from performance_schema.replication_group_member_statsG Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 172 / 192
  • 173. Status information & metrics Local node status mysql> select * from performance_schema.replication_group_member_statsG *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier VIEW_ID: 14679667214442885:4 MEMBER_ID: e1544c9d-4451-11e6-9f5a-08002774c31b COUNT_TRANSACTIONS_IN_QUEUE: 0 COUNT_TRANSACTIONS_CHECKED: 5961 COUNT_CONFLICTS_DETECTED: 0 COUNT_TRANSACTIONS_ROWS_VALIDATING: 0 TRANSACTIONS_COMMITTED_ALL_MEMBERS: 5de4400b-3dd7-11e6-8a71-08002774c31b:1-814089, afb80f36-2bff-11e6-84e0-0800277dd3bf:1-5718 LAST_CONFLICT_FREE_TRANSACTION: afb80f36-2bff-11e6-84e0-0800277dd3bf:5718 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 173 / 192
  • 174. Performance_Schema You can find GR information in the following Performance_Schema tables: replication_applier_con guration replication_applier_status replication_applier_status_by_worker replication_connection_con guration replication_connection_status replication_group_member_stats replication_group_members Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 174 / 192
  • 175. Status during recovery mysql> SHOW SLAVE STATUS FOR CHANNEL 'group_replication_recovery'G Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 175 / 192
  • 176. Status during recovery mysql> SHOW SLAVE STATUS FOR CHANNEL 'group_replication_recovery'G *************************** 1. row *************************** Slave_IO_State: Master_Host: <NULL> Master_User: gr_repl Master_Port: 0 ... Relay_Log_File: mysql4-relay-bin-group_replication_recovery.000001 ... Slave_IO_Running: No Slave_SQL_Running: No ... Executed_Gtid_Set: 5de4400b-3dd7-11e6-8a71-08002774c31b:1-814089, afb80f36-2bff-11e6-84e0-0800277dd3bf:1-5718 ... Channel_Name: group_replication_recovery Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 176 / 192
  • 177. Sys Schema The easiest way to detect if a node is a member of the primary component (when there are partitioning of your nodes due to network issues for example) and therefore a valid candidate for routing queries to it, is to use the sys table. Additional information for sys can be downloaded at https://github.com/lefred/mysql_gr_routing_check/blob/master/addition_to_sys.sql On the primary node: [mysql3 ~]# mysql < /tmp/gr_addition_to_sys.sql Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 177 / 192
  • 178. Sys Schema Is this node part of PRIMARY Partition: mysql3> SELECT sys.gr_member_in_primary_partition(); +------------------------------------+ | sys.gr_node_in_primary_partition() | +------------------------------------+ | YES | +------------------------------------+ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 178 / 192
  • 179. Sys Schema Is this node part of PRIMARY Partition: mysql3> SELECT sys.gr_member_in_primary_partition(); +------------------------------------+ | sys.gr_node_in_primary_partition() | +------------------------------------+ | YES | +------------------------------------+ To use as healthcheck: mysql3> SELECT * FROM sys.gr_member_routing_candidate_status; +------------------+-----------+---------------------+----------------------+ | viable_candidate | read_only | transactions_behind | transactions_to_cert | +------------------+-----------+---------------------+----------------------+ | YES | YES | 0 | 0 | +------------------+-----------+---------------------+----------------------+ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 179 / 192
  • 180. Sys Schema - Heath Check On one of the non Primary nodes, run the following command: mysql-sql> ush tables with read lock; Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 180 / 192
  • 181. Sys Schema - Heath Check On one of the non Primary nodes, run the following command: mysql-sql> ush tables with read lock; Nowyou can verify what the healthcheck exposes to you: mysql-sql> SELECT * FROM sys.gr_member_routing_candidate_status; +------------------+-----------+---------------------+----------------------+ | viable_candidate | read_only | transactions_behind | transactions_to_cert | +------------------+-----------+---------------------+----------------------+ | YES | YES | 950 | 0 | +------------------+-----------+---------------------+----------------------+ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 181 / 192
  • 182. Sys Schema - Heath Check On one of the non Primary nodes, run the following command: mysql-sql> ush tables with read lock; Nowyou can verify what the healthcheck exposes to you: mysql-sql> SELECT * FROM sys.gr_member_routing_candidate_status; +------------------+-----------+---------------------+----------------------+ | viable_candidate | read_only | transactions_behind | transactions_to_cert | +------------------+-----------+---------------------+----------------------+ | YES | YES | 950 | 0 | +------------------+-----------+---------------------+----------------------+ mysql-sql> UNLOCK tables; Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 182 / 192
  • 184. MySQL Router We will nowuse mysqlrouter between our application and the cluster. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 184 / 192
  • 185. MySQL Router (2) Configure MySQL Router (bootstrap it using an instance): [mysql2 ~]# mysqlrouter --bootstrap mysql2:3306 Please enter the administrative MASTER key for the MySQL InnoDB cluster: MySQL Router has now been con gured for the InnoDB cluster 'plam'. The following connection information can be used to connect to the cluster. Classic MySQL protocol connections to cluster 'plam': - Read/Write Connections: localhost:6446 - Read/Only Connections: localhost:6447 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 185 / 192
  • 186. MySQL Router (3) Nowlet's copy the configuration to mysql1 (our app server) and modify it to listen to port 3306: [mysql2 ~]# scp /etc/mysqlrouter/mysqlrouter.conf mysql1:/etc/mysqlrouter/ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 186 / 192
  • 187. MySQL Router (3) Nowlet's copy the configuration to mysql1 (our app server) and modify it to listen to port 3306: [mysql2 ~]# scp /etc/mysqlrouter/mysqlrouter.conf mysql1:/etc/mysqlrouter/ [routing:default_rw] -bind_port=6446 +bind_port=3306 +bind_address=mysql1 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 187 / 192
  • 188. MySQL Router (3) Nowlet's copy the configuration to mysql1 (our app server) and modify it to listen to port 3306: [mysql2 ~]# scp /etc/mysqlrouter/mysqlrouter.conf mysql1:/etc/mysqlrouter/ [routing:default_rw] -bind_port=6446 +bind_port=3306 +bind_address=mysql1 We can stop mysqld on mysql1 and start mysqlrouter into a screen session: [mysql1 ~]# systemctl stop mysqld [mysql1 ~]# mysqlrouter Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 188 / 192
  • 189. MySQL Router (4) Nowwe can point the application to the router: [mysql1 ~]# run_app.sh mysql1 Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 189 / 192
  • 190. MySQL Router (4) Nowwe can point the application to the router: [mysql1 ~]# run_app.sh mysql1 Check app and kill mysqld on mysql3 (the Primary Master R/Wnode) ! [mysql3 ~]# kill -9 $(pidof mysqld) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 190 / 192
  • 191. MySQL Router (4) Nowwe can point the application to the router: [mysql1 ~]# run_app.sh mysql1 Check app and kill mysqld on mysql3 (the Primary Master R/Wnode) ! [mysql3 ~]# kill -9 $(pidof mysqld) mysql> select member_host as "primary" from performance_schema.global_status join performance_schema.replication_group_members where variable_name = 'group_replication_primary_member' and member_id=variable_value; +---------+ | primary | +---------+ | mysql4 | +---------+ Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 191 / 192
  • 192. Thank you ! Questions ? Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 192 / 192