Group Replication is a plugin that provides multi-master replication for MySQL. It allows transactions to be executed on any node and replicated in a synchronous manner to all other nodes. The changes are delivered in total order to each node using GTIDs to ensure strong consistency across the cluster. Certification and application of the changes occurs asynchronously on each node after the writeset has been synchronously delivered.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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 !!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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 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...
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 !
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.
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.
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.
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.
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.
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.
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
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.
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 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
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
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.
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.
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.
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.
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.
Fine-tuning Group Replication for PerformanceVitor Oliveira
This presentation is an overview of Group Replication from the perspective of performance optimization. It shows the main moving parts, the available options and how they can be used to tune its behaviour, and also a few significant benchmark results.
MySQL InnoDB Cluster provides a complete, high-availability solution for MySQL. Learn how with a few easy-to-use Shell commands, how to set up a MySQL database architecture.
Boston meetup : MySQL Innodb Cluster - May 1st 2017Frederic Descamps
MySQL InnoDB Cluster provides an easy-to-use high availability solution for MySQL databases. It utilizes Group Replication, which replicates data across multiple database nodes to provide redundancy and automatic failover. This allows the database to continue operating even if individual nodes fail. MySQL InnoDB Cluster handles replication, provisioning, and failover automatically without complex configuration needed for traditional asynchronous replication topologies.
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesKenny Gryp
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.
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.
Multi Source Replication With MySQL 5.7 @ VerisureKenny Gryp
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.
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.
MySQL InnoDB Cluster and Group Replication - OSI 2017 BangaloreSujatha Sivakumar
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.
OSS4B: Installing & Managing MySQL like a real devopsFrederic Descamps
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
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #5: Oracle’s InnoDB ClusterContinuent
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.
MySQL InnoDB Cluster / ReplicaSet - TutorialKenny Gryp
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.
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsPedro Gomes
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.
Oracle 12c RAC On your laptop Step by Step Implementation Guide 1.0Yury Velikanov
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.
MySQL Database Architectures - InnoDB ReplicaSet & ClusterKenny Gryp
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 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.
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.
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.
Inexpensive Datamasking for MySQL with ProxySQL - data anonymization for deve...Frederic Descamps
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.
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.
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.
OpenWorld 2014 - Schema Management: versioning and automation with Puppet and...Frederic Descamps
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.
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.
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.
Group Replication: A Journey to the Group Communication CoreAlfranio Júnior
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.
MySQL High Availability with Replication New FeaturesShivji Kumar Jha
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.
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.
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.
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.
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.
Advanced percona xtra db cluster in a nutshell... la suite plsc2016Frederic Descamps
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
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 !!
MySQL InnoDB Cluster and Group Replication in a NutshellFrederic Descamps
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.
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.
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.
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.
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...Frederic Descamps
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.
DataOps Barcelona - MySQL HA so easy... that's insane !Frederic Descamps
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.
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.
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!Frederic Descamps
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.
How to operate MySQL InnoDB Cluster with MySQL ShellFrederic Descamps
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.
MySQL InnoDB Cluster - Advanced Configuration & OperationsFrederic Descamps
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.
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.
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
MySQL 8 High Availability with InnoDB ClustersMiguel Araújo
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
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.
Similar to MySQL Group Replicatio in a nutshell - MySQL InnoDB Cluster (20)
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
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...
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.
RivieraJUG - MySQL 8.0 - What's new for developers.pdfFrederic Descamps
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.
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.
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.
Percona Live 2022 - MySQL Shell for Visual Studio CodeFrederic Descamps
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.
Percona Live 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
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.
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.
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
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.
Open Source 101 2022 - MySQL Indexes and HistogramsFrederic Descamps
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.
Pi Day 2022 - from IoT to MySQL HeatWave Database ServiceFrederic Descamps
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.
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.
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...Frederic Descamps
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 !
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.
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.
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.
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.
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.
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.
UiPath Community Day Kraków: Devs4Devs ConferenceUiPathCommunity
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
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.
Coordinate Systems in FME 101 - Webinar SlidesSafe Software
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 EvertsScyllaDB
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 TimeAurora Consulting
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
What's Next Web Development Trends to Watch.pdfSeasiaInfotech2
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.
How Netflix Builds High Performance Applications at Global ScaleScyllaDB
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.
How Social Media Hackers Help You to See Your Wife's Message.pdfHackersList
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.
Implementations of Fused Deposition Modeling in real worldEmerging Tech
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.
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Chris Swan
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.
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
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
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
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
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