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.
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11Kenny Gryp
Oracle's MySQL solutions make it easy to setup various database architectures and achieve high availability with the introduction MySQL InnoDB Cluster and MySQL InnoDB ReplicaSet meeting various high availability requirements. MySQL InnoDB ClusterSet provides a popular disaster recovery solution.
Completely built in-house and supported by Oracle, many enterprises large and small have adopted these solutions into business critical applications.
In this presentation the various database architecture solutions for high availability and disaster recovery will be covered and help you choose the right solutions based on your business requirements.
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.
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.
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.
MySQL Database Architectures - InnoDB ReplicaSet & ClusterKenny Gryp
Following MySQL InnoDB Cluster as our first, fully integrated MySQL High Availability solution based on Group Replication, MySQL Shell 8.0.19 includes MySQL InnoDB ReplicaSet which delivers another complete solution, this time based on MySQL Replication.
The basic idea for InnoDB ReplicaSet is to do the same for classic MySQL Replication as InnoDB Cluster did for Group Replication. We take a strong technology that is very powerful but can be complex, and provide an easy-to-use AdminAPI for it in the MySQL Shell.
In just a few easy to use Shell commands, a MySQL Replication database architecture can be configured from scratch including:
Data provisioning using MySQL CLONE, Setting up replication,
Performing manual switchover/failover.
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11Kenny Gryp
Oracle's MySQL solutions make it easy to setup various database architectures and achieve high availability with the introduction MySQL InnoDB Cluster and MySQL InnoDB ReplicaSet meeting various high availability requirements. MySQL InnoDB ClusterSet provides a popular disaster recovery solution.
Completely built in-house and supported by Oracle, many enterprises large and small have adopted these solutions into business critical applications.
In this presentation the various database architecture solutions for high availability and disaster recovery will be covered and help you choose the right solutions based on your business requirements.
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.
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.
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.
MySQL Database Architectures - InnoDB ReplicaSet & ClusterKenny Gryp
Following MySQL InnoDB Cluster as our first, fully integrated MySQL High Availability solution based on Group Replication, MySQL Shell 8.0.19 includes MySQL InnoDB ReplicaSet which delivers another complete solution, this time based on MySQL Replication.
The basic idea for InnoDB ReplicaSet is to do the same for classic MySQL Replication as InnoDB Cluster did for Group Replication. We take a strong technology that is very powerful but can be complex, and provide an easy-to-use AdminAPI for it in the MySQL Shell.
In just a few easy to use Shell commands, a MySQL Replication database architecture can be configured from scratch including:
Data provisioning using MySQL CLONE, Setting up replication,
Performing manual switchover/failover.
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.
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 !
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
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?Miguel Araújo
MySQL InnoDB ClusterSet brings multi-datacenter capabilities to our solutions and make it very easy to setup a disaster recovery architecture. Think multiple MySQL InnoDB Clusters into one single database architecture, fully managed from MySQL Shell and with full MySQL Router integration to make it easy to access the entire architecture.
This presentation covers:
- The various features of InnoDB Clusterset
- How to setup MySQL InnoDB ClusterSet
- Ways to migrate from an existing MySQL InnoDB Cluster into MySQL InnoDB ClusterSet
- How to deal with various failures
- The various features of router integration which makes connection to the database architecture easy.
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)Jean-François Gagné
To get better replication speed and less lag, MySQL implements parallel replication in the same schema, also known as LOGICAL_CLOCK. But fully benefiting from this feature is not as simple as just enabling it.
In this talk, I explain in detail how this feature works. I also cover how to optimize parallel replication and the improvements made in MySQL 8.0 and back-ported in 5.7 (Write Sets), greatly improving the potential for parallel execution on replicas (but needing RBR).
Come to this talk to get all the details about MySQL 5.7 and 8.0 Parallel Replication.
Session presented at Oracle Developer Live - MySQL, 2020. Recording available at https://developer.oracle.com/developer-live/mysql/
Abstract:
MySQL Shell is the new, advanced command-line client and editor for MySQL. It sends SQL statements to MySQL server, supports both the classic MySQL protocol and the newer X protocol, and provides scripting capabilities for JavaScript and Python. But there's more to MySQL Shell than meets the eye. It delivers a natural and powerful interface for all DevOps tasks related to MySQL by providing APIs for development and administration. This session covers MySQL Shell's core features, along with demonstrations of how to use the various APIs and how to extend MySQL Shell. We’ll address the regular interaction with databases, the built-in tools that make DBAs and developers’ lives easier, the easy and flawless set up of HA architectures, and the plugins and extensions framework.
The presentation covers improvements made to the redo logs in MySQL 8.0 and their impact on the MySQL performance and Operations. This covers the MySQL version still MySQL 8.0.30.
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
This presentation by Krzysztof Książek at Percona Live 2017 in Santa Clara, California gives detailed descriptions and comparisons of the leading open source database load balancing technologies
We talk a lot about Galera Cluster being great for High Availability, but what about Disaster Recovery (DR)? Database outages can occur when you lose a data centre due to data center power outages or natural disaster, so why not plan appropriately in advance?
In this webinar, we will discuss the business considerations including achieving the highest possible uptime, analysis business impact as well as risk, focus on disaster recovery itself, as well as discussing various scenarios, from having no offsite data to having synchronous replication to another data centre.
This webinar will cover MySQL with Galera Cluster, as well as branches MariaDB Galera Cluster as well as Percona XtraDB Cluster (PXC). We will focus on architecture solutions, DR scenarios and have you on your way to success at the end of it.
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMiguel Araújo
MySQL InnoDB Cluster and MySQL Shell session presented at Oracle CodeOne2019.
Abstract:
MySQL InnoDB Cluster provides a built-in high-availability solution for MySQL. Combining MySQL Group Replication with MySQL Router and MySQL Shell into an integrated full-stack solution, InnoDB Cluster provides easy setup and management of MySQL instances into a fault-tolerant database service. MySQL Shell is the “control panel” of InnoDB Cluster, enabling the easy and straightforward configuration and management of InnoDB clusters by providing a scriptable and interactive API: the AdminAPI. Recent enhancements and features added to MySQL Shell make the management of InnoDB clusters even more powerful and smoother. Attend this session to get an overview of the latest developments and improved InnoDB Cluster administration tasks.
Notes:
The slideshow includes a video that cannot be seen in slideshare/PDF. If you're interested in it please check the following blog post: https://mysqlhighavailability.com/mysql-innodb-cluster-automatic-node-provisioning/
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.
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 !
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
Disaster Recovery with MySQL InnoDB ClusterSet - What is it and how do I use it?Miguel Araújo
MySQL InnoDB ClusterSet brings multi-datacenter capabilities to our solutions and make it very easy to setup a disaster recovery architecture. Think multiple MySQL InnoDB Clusters into one single database architecture, fully managed from MySQL Shell and with full MySQL Router integration to make it easy to access the entire architecture.
This presentation covers:
- The various features of InnoDB Clusterset
- How to setup MySQL InnoDB ClusterSet
- Ways to migrate from an existing MySQL InnoDB Cluster into MySQL InnoDB ClusterSet
- How to deal with various failures
- The various features of router integration which makes connection to the database architecture easy.
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)Jean-François Gagné
To get better replication speed and less lag, MySQL implements parallel replication in the same schema, also known as LOGICAL_CLOCK. But fully benefiting from this feature is not as simple as just enabling it.
In this talk, I explain in detail how this feature works. I also cover how to optimize parallel replication and the improvements made in MySQL 8.0 and back-ported in 5.7 (Write Sets), greatly improving the potential for parallel execution on replicas (but needing RBR).
Come to this talk to get all the details about MySQL 5.7 and 8.0 Parallel Replication.
Session presented at Oracle Developer Live - MySQL, 2020. Recording available at https://developer.oracle.com/developer-live/mysql/
Abstract:
MySQL Shell is the new, advanced command-line client and editor for MySQL. It sends SQL statements to MySQL server, supports both the classic MySQL protocol and the newer X protocol, and provides scripting capabilities for JavaScript and Python. But there's more to MySQL Shell than meets the eye. It delivers a natural and powerful interface for all DevOps tasks related to MySQL by providing APIs for development and administration. This session covers MySQL Shell's core features, along with demonstrations of how to use the various APIs and how to extend MySQL Shell. We’ll address the regular interaction with databases, the built-in tools that make DBAs and developers’ lives easier, the easy and flawless set up of HA architectures, and the plugins and extensions framework.
The presentation covers improvements made to the redo logs in MySQL 8.0 and their impact on the MySQL performance and Operations. This covers the MySQL version still MySQL 8.0.30.
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
This presentation by Krzysztof Książek at Percona Live 2017 in Santa Clara, California gives detailed descriptions and comparisons of the leading open source database load balancing technologies
We talk a lot about Galera Cluster being great for High Availability, but what about Disaster Recovery (DR)? Database outages can occur when you lose a data centre due to data center power outages or natural disaster, so why not plan appropriately in advance?
In this webinar, we will discuss the business considerations including achieving the highest possible uptime, analysis business impact as well as risk, focus on disaster recovery itself, as well as discussing various scenarios, from having no offsite data to having synchronous replication to another data centre.
This webinar will cover MySQL with Galera Cluster, as well as branches MariaDB Galera Cluster as well as Percona XtraDB Cluster (PXC). We will focus on architecture solutions, DR scenarios and have you on your way to success at the end of it.
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMiguel Araújo
MySQL InnoDB Cluster and MySQL Shell session presented at Oracle CodeOne2019.
Abstract:
MySQL InnoDB Cluster provides a built-in high-availability solution for MySQL. Combining MySQL Group Replication with MySQL Router and MySQL Shell into an integrated full-stack solution, InnoDB Cluster provides easy setup and management of MySQL instances into a fault-tolerant database service. MySQL Shell is the “control panel” of InnoDB Cluster, enabling the easy and straightforward configuration and management of InnoDB clusters by providing a scriptable and interactive API: the AdminAPI. Recent enhancements and features added to MySQL Shell make the management of InnoDB clusters even more powerful and smoother. Attend this session to get an overview of the latest developments and improved InnoDB Cluster administration tasks.
Notes:
The slideshow includes a video that cannot be seen in slideshare/PDF. If you're interested in it please check the following blog post: https://mysqlhighavailability.com/mysql-innodb-cluster-automatic-node-provisioning/
MySQL Group Replication - HandsOn TutorialKenny Gryp
During this tutorial, attendees have their hands on virtual machines and migrate standard Master - Slave architecture to the new MySQL native Group Replication.
After explaining briefly what is group replication and how this is important for MySQL HA architecture. We will cover how to verify the workload and the scheme to how GR can be used and configured.
Then we will go trough the migration steps with minimal impact on the live system.
Basic administration tasks are covered such as add/remove a node from the cluster. We also play with performance_schema to monitor our Group Replication cluster and understand how to control it.
MySQL InnoDB Cluster / ReplicaSet - Making Provisioning & Troubleshooting as ...Miguel Araújo
Session presented at pre-FOSDEM MySQL Days 2020.
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.
Recent enhancements and features added to MySQL Shell make the management of InnoDB Clusters / ReplicaSets even more powerful and effortless! Full instance provisioning and cluster troubleshooting became easy as 1, 2, 3.
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.
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...
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.
Présentation de MySQL 8.0 est des nouveautés récentes dans les toutes dernières versions ainsi que des informations sur la prochaine beta du MySQL Operator for Kubernetes
MySQL Database Service Webinar: Installing Drupal in oci with mdsFrederic Descamps
How to Install Drupal in OCI using MySQL Database Service.
Discover in this talk two ways to install Drupal on OCI using MDS:
- easy way: using Resource Manager Stacks
- usual way: creating everything manually
MySQL Tech Café #8: MySQL 8.0 for Python DevelopersFrederic Descamps
Usually it seems Python developers don't always think about MySQL as their first choice.... However when test test it with the right connector and MySQL 8.0 they love it !
Join this talk to learn how Python with mysql-connector-python can take advantages of MySQL 8.0.
This means using Standard MySQL Protocol but much nicer the X Protocol. During this session you will see how you can use MySQL Document Store and MySQL as RDBMS on the same session to benefits from both worlds.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
MySQL InnoDB Cluster - Advanced Configuration & Operations
1. Pedro Gomes
MySQL Senior Software Developer
Frédéric Descamps
MySQL Community Manager
EMEA & APAC
MySQL InnoDB Cluster
Advanced Configuration &
Operations
2 / 161
2.
Safe Harbor
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, timing and pricing of any
features or functionality described for Oracle´s product may change and remains at the sole discretion of Oracle
Corporation.
Statement in this presentation relating to Oracle´s future plans, expectations, beliefs, intentions and ptospects
are "forward-looking statements" and are subject to material risks and uncertainties. A detailed discussion of
these factors and other risks that a ect our business is contained in Oracle´s Securities and Exchange
Commission (SEC) lings, including our most recent reports on Form 10-K and Form 10-Q under the heading
"Risk Factors". These lings are available on the SEC´s website or on Oracle´s website at
h p://www.oracle.com/investor. All information in this presentation is current as of September 2019 and Oracle
undertakes no duty to update any statement in light of new information or future events.
Copyright @ 2019 Oracle and/or its affiliates.
3 / 161
3. about us
Who are we ?
Copyright @ 2019 Oracle and/or its affiliates.
4 / 161
4. Pedro Gomes
@distributedpete
MySQL Replication Developer
MySQL Developer since 2012
Portuguese born and raised 🇵🇹
h ps://mysqlhighavailability.com
Copyright @ 2019 Oracle and/or its affiliates.
5 / 161
6. MySQL InnoDB Cluster
New Member Provisioning & Recovery
Copyright @ 2019 Oracle and/or its affiliates.
7 / 161
7. Provisioning VS Recovery
Provisioning a server is the process of con guring and adding data to a server, which
can then potentially be used in a replication topology. Typically, this involves restoring a
backup or snapshot into a given instance.
The distributed recovery is the protocol that runs when a server is added to a cluster, so
that the new server nds a state donor, fetches missing state and synchronizes with the
rest of the cluster automatically.
As of MySQL 8.0.17, the distributed recovery protocol for Group Replication is able to
automatically orchestrate provisioning, in addition to using binary logs, in the process of
synchronizing the new instance with the rest of the group
Copyright @ 2019 Oracle and/or its affiliates.
8 / 161
8. How to Provision a New Member
Incremental Recovery
New node for a recent Cluster
From a Backup
Clone (NEW 8.0.17)
Copyright @ 2019 Oracle and/or its affiliates.
9 / 161
9. Incremental Recovery
Based on the good old Asynchronous replication
Fetches only the missing data based on the member GTIDs info
Also provides the member with group transactional information
Copyright @ 2019 Oracle and/or its affiliates.
10 / 161
10. Based on the brand new Clone plugin
Fetches a full snapshot of the donor data
Replaces the server data and requires its
restart
Still requires incremental recovery for
group transactional information
Clone
Copyright @ 2019 Oracle and/or its affiliates.
11 / 161
11. MySQL InnoDB Cluster Provisioning
binlog binlog
Copyright @ 2019 Oracle and/or its affiliates.
12 / 161
12. MySQL InnoDB Cluster Provisioning
binlog binlog
Copyright @ 2019 Oracle and/or its affiliates.
13 / 161
13. MySQL InnoDB Cluster Provisioning
binlog binlog
Copyright @ 2019 Oracle and/or its affiliates.
14 / 161
14. MySQL InnoDB Cluster Provisioning
binlog binlog
Copyright @ 2019 Oracle and/or its affiliates.
15 / 161
15. MySQL InnoDB Cluster Provisioning
binlog binlog
Copyright @ 2019 Oracle and/or its affiliates.
16 / 161
16. MySQL InnoDB Cluster Provisioning
binlog binlog
hello, I would
like to join !
Copyright @ 2019 Oracle and/or its affiliates.
17 / 161
17. MySQL InnoDB Cluster Provisioning
binlog binlog
I have no
data yet !
Copyright @ 2019 Oracle and/or its affiliates.
18 / 161
18. MySQL InnoDB Cluster Provisioning
binlog binlog
Copyright @ 2019 Oracle and/or its affiliates.
19 / 161
26. MySQL InnoDB Cluster Provisioning
binlog binlog
hello, I would
like to join !
binlog
Copyright @ 2019 Oracle and/or its affiliates.
27 / 161
27. MySQL InnoDB Cluster Provisioning
binlog binlog
hello, I would
like to join !
binlog
And I have
no data yet !
Copyright @ 2019 Oracle and/or its affiliates.
28 / 161
28. MySQL InnoDB Cluster Provisioning
binlog binlog
We are not
able to provide
you incremental data !
Use CLONE !
binlog
Copyright @ 2019 Oracle and/or its affiliates.
29 / 161
33. binlog binlog binlog
restored
backup
Incremental Recovery !
MySQL InnoDB Cluster Provisioning
What kind of provisioning will happen ?
Copyright @ 2019 Oracle and/or its affiliates.
34 / 161
34. MySQL InnoDB Cluster Provisioning
Copyright @ 2019 Oracle and/or its affiliates.
35 / 161
35. MySQL InnoDB Cluster Provisioning
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I want to force the use of Clone when adding an instance even if
Incremental Recovery is possible.
36 / 161
36. MySQL InnoDB Cluster Provisioning
Just specify it in the MySQL Shell:
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I want to force the use of Clone when adding an instance even if
Incremental Recovery is possible.
37 / 161
37. Recovery Process
The recovery process happens when a previous member joins back a Cluster/Group.
By default and if possible (based on GTID set), the Incremental Recovery method is used.
However, sometimes applying a large amount of binary log events might be slower than
performing a Clone. You have the possibility to con gure the treshold:
group_replication_clone_threshold (default is 9223372036854775807 !):
Copyright @ 2019 Oracle and/or its affiliates.
38 / 161
38. Recovery Process (2)
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I want to force the use of Clone when rejoining an instance even if
Incremental Recovery is enough to recover.
39 / 161
39. Recovery Process (2)
It's possible ! You need to connect to the instance you want to rejoin and set
group_replication_clone_threshold to 1.
As Clone will be called and the change is not persisted, no need to set it back to its original
value. Never persist it to 1 or to a really low value on a live Group, never!
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I want to force the use of Clone when rejoining an instance even if
Incremental Recovery is enough to recover.
40 / 161
41. Force a Donor during Clone
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I want to add a node (mysql3) but it should only clone from server
mysql2
42 / 161
42. Force a Donor during Clone
This is again possible, you need to connect on the other members (in this case mysql1 and
unload the clone plugin).
Please note, that to be able to unload the plugin you need to be connected using the
classic protocol (3306).
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I want to add a node (mysql3) but it should only clone from server
mysql2
43 / 161
43. We connect using the classic protocol and
we uninstall the plugin:
Force a Donor during Clone (2)
Copyright @ 2019 Oracle and/or its affiliates.
44 / 161
44. We connect using the classic protocol and
we uninstall the plugin:
Then we add the instance forcing Clone:
Force a Donor during Clone (2)
Copyright @ 2019 Oracle and/or its affiliates.
45 / 161
45. Force a Donor during Clone (3)
Copyright @ 2019 Oracle and/or its affiliates.
46 / 161
46. Force a Donor during Clone (4)
We can also verify this on the new joiner Performance_Schema.clone_status table:
Copyright @ 2019 Oracle and/or its affiliates.
47 / 161
47. Force a Donor during Clone (5)
Don't forget to install the Clone plugin again:
Copyright @ 2019 Oracle and/or its affiliates.
48 / 161
48. Force a Donor during Clone (5)
Don't forget to install the Clone plugin again:
Copyright @ 2019 Oracle and/or its affiliates.
49 / 161
50. Monitoring Provisioning & Recovery process
Currently, when the CLONE is triggered within MySQL Shell, you can follow its progress:
Copyright @ 2019 Oracle and/or its affiliates.
51 / 161
51. Monitoring Provisioning & Recovery process
And we already saw that the status and the progress is also available in performance_schema
tables on the joiner:
Copyright @ 2019 Oracle and/or its affiliates.
52 / 161
53. Incremental Recovery process
It's also possible to evaluate the amount of transactions a member needs to process before
being in sync with the Group when joining. You can nd a User-De ned Report to see that
amount :
More Info: h ps://lefred.be/content/mysql-innodb-cluster-recovery-process-monitoring-
with-the-mysql-shell-reporting-framework/
Copyright @ 2019 Oracle and/or its affiliates.
54 / 161
54. By default the status()
method disables the
extended mode.
It's possible to have much
more information enabling
it.
MySQL InnoDB Cluster - status()
Copyright @ 2019 Oracle and/or its affiliates.
55 / 161
55. MySQL InnoDB Cluster - status({extended})
The extended option allows 4 values (or boolean):
0: disables the command verbosity (default)
1: includes information about the Group Protocol Version, Group name, cluster member
UUIDs, cluster member roles and states as reported by Group Replication and the list of
fenced system variables
2: includes information about transactions processed by connection and applier
3: includes more detailed stats about the replication machinery of each cluster member
Copyright @ 2019 Oracle and/or its affiliates.
56 / 161
56. MySQL InnoDB Cluster - status({extended:1})
Copyright @ 2019 Oracle and/or its affiliates.
57 / 161
57. MySQL InnoDB Cluster - status({extended:2})
Copyright @ 2019 Oracle and/or its affiliates.
58 / 161
58. MySQL InnoDB Cluster - status({extended:3})
Copyright @ 2019 Oracle and/or its affiliates.
59 / 161
59. Monitoring MySQL InnoDB Cluster -
Performance_Schema
Other than the status() in the MySQL Shell, it's possible to get information from
Performance_Schema tables:
Copyright @ 2019 Oracle and/or its affiliates.
60 / 161
60. Monitoring MySQL InnoDB Cluster -
Performance_Schema (2)
Copyright @ 2019 Oracle and/or its affiliates.
61 / 161
61. Monitoring MySQL InnoDB Cluster -
Performance_Schema (3)
Copyright @ 2019 Oracle and/or its affiliates.
62 / 161
62. Monitoring MySQL InnoDB Cluster -
Performance_Schema (4)
Copyright @ 2019 Oracle and/or its affiliates.
63 / 161
63. Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I would like to know which of my Secondary-Master is slower ?
64 / 161
64. Performance_Schema provides to us all what we need to discover which Secondary-Slave
takes more time to "fully replicate" events.
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I would like to know which of my Secondary-Master is slower ?
65 / 161
65. Let's run this bash code on all our Secondary-Masters (mysql1 and mysql2):
for i in $(seq 1 10)
do
if [[ $i -eq 1 ]]; then echo "repl delay transport time time to RL apply time"
mysql -BN -e "
SELECT LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP - LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP
'rep delay (sec)',
LAST_QUEUED_TRANSACTION_START_QUEUE_TIMESTAMP - LAST_QUEUED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP
'transport time',
LAST_QUEUED_TRANSACTION_END_QUEUE_TIMESTAMP - LAST_QUEUED_TRANSACTION_START_QUEUE_TIMESTAMP 'time RL',
LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP - LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP 'apply time'
FROM performance_schema.replication_applier_status_by_worker t1
JOIN performance_schema.replication_connection_status t2
ON t2.channel_name=t1.channel_name
WHERE t1.channel_name='group_replication_applier'";
sleep 2
done
Copyright @ 2019 Oracle and/or its affiliates.
66 / 161
66. Let's run this bash code on all our Secondary-Masters (mysql1 and mysql2):
for i in $(seq 1 10)
do
if [[ $i -eq 1 ]]; then echo "repl delay transport time time to RL apply time"
mysql -BN -e "
SELECT LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP - LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP
'rep delay (sec)',
LAST_QUEUED_TRANSACTION_START_QUEUE_TIMESTAMP - LAST_QUEUED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP
'transport time',
LAST_QUEUED_TRANSACTION_END_QUEUE_TIMESTAMP - LAST_QUEUED_TRANSACTION_START_QUEUE_TIMESTAMP 'time RL',
LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP - LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP 'apply time'
FROM performance_schema.replication_applier_status_by_worker t1
JOIN performance_schema.replication_connection_status t2
ON t2.channel_name=t1.channel_name
WHERE t1.channel_name='group_replication_applier'";
sleep 2
done
This script will query some performance_schema tables 10 times every 2 seconds (we write
on our cluster every 2 secs), and all members have their time in sync: ntpd.
Copyright @ 2019 Oracle and/or its affiliates.
67 / 161
67. Monitoring MySQL InnoDB Cluster -
Performance_Schema (5)
Copyright @ 2019 Oracle and/or its affiliates.
68 / 161
68. Monitoring MySQL InnoDB Cluster -
Performance_Schema (5)
Copyright @ 2019 Oracle and/or its affiliates.
69 / 161
69. Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I would like to estimate how many transactions per second could my
cluster process with the current configuration.
70 / 161
70. To perform this estimation, we will block all writes to a member of our cluster. As a result,
the apply queue will grow on that server. When the queue is large enough, we will enable
writes again on the node and see how many transactions and how much time the node
needed to process everything and be back in sync with the cluster.
Currently, the application is performing 100 tx/sec.
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I would like to estimate how many transactions per second could my
cluster process with the current configuration.
71 / 161
71. On the node that we will lock, let's run this small bash command:
while true
do
mysql -BNe "select now(), transactions_behind, count_transactions_remote_applied
from sys.gr_member_routing_candidate_status, performance_schema.replication_group_member_stats
where member_id=@@server_uuid;"
sleep 1
done
Copyright @ 2019 Oracle and/or its affiliates.
72 / 161
72. On the node that we will lock, let's run this small bash command:
while true
do
mysql -BNe "select now(), transactions_behind, count_transactions_remote_applied
from sys.gr_member_routing_candidate_status, performance_schema.replication_group_member_stats
where member_id=@@server_uuid;"
sleep 1
done
Copyright @ 2019 Oracle and/or its affiliates.
73 / 161
75. So we can estimate that our MySQL InnoDB Cluster is able to process approximately 350
tx/sec.
So what will happen if we increase our workload to 360 tx/sec ?
Copyright @ 2019 Oracle and/or its affiliates.
76 / 161
77. The cluster will start
slowing down and this
might have a major impact
depending of the
consistency level.
Copyright @ 2019 Oracle and/or its affiliates.
78 / 161
78. More Info: h ps://lefred.be/content/using-the-new-mysql-
shell-reporting-framework-to-monitor-innodb-cluster/
Monitoring MySQL InnoDB Cluster - MySQL
Shell UDR
It's also possible to constantly monitor the status of your MySQL InnoDB Cluster using
User-De ned Reports in MySQL Shell:
Copyright @ 2019 Oracle and/or its affiliates.
79 / 161
80. Monitoring MySQL Router (2)
You can then query the REST API using curl:
$ curl -s -u fred:fred
http://192.168.91.2:8080/api/20190715/routes/myCluster_default_rw/destinations
{"items":[{"address":"mysql2","port":3306}]}
Or use/create a plugin for the MySQL Shell.
More Info:
h ps://lefred.be/content/mysqlrouter-8-0-17-and-the-rest-api/
h ps://lefred.be/content/mysql-router-8-0-17s-rest-api-mysql-shell-extensions/
Copyright @ 2019 Oracle and/or its affiliates.
81 / 161
84.
All good ;)
Network monitoring - the basics
Copyright @ 2019 Oracle and/or its affiliates.
85 / 161
85.
When members crash or are expelled
Network monitoring - the basics
Copyright @ 2019 Oracle and/or its affiliates.
86 / 161
86.
When a majority of the
members becomes
unreachable
Network monitoring - the basics
Copyright @ 2019 Oracle and/or its affiliates.
87 / 161
87. Network monitoring - Adapt to faulty networks
To avoid frequent member expels due to faulty networks make use of:
group_replication_member_expel_timeout
Copyright @ 2019 Oracle and/or its affiliates.
88 / 161
88. Network monitoring - Deal with failure scenarios
Con gure your rejoin a empts for each member (this method persists the change)
Copyright @ 2019 Oracle and/or its affiliates.
89 / 161
89. Network monitoring - Deal with failure scenarios
Con gure your rejoin a empts for each member (this method persists the change)
If you prefer to not persist it:
Copyright @ 2019 Oracle and/or its affiliates.
90 / 161
90. Network monitoring - Deal with failure scenarios
Con gure your timeout during loss of quorum
Copyright @ 2019 Oracle and/or its affiliates.
91 / 161
91. Network monitoring - Deal with failure scenarios
Be prepared: whom shall be the primary when failure strikes
Copyright @ 2019 Oracle and/or its affiliates.
92 / 161
92. Network monitoring - Adapt to higher latencies
Copyright @ 2019 Oracle and/or its affiliates.
93 / 161
93. Network monitoring - Adapt to higher latencies
group replication write concurrency
Copyright @ 2019 Oracle and/or its affiliates.
94 / 161
94. Network monitoring - Adapt to higher latencies
group replication write concurrency
Copyright @ 2019 Oracle and/or its affiliates.
95 / 161
95. Network monitoring - Adapt to higher latencies
group replication write concurrency
Copyright @ 2019 Oracle and/or its affiliates.
96 / 161
96. Network monitoring - Adapt to higher latencies
Copyright @ 2019 Oracle and/or its affiliates.
97 / 161
97. Network monitoring - Adapt to higher latencies
Copyright @ 2019 Oracle and/or its affiliates.
98 / 161
98. Network monitoring - Adapt to higher latencies
Copyright @ 2019 Oracle and/or its affiliates.
99 / 161
99. Network monitoring - Adapt to higher latencies
Copyright @ 2019 Oracle and/or its affiliates.
100 / 161
100. Con gure your write
concurrency in the group
Network monitoring - Adapt to higher latencies
Copyright @ 2019 Oracle and/or its affiliates.
101 / 161
102. Upgrading to a newer version
Before upgrading, don't forget to use util.upgradeChecker() in MySQL Shell. This
operation must be performed on the Primary Master:
Copyright @ 2019 Oracle and/or its affiliates.
103 / 161
103. Upgrading Process
PM SM SM
8.0.16 8.0.16 8.0.16
Copyright @ 2019 Oracle and/or its affiliates.
104 / 161
104. Upgrading Process
PM SM SM
8.0.16 8.0.16 8.0.16
util.checkForServerUpgrade( )PM
Copyright @ 2019 Oracle and/or its affiliates.
105 / 161
105. Upgrading Process
PM SM
8.0.16 8.0.16 8.0.16
stop mysqld on a SM
Copyright @ 2019 Oracle and/or its affiliates.
106 / 161
106. Upgrading Process
PM SM
8.0.16 8.0.16 8.0.17
upgrade MySQL binaries
Copyright @ 2019 Oracle and/or its affiliates.
107 / 161
120. Upgrading Process Info
The lowest version of a Group must always be the Primary Master
If ejected from the Group, the lowest version instance won't be able to rejoin the Group
again
Copyright @ 2019 Oracle and/or its affiliates.
121 / 161
121. Downgrading
Downgrading an existing instance won't work as downgrading MySQL Server is not
supported:
[ERROR] [MY-013171] [InnoDB] Cannot boot server version 80016 on data directory built by version 80017.
Downgrade is not supported.
However it's possible to downgrade your MySQL InnoDB Cluster without downtime, by
using a previous backup.
Before 8.0.17, any 8.0.x could join a MySQL InnoDB Cluster 8.0. Since 8.0.17, the minor
version is also checked.
Copyright @ 2019 Oracle and/or its affiliates.
122 / 161
122. Downgrading (2)
So if you want to have a lower version to join a cluster, you need to set
group_replication_allow_local_lower_version_join to ON on the joiner.
But don't forget that this instance running with a lower version should be promoted to be
the Primary-Master as soon as possible to avoid any possible issues related to protocol and
variable di erences.
Copyright @ 2019 Oracle and/or its affiliates.
123 / 161
123. Backup
Taking a backup of your MySQL InnoDB Cluster is trivial. You can use exactly the same
method as you are using for a standalone MySQL Server:
Physical (MySQL Enterperise Backup (MEB), Xtrabackup)
Logical (mysqldump, mysqlpump, mydumper)
Snapshot (lvm, MySQL Clone)
Copyright @ 2019 Oracle and/or its affiliates.
124 / 161
124. Backup (2)
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA using MySQL InnoDB Cluster retains data consistency, I only want to
backup one member of the Group and preferably a Secondary Master, no need
to waste disk space with multiple backups of the same data.
125 / 161
125. Backup (2)
This is possible ! Let's de ne the best backup solution.
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA using MySQL InnoDB Cluster retains data consistency, I only want to
backup one member of the Group and preferably a Secondary Master, no need
to waste disk space with multiple backups of the same data.
126 / 161
126. Backup (3)
The perfect backup solution for you MySQL InnoDB Cluster, should then perform the
following steps:
check if the node where the script run is part of the cluster
check if the node is indeed a secondary master
eventually check if the node is lagging behind (large apply queue)
ensure that the backup is not running on another member
Copyright @ 2019 Oracle and/or its affiliates.
127 / 161
127. Backup (3)
The perfect backup solution for you MySQL InnoDB Cluster, should then perform the
following steps:
check if the node where the script run is part of the cluster
check if the node is indeed a secondary master
eventually check if the node is lagging behind (large apply queue)
ensure that the backup is not running on another member
Here, you can nd a working script calling MEB to use as a cron job :
h ps://lefred.be/content/how-to-backup-your-innodb-cluster/
Copyright @ 2019 Oracle and/or its affiliates.
128 / 161
128. DDLs
There is nothing special about DDLs. When DDLs are performed, the cluster is not blocked
completely.
Of course, concurent DDLs and DMLs are not a good idea when using a cluster in Multi-
Primary mode.
If you use a Multi-Primary Cluster, you must swicth to Single-Primary mode the time of the
DDL.
Don't forget that MySQL 8.0 supports also Instant DDLs like adding a column.
Copyright @ 2019 Oracle and/or its affiliates.
129 / 161
129. DDLs on Multi-Primary Clusters
Copyright @ 2019 Oracle and/or its affiliates.
130 / 161
130. DDLs on Multi-Primary Clusters
Copyright @ 2019 Oracle and/or its affiliates.
131 / 161
132. mysql> show variables like
'group_replication_consistency';
+-------------------------------+----------+
| Variable_name | Value |
+-------------------------------+----------+
| group_replication_consistency | EVENTUAL |
+-------------------------------+----------+
Consistency: EVENTUAL (default)
By default, there is no synchronization point for the transactions, when you perform a write
on a node, if you immediately read the same data on another node, it is eventually there.
Copyright @ 2019 Oracle and/or its affiliates.
133 / 161
133. mysql> show variables like
'group_replication_consistency';
+-------------------------------+----------+
| Variable_name | Value |
+-------------------------------+----------+
| group_replication_consistency | EVENTUAL |
+-------------------------------+----------+
Consistency: EVENTUAL (default)
By default, there is no synchronization point for the transactions, when you perform a write
on a node, if you immediately read the same data on another node, it is eventually there.
Since MySQL 8.0.16, we have the possibility to
set the synchronization point at read or at write or both (globally or for a session).
Copyright @ 2019 Oracle and/or its affiliates.
134 / 161
134. Consistency: BEFORE (READ)
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I want to load balance my reads without deploying additional
restrictions on which server I read from to avoid reading stale data, my group
writes are much more than my group reads.
135 / 161
135. Consistency: BEFORE (READ)
Copyright @ 2019 Oracle and/or its affiliates.
As a DBA, I want to load balance my reads without deploying additional
restrictions on which server I read from to avoid reading stale data, my group
writes are much more than my group reads.
As a developer, I want specific transactions in my workload to always read up-
to-date data from the group, so that whenever that sensitive data is updated, I
will enforce that reads shall read the most up to date value.
136 / 161
137. Consistency: AFTER (WRITE)
Copyright @ 2019 Oracle and/or its affiliates.
I want to load balance my reads without deploying additional restrictions on
which server I read from to avoid reading stale data, my group writes are
much less than my group reads.
138 / 161
138. Consistency: AFTER (WRITE)
Copyright @ 2019 Oracle and/or its affiliates.
I want to load balance my reads without deploying additional restrictions on
which server I read from to avoid reading stale data, my group writes are
much less than my group reads.
I have a group that mostly does reads-only, I want my read-write transactions
to be applied everywhere once they commit, so that subsequent reads are done on
up-to-date data that includes my latest write. Without paying at reads.
139 / 161
140. Consistency: BEFORE_AND_AFTER
Copyright @ 2019 Oracle and/or its affiliates.
I want that my application to replicate data as close as possible to synchronous.
And of course I'm OK to pay the required price !
141 / 161
142. Defining Consistency
The consistency level of the MySQL InnoDB Cluster can be de ned during the creation:
Copyright @ 2019 Oracle and/or its affiliates.
143 / 161
143. Defining Consistency (2)
The consistency can be globally changed in MySQL Shell:
It's also possible and recommended for the most restrictive levels to de ne it at
statement session level:
Copyright @ 2019 Oracle and/or its affiliates.
144 / 161
144. MySQL InnoDB Cluster
MySQL Router Specific Settings
Copyright @ 2019 Oracle and/or its affiliates.
145 / 161
145. MySQL Router : Metadata Cache
The se ings to access MySQL InnoDB Cluster's Metadata Cache is de ned in the
[metadata_cache:<name>] section of MySQL Router's con g le.
Copyright @ 2019 Oracle and/or its affiliates.
146 / 161
146. MySQL Router : Metadata Cache
The se ings to access MySQL InnoDB Cluster's Metadata Cache is de ned in the
[metadata_cache:<name>] section of MySQL Router's con g le.
The most interesting se ings is:
ttl: Time to live (in seconds) of information in the metadata cache. One milissecond is
0.001. To continously query the the metadata cache in a tight loop, set it to 0 (the
default value is 0.5).
Copyright @ 2019 Oracle and/or its affiliates.
147 / 161
147. MySQL Router : Metadata Cache (2)
As of MySQL Router 8.0.17, ttl is now obsolete as you can enable
use_gr_noti cations to refresh metadata on each of the four noti cations that Group
Replication sends:
group_replication/membership/quorum_loss
group_replication/membership/view
group_replication/status/role_change
group_replication/status/state_change
Copyright @ 2019 Oracle and/or its affiliates.
148 / 161
148. MySQL Router
By default, when bootstrapped, MySQL Router is con gured using rst-available as
routing strategy for R/W connections (to the Primary-Master).
For R/O connections (to Secondary-Masters), the strategy is round-robin-with-fallback.
This is actually setup for the MySQL Classic Protocol and MySQL X Protocol.
Copyright @ 2019 Oracle and/or its affiliates.
149 / 161
149. MySQL Router : Routing Strategy Methods
rst-available: the new connection is routed to the rst available server from the
destinations list. In case of failure, the next available server is used. This cycle continues
until all servers are unavailable.
round-robin-with-fallback: for load-balancing, each new connection is made to the
next available secondary server in a round-robin fashion. If a secondary server is not
available then servers from the primary list are used in round-robin fashion.
Copyright @ 2019 Oracle and/or its affiliates.
150 / 161
150. MySQL Router : Routing Strategy Methods
round-robin: for load-balancing, each new connection is made to the next available
server in a round-robin fashion.
next-available: like rst-available, in that the new connection is routed to the rst
available server from the destinations list. Unlike rst-available, if a server is marked as
unreachable then it gets discarded and is never used again as a destination
Copyright @ 2019 Oracle and/or its affiliates.
151 / 161
151. MySQL Router : Routing destinations
Now that we have de ned a strategy for the MySQL Router, we also need to de ne
destinations.
Destinations (desinations in [routing:<name>] section), can be a comma-separated list of
MySQL Servers, or a metadata-cache de nition:
Copyright @ 2019 Oracle and/or its affiliates.
152 / 161
152. MySQL Router : Routing destinations
Now that we have de ned a strategy for the MySQL Router, we also need to de ne
destinations.
Destinations (desinations in [routing:<name>] section), can be a comma-separated list of
MySQL Servers, or a metadata-cache de nition:
[routing:PerconaLiveEU_default_rw]
bind_address=0.0.0.0
bind_port=6446
destinations=metadata-cache://PerconaLiveEU/default?role=PRIMARY
routing_strategy= rst-available
protocol=classic
Copyright @ 2019 Oracle and/or its affiliates.
153 / 161
154. Instance Specific Settings
Within the MySQL Shell you can de ne some Group Replication speci c se ings via the
Admin API that will only a ect the targeted instance:
exitStateAction: string value indicating the group replication exit state action.
(ABORT_SERVER, READ_ONLY and OFFLINE_MODE [8.0.18])
memberWeight: integer value with a percentage weight for automatic primary election
on failover.
autoRejoinTries: integer value to de ne the number of times an instance will a empt to
rejoin the cluster after being expelled.
Copyright @ 2019 Oracle and/or its affiliates.
155 / 161
155. Instance Specific Settings (2)
label: a string identi er of the instance.
Copyright @ 2019 Oracle and/or its affiliates.
156 / 161
156. Group Specific Settings
Within the MySQL Shell you have the possibility to de ne some Group speci c se ings via
the Admin API:
clusterName: string value to de ne the cluster name.
exitStateAction: string value indicating the group replication exit state action.
memberWeight: integer value with a percentage weight for automatic primary election
on failover.
consistency: string value indicating the consistency guarantees that the cluster
provides.
Copyright @ 2019 Oracle and/or its affiliates.
157 / 161
157. Group Specific Settings (2)
expelTimeout: integer value to de ne the time period in seconds that cluster members
should wait for a non-responding member before evicting it from the cluster.
autoRejoinTries: integer value to de ne the number of times an instance will a empt to
rejoin the cluster after being expelled.
disableClone: boolean value used to disable the clone usage on the cluster.
Copyright @ 2019 Oracle and/or its affiliates.
158 / 161
158. Upgrade to MySQL 8.0
It's time to upgrade to MySQL 8.0, the fastest MySQL adoption release ever !
Copyright @ 2019 Oracle and/or its affiliates.
159 / 161