Slides sur MariaDB/MySQL pour administrateurs systèmes confirmés.
Ces slides contiennent des rappels sur les verrous et des cas d'utilisation classique de MariaDB/MySQL.
Puis une partie performances et haute disponibilité avec réplications et cluster Galera.
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.
Optimiser sa base de donnée est l’obsession principale du DBA. Savoir identifier, anticiper et régler les problèmes de performances constituent une vrai valeur ajoutée et cela n’est pas donné à tout le monde. Satisfaction personnelle, satisfaction des décideurs maissurtout satisfaction du client…
Numéro un pour les applications en ligne, MySQL se positionne maintenant sur le secteur des applications d’entrepôts de données et d’informatique décisionnelle…
Slides sur MariaDB/MySQL pour administrateurs systèmes confirmés.
Ces slides contiennent des rappels sur les verrous et des cas d'utilisation classique de MariaDB/MySQL.
Puis une partie performances et haute disponibilité avec réplications et cluster Galera.
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.
Optimiser sa base de donnée est l’obsession principale du DBA. Savoir identifier, anticiper et régler les problèmes de performances constituent une vrai valeur ajoutée et cela n’est pas donné à tout le monde. Satisfaction personnelle, satisfaction des décideurs maissurtout satisfaction du client…
Numéro un pour les applications en ligne, MySQL se positionne maintenant sur le secteur des applications d’entrepôts de données et d’informatique décisionnelle…
L’administration des environnements en cluster MySQL, tel que Percona XtraDB Cluster, nécessitent plus d'efforts et de ressources que les systèmes autonomes.
Percona XtraDB Cluster est une solution de cluster multi-master basée sur une réplication synchrone. Elle intègre Percona Server, Percona XtraBackup et Galera Cluster en un seul ensemble de haute disponibilité et de haute évolutivité.
Une vision globale de tous les nœuds d’un cluster de base données est nécessaire pour bien en comprendre la performance. En l’absence de noeud centralisé, chaque nœud peut donner un point de vue différent du cluster et les variables sont en rapport avec le nœud à partir duquel vous les interrogez. Par conséquent, l'accès aux données de tous les nœuds vous permet de traquer la source du problème.
Ce nouveau séminaire en ligne vous aidera à mieux exécuter le monitoring et la gestion de Percona XtraDB Cluster grâce notamment à l’outil ClusterControl créé par Severalnines qui vous sera démontré en direct.
ClusterControl est un outil de gestion de cluster qui facilite le monitoring et la gestion de Percona XtraDB Cluster. Il fournit aux DBAs les bons paramètres pour gérer et optimiser les applications tout au long de la phase de développement et surtout en cours de production.
Durant ce séminaire en ligne, Dimitri, Ingénieur Avant-Ventes Percona et Vinay de Severalnines vous montrent comment tirer parti des graphiques de tendance de ClusterControl, des tableaux de bord, alertes et autres caractéristiques afin de surveiller le rendement et traquer l’origine des problèmes afin de mieux les éviter.
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 discusses preparations for new GIS features in MySQL 8.0. It provides an overview of GIS basics like geometries and spatial reference systems. In MySQL 8.0, the world will be able to be flat or ellipsoidal, and operations on geometries in geographic spatial reference systems will use geographic calculations. The document recommends using the correct spatial reference system IDs now, longitude-latitude axis ordering, and following development of MySQL 8.0 GIS features.
This document provides an overview of use cases for the ProxySQL database proxy. It discusses how ProxySQL can be used to:
1. Improve scalability through features like connection pooling, read/write splitting, and sharding.
2. Enhance high availability with seamless failover, load balancing, and cluster awareness.
3. Enable advanced query capabilities such as caching, rewriting, blocking, and routing.
4. Provide manageability tools for authentication, runtime configuration, and monitoring.
The document describes several specific scenarios where ProxySQL can optimize operations, help solve performance issues, and empower database administrators. It also outlines how ProxySQL has been tested at large scale supporting millions of
This document discusses common table expressions (CTEs) in MySQL 8.0. It begins with an introduction to CTEs, explaining that they allow for subqueries to be defined before the main query similar to derived tables but with better performance and readability. It then provides examples of non-recursive and recursive CTEs. For non-recursive CTEs, it demonstrates finding the best and worst month of sales. For recursive CTEs, it shows examples of generating a sequence of numbers from 1 to 10 and generating missing dates in a date sequence. The document emphasizes that CTEs only need to be materialized once, improving performance over derived tables.
The document discusses proposed changes to MySQL Server 8.0 and replication defaults. Some key areas discussed include changing the default character set to UTF8MB4, turning on the event scheduler by default, increasing some session buffer sizes, enabling security defaults, and enabling replication features like binary logging and GTIDs by default. The document seeks feedback from users on the proposed changes.
What you wanted to know about MySQL, but could not find using inernal instrum...Sveta Smirnova
This document discusses various ways that MySQL could provide more detailed instrumentation and troubleshooting information. It begins by noting that while modern versions have online documentation, errors are often discovered from log files after context is lost. It then provides examples of specific bugs filed requesting additional metrics around areas like connections, replication, tracing, and temporary tables to help troubleshoot issues. The document argues that more visibility into internal operations could help identify causes of problems.
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.
MySQL/MariaDB replication is asynchronous. You can make replication faster by using better hardware (faster CPU, more RAM, or quicker disks), or you can use parallel replication to remove it single-threaded limitation; but lag can still happen. This talk is not about making replication faster, it is how to deal with its asynchronous nature, including the (in-)famous lag.
We will start by explaining the consequences of asynchronous replication and how/when lag can happen. Then, we will present the solution used at Booking.com to avoid both creating lag and minimize the consequence of stale reads on slaves (hint: this solution does not mean reading from the master because this does not scale).
Once all above is well understood, we will discuss how Booking.com’s solution can be improved: this solution was designed years ago and we would do this differently if starting from scratch today. Finally, I will present an innovative way to avoid lag: the no-slave-left-behind MariaDB patch.
Using Optimizer Hints to Improve MySQL Query Performanceoysteing
The document discusses using optimizer hints in MySQL to improve query performance. It covers index hints to influence which indexes the optimizer uses, join order hints to control join order, and subquery hints. New optimizer hints introduced in MySQL 5.7 and 8.0 are also presented, including hints for join strategies, materialized intermediate results, and query block naming. Examples are provided to illustrate how hints can be used and their behavior.
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.
Deploying Immutable infrastructures with RabbitMQ and SolrJordi Llonch
This document discusses deploying immutable infrastructures for RabbitMQ and Solr clusters. It describes how to deploy a new RabbitMQ cluster using federated queues to migrate services from the old to new cluster with zero downtime. For Solr, it explains how to deploy a new cluster and reindex data from the old cluster using double near real-time indexing before switching search traffic over. Maintaining both clusters allows for A/B testing, performance testing, and functional testing of new configurations without impacting real users.
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.
MySQL Group Replicatio in a nutshell - MySQL InnoDB ClusterFrederic Descamps
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.
L’administration des environnements en cluster MySQL, tel que Percona XtraDB Cluster, nécessitent plus d'efforts et de ressources que les systèmes autonomes.
Percona XtraDB Cluster est une solution de cluster multi-master basée sur une réplication synchrone. Elle intègre Percona Server, Percona XtraBackup et Galera Cluster en un seul ensemble de haute disponibilité et de haute évolutivité.
Une vision globale de tous les nœuds d’un cluster de base données est nécessaire pour bien en comprendre la performance. En l’absence de noeud centralisé, chaque nœud peut donner un point de vue différent du cluster et les variables sont en rapport avec le nœud à partir duquel vous les interrogez. Par conséquent, l'accès aux données de tous les nœuds vous permet de traquer la source du problème.
Ce nouveau séminaire en ligne vous aidera à mieux exécuter le monitoring et la gestion de Percona XtraDB Cluster grâce notamment à l’outil ClusterControl créé par Severalnines qui vous sera démontré en direct.
ClusterControl est un outil de gestion de cluster qui facilite le monitoring et la gestion de Percona XtraDB Cluster. Il fournit aux DBAs les bons paramètres pour gérer et optimiser les applications tout au long de la phase de développement et surtout en cours de production.
Durant ce séminaire en ligne, Dimitri, Ingénieur Avant-Ventes Percona et Vinay de Severalnines vous montrent comment tirer parti des graphiques de tendance de ClusterControl, des tableaux de bord, alertes et autres caractéristiques afin de surveiller le rendement et traquer l’origine des problèmes afin de mieux les éviter.
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 discusses preparations for new GIS features in MySQL 8.0. It provides an overview of GIS basics like geometries and spatial reference systems. In MySQL 8.0, the world will be able to be flat or ellipsoidal, and operations on geometries in geographic spatial reference systems will use geographic calculations. The document recommends using the correct spatial reference system IDs now, longitude-latitude axis ordering, and following development of MySQL 8.0 GIS features.
This document provides an overview of use cases for the ProxySQL database proxy. It discusses how ProxySQL can be used to:
1. Improve scalability through features like connection pooling, read/write splitting, and sharding.
2. Enhance high availability with seamless failover, load balancing, and cluster awareness.
3. Enable advanced query capabilities such as caching, rewriting, blocking, and routing.
4. Provide manageability tools for authentication, runtime configuration, and monitoring.
The document describes several specific scenarios where ProxySQL can optimize operations, help solve performance issues, and empower database administrators. It also outlines how ProxySQL has been tested at large scale supporting millions of
This document discusses common table expressions (CTEs) in MySQL 8.0. It begins with an introduction to CTEs, explaining that they allow for subqueries to be defined before the main query similar to derived tables but with better performance and readability. It then provides examples of non-recursive and recursive CTEs. For non-recursive CTEs, it demonstrates finding the best and worst month of sales. For recursive CTEs, it shows examples of generating a sequence of numbers from 1 to 10 and generating missing dates in a date sequence. The document emphasizes that CTEs only need to be materialized once, improving performance over derived tables.
The document discusses proposed changes to MySQL Server 8.0 and replication defaults. Some key areas discussed include changing the default character set to UTF8MB4, turning on the event scheduler by default, increasing some session buffer sizes, enabling security defaults, and enabling replication features like binary logging and GTIDs by default. The document seeks feedback from users on the proposed changes.
What you wanted to know about MySQL, but could not find using inernal instrum...Sveta Smirnova
This document discusses various ways that MySQL could provide more detailed instrumentation and troubleshooting information. It begins by noting that while modern versions have online documentation, errors are often discovered from log files after context is lost. It then provides examples of specific bugs filed requesting additional metrics around areas like connections, replication, tracing, and temporary tables to help troubleshoot issues. The document argues that more visibility into internal operations could help identify causes of problems.
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.
MySQL/MariaDB replication is asynchronous. You can make replication faster by using better hardware (faster CPU, more RAM, or quicker disks), or you can use parallel replication to remove it single-threaded limitation; but lag can still happen. This talk is not about making replication faster, it is how to deal with its asynchronous nature, including the (in-)famous lag.
We will start by explaining the consequences of asynchronous replication and how/when lag can happen. Then, we will present the solution used at Booking.com to avoid both creating lag and minimize the consequence of stale reads on slaves (hint: this solution does not mean reading from the master because this does not scale).
Once all above is well understood, we will discuss how Booking.com’s solution can be improved: this solution was designed years ago and we would do this differently if starting from scratch today. Finally, I will present an innovative way to avoid lag: the no-slave-left-behind MariaDB patch.
Using Optimizer Hints to Improve MySQL Query Performanceoysteing
The document discusses using optimizer hints in MySQL to improve query performance. It covers index hints to influence which indexes the optimizer uses, join order hints to control join order, and subquery hints. New optimizer hints introduced in MySQL 5.7 and 8.0 are also presented, including hints for join strategies, materialized intermediate results, and query block naming. Examples are provided to illustrate how hints can be used and their behavior.
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.
Deploying Immutable infrastructures with RabbitMQ and SolrJordi Llonch
This document discusses deploying immutable infrastructures for RabbitMQ and Solr clusters. It describes how to deploy a new RabbitMQ cluster using federated queues to migrate services from the old to new cluster with zero downtime. For Solr, it explains how to deploy a new cluster and reindex data from the old cluster using double near real-time indexing before switching search traffic over. Maintaining both clusters allows for A/B testing, performance testing, and functional testing of new configurations without impacting real users.
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.
MySQL Group Replicatio in a nutshell - MySQL InnoDB ClusterFrederic Descamps
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.
Management et Leadership.
Les dimensions clés du management et du leadership.
Les compétences fondamentales à l’exercice du management.
Les nouveaux enjeux de la performance managériale.
4 Minutes pour comprendre le statut d'auto-entrepreneurBenjamin Poisson
Présentation du régime des micro-entreprises (ex-autoentrepreneur) simple et rapide. Une petite boîte à outil à l'usage des freelances/travailleurs indépendants souhaitant savoir :
- Qui peut devenir auto-entrepreneur ?
- Quelles activités sont concernées (artisanale, mixte, libéral)
- Quels seuils de chiffre d'affaires ?
- Le régime social/fiscal du micro-entrepreneur
- Comment créer son activité d'auto-entrepreneur ?
Ces informations sont tirées de sources internet, elles sont à revérifier par vos soins.
Fait maison à Rennes. Visitez : http://www.pesket.com
Seminare, Workshops und Vorträge zur Verbesserung der persönlichen Wirkung. Weiterbildung in Sachen optimale Präsentationen und Vorträge. Sie erhalten wertvolles Know-how, wie Profis präsentieren. Nach dem Seminar können Sie technische Details emotional aufladen. Sie optimieren Ihre Rhetorik und Ihre Körpersprache. Sie werden sicherer in Ihrer Präsentationsdramaturgie – Sie präsentieren danach "Von Höhepunkt zu Höhepunkt".
Ein guter Auftritt ist mehr als Rhetorik. Denn eine gute Präsentation ist eine Kunst und jede gelungene Präsentation ein Geschenk, weil sie Präsentator und Zuhörer sowohl in der Sache als auch im Gefühl miteinander verbindet. Ein exzellenter Auftritt macht Eindruck durch seinen unverwechselbaren Ausdruck. Hier spielt etwas “Magi-sches“ die entscheidende Rolle. Jeder unspektakuläre Auftritt geht im Mahlstrom der Normalität unter.
Mehr unter: www.FolienMagie.de
Omo Linguistica 2002
is a UNI ver SOL science
For increase Sense
science to increase the development of life
and social equilibrium condition
by Universal language
of stimulating
and waking up from the matrix of self-indulgence
self-destruction or disconnection from reality
is a tool to overcome the psychosis
paranoid not call things by their name
of not being oriented to
break the "programming" auto-un-knowledgeable
Experiências de uma vida inspiradora, em um trabalho fantástico e dias incríveis passados na guerra civil de Angola. Amor, dedicação, entrega, compaixão, resiliência e coragem. Vale conferir!
Présentation effectuée aux Expériences 2016 de Microsoft France par Christophe Villeneuve et Benjamin Talmard : "Open source et microsoft azure reve ou realite ?"
Open Source et Microsoft Azure, rêve ou réalité ?Microsoft
"Node.JS, MariaDb, MongoDb, Python, Ruby on Rails, PHP... toutes ces technologies et beaucoup d'autres ont deux points commun : elles sont Open Source et fonctionnent sur Microsoft Azure.
Faisons un point rapide sur la stratégie de Microsoft sur le sujet et démontrons les atouts d'Azure à travers l'exemple d'un projet web professionnel.
Celui-ci s’appuiera sur des technologies ouvertes : Drupal pour le CMS, PHP pour le langage, Linux pour le système d'exploitation, MariaDB pour la base de données ou encore Redis pour le cache distribué.
En plus d’aborder des nouveautés de l’offre Azure, cette session sera également l’occasion d’aborder les différents types de services disponibles dans Azure (infrastructure, plateforme, applicatif) et les questions à se poser pour choisir entre ceux-ci."
Le GUSS vous a offert l'occasion de rencontrer l'équipe de DBA de Criteo qui vous ont parlé de leur quotidien:
L’organisation de l’équipe DBA,
La gestion de l’infrastructure,
Notre implémentation de la réplication SQL,
Le déploiement du code SQL en production (Intégration continue)
Automatisation et Gestion de Cluster de Bases de Données MariaDB RoadshowMariaDB Corporation
Automatisation et Gestion de Cluster de Bases de Données by Jean-Jerome Schmidt, Severalnines
Presented 26.6.2014 at the MariaDB Roadshow in Paris, France.
EMC offre des solutions de stockage software defined intelligentes, qui permettent aux entreprises de réduire leurs frais de gestion via l'automatisation des fonctions au sein des silos de stockage traditionnels. Découvrez VIPR et ECS.
Présentation d'Emmanuel Bernard
Mettre en œuvre un plan de reprise d’activité après un désastre est un élément essentiel de la gestion d’une production informatique. Le plan de secours est un élément indispensable mais aussi bien souvent très onéreux, d’autant plus que dans la majorité des cas, et on l’espère tous, le site de secours de sera jamais utilisé. L’idée est donc séduisante d’utiliser le Cloud Computing pour mettre en œuvre ce site de secours. Tout n’est cependant pas réalisable, et il faut être prudent dans son projet d’analyse de faisabilité et de mise en œuvre. Un nombre croissant de demandes de ce type est adressé à Microsoft pour l’analyse et le déploiement de sites de secours sur Azure, le cloud de Microsoft. Au cours de cette session, ces différents modèles de gestion d’un désastre seront expliqués, et illustrés par des cas d’usage fréquemment utilisés.
Speakers :
Une introduction pour montrer les nouvelles options de MariaDB 10 et des autres fork de MySQL.
A small introduction to show you what interesting in MariaDB 10 and the others fork of MySQL
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...AZUG FR
Comment mettre en place un déploiement automatisé sans frictions. Présentation d’Azure Container Services orchestré par DC/OS pour piloter votre pipeline de déploiement Docker.
Les containers docker vu par un chef cuisinier et un mécanicienRachid Zarouali
Les containers docker sont partout aujourd'hui, nos boites mails google/office365, nos applications web, notre accès pour les rendez-vous médicaux, les avions, ...
Ils sont partout mais pourtant pas toujours facile a appréhender, et pourtant, ils ont beaucoup plus de similitude avec des métiers de notre quotidien qu'il n'y parait.
Lors de ce webinar, je vous presenter ces fameux containers Docker, vu par un chef cuisiner et un mécanicien automobile et vous ferez qu'il a beaucoup de points communs.
OpenStack stratégie: fondation, acteurs et composantsJonathan Le Lous
Cette présentation est un retour de l'OpenStack Summit 2013 à Portland. Elle a été présentée lors du Meetup Cloud open source : http://www.meetup.com/Technologies-libres-open-source/
Similaire à Jeudis du Libre - 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.
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.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...Horgix
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the MongoDB Paris User Group in June 2024 about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
3. MySQL InnoDB Cluster
Quand Haute Disponibilité et facilité de déploiement font bon ménage
Jeudis du Libre - Mars 2017
3 / 124
4.
Safe Harbor Statement
The following is intended to outline our generalproduct direction. It isintended for
information purpose only, and may not be incorporated into any contract. It isnot a
commitment to deliver any material, code, or functionality, and should not be relied up in
making purchasing decisions. Thedevelopment, release and timing of any features or
functionality described for Oracle's product remains at thesole discretion of Oracle.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
4 / 124
9. Notre vision on 4 étapes
MySQLDocumentStore
ModèleRelationnel&Document
HauteDispoMySQL
HauteDispoprêteàl'emploi
"Sclale-Up"V ertical
Basculementautomatique
"Sclale-Up"Horizontal
Sharding
E1 E3
E2 E4
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
9 / 124
10. Architecture de l´étape 2
Application
MySQLConnector
MySQLRouter
MySQLShell
InnoDB
cluster
Application
MySQLConnector
MySQLRouter
Mp
M
M
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
10 / 124
11. Architecture de l´étape 3
Application
MySQLConnector
MySQLRouter
MySQLShell
InnoDB
cluster
Application
MySQLConnector
MySQLRouter
Mp
M
M
S1 S2 S3 S4 S...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
11 / 124
12. Architecture de l´étape 4
Application
MySQLConnector
MySQLRouter
MySQLShell
Application
MySQLConnector
MySQLRouter
InnoDB
cluster
Mp
M
M
S2 S3 S4 S...S1
InnoDB
cluster
Mp
M
M
S1 S2 S3 S4 S...
InnoDB
cluster
Mp
M
M
S1 S2 S3 S4 S...
Application
MySQLConnector
MySQLRouter
Application
MySQLConnector
MySQLRouter
Application
MySQLConnector
MySQLRouter
replicaset1
replicaset2
replicaset3
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
12 / 124
13. Group Replication: le coeur de MySQL InnoDB
Cluster
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
13 / 124
14. Group Replication: le coeur de MySQL InnoDB
Cluster
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
14 / 124
15. Mais avant d'aller plus loin...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
15 / 124
17. Haute Disponibilité
La haute disponibilité est un termesouventutiliséeninformatique,àproposd
´architecture de système ou d´unservicepour désigner lefaitquecettearchitectureouce
service a un taux de disponibilitéconvenable.
Deux moyens complémentairessont utilisés pour améliorer la haute disponibilité :
la mise en place d´une infrastructure matérielle spécialisée, généralement en se
basantsur de la redondance matérielle. Est alors créé un cluster de haute-
disponibilité (par opposition àun cluster de calcul) : une grappe d´ordinateursdont le
but est d´assurer un service en évitant aumaximum les indisponibilités ;
la mise en place de processus adaptés permettant de réduire les erreurs, et d
´accélérer la reprise en cas d´erreur. ITILcontient de nombreux processus de ce type.
Source: WikipédiaCopyright @ 2017 Oracle and/or its affiliates. All rights reserved.
17 / 124
18. Les principes de la Haute Disponibilité
Redondance des services/desdonnées
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
18 / 124
19. Les principes de la Haute Disponibilité
Redondance des services/desdonnées
Réduire l'impact d´une panne
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
19 / 124
20. Les principes de la Haute Disponibilité
Redondance des services/desdonnées
Réduire l'impact d´une panne
Basculement lors d´un problèmeou en casde maintenance
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
20 / 124
21. Les principes de la Haute Disponibilité
Redondance des services/desdonnées
Réduire l'impact d´une panne
Basculement lors d´un problèmeou en casde maintenance
Récupération de la perte de redoncance
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
21 / 124
22. Redondance de bases de données
Comment y parvient-on ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
22 / 124
23. Redondance de bases de données
Comment y parvient-on ?
Il existe plusieurs solutions, certaines bien pires que d´autres ;-)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
23 / 124
24. Redondance de bases de données
Comment y parvient-on ?
Il existe plusieurs solutions, certaines bien pires que d´autres ;-)
utilisation d´un disque partagé (SAN)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
24 / 124
25. Redondance de bases de données
Comment y parvient-on ?
Il existe plusieurs solutions, certaines bien pires que d´autres ;-)
utilisation d´un disque partagé (SAN)
utilisation de blocs partagés via le réseau(drbd)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
25 / 124
26. Redondance de bases de données
Comment y parvient-on ?
Il existe plusieurs solutions, certaines bien pires que d´autres ;-)
utilisation d´un disque partagé (SAN)
utilisation de blocs partagés via le réseau(drbd)
utilisation de la réplication
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
26 / 124
27. Redondance de bases de données
Comment y parvient-on ?
Il existe plusieurs solutions, certaines bien pires que d´autres ;-)
utilisation d´un disque partagé (SAN)
utilisation de blocs partagés via le réseau(drbd)
utilisation de la réplication
C'est effectivement cette dernière technique qui est la plus fiable et la plus répendue.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
27 / 124
28. Réplication MySQL
Il existe plusieurs types de réplication dans MySQL:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
28 / 124
29. Réplication MySQL
Il existe plusieurs types de réplication dans MySQL:
réplication asynchrone (async)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
29 / 124
30. Réplication MySQL
Il existe plusieurs types de réplication dans MySQL:
réplication asynchrone (async)
réplication semi-synchrone (semi-sync)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
30 / 124
31. Réplication MySQL
Il existe plusieurs types de réplication dans MySQL:
réplication asynchrone (async)
réplication semi-synchrone (semi-sync)
réplication de groupe (group replication) -Nouveau!!
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
31 / 124
32. Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
32 / 124
33. Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
33 / 124
34. Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
34 / 124
35. Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
la cohérense (consistency) desreplicasest assummée et nécessite une vérification
manuelle
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
35 / 124
36. Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
la cohérense (consistency) desreplicasest assummée et nécessite une vérification
manuelle
des topologies très complexes peuvent être construites
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
36 / 124
37. Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
la cohérense (consistency) desreplicasest assummée et nécessite une vérification
manuelle
des topologies très complexes peuvent être construites
il est possible (et fort déconseillé) de créer des replications circulaires
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
37 / 124
38. Réplication(s) Asynchrone(s)
les replicas (slaves) "stream" les logs de réplication à partir d´un maître unique
les replicas peuvent être retardés (lag), iln´y a aucune garantiede livraison (sauf
semi-sync)
l'initialisation (provisioning) des replicasest manuelle
la cohérense (consistency) desreplicasest assummée et nécessite une vérification
manuelle
des topologies très complexes peuvent être construites
il est possible (et fort déconseillé) de créer des replications circulaires
les écritures ne sont sûr qu´à partir d´un unique maître global
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
38 / 124
39. Architectures de HA avec la réplication
asynchrone
Les architectures sont multiples et les outils pour les mettre en oeuvre également.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
39 / 124
40. Architectures de HA avec la réplication
asynchrone
Les architectures sont multiples et les outils pour les mettre en oeuvre également.
Elles se basent toutes sur le mêmeprincipe:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
40 / 124
41. Architectures de HA avec la réplication
asynchrone
Les architectures sont multiples et les outils pour les mettre en oeuvre également.
Elles se basent toutes sur le mêmeprincipe:
1 maître (master)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
41 / 124
42. Architectures de HA avec la réplication
asynchrone
Les architectures sont multiples et les outils pour les mettre en oeuvre également.
Elles se basent toutes sur le mêmeprincipe:
1 maître (master)
1 ou plusieurs replicas (slaves)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
42 / 124
43. Architectures de HA avec la réplication
asynchrone
Les architectures sont multiples et les outils pour les mettre en oeuvre également.
Elles se basent toutes sur le mêmeprincipe:
1 maître (master)
1 ou plusieurs replicas (slaves)
Si le maître a un problème, leslave le plus à jours doit prendre le relaiset être promu
maître aux yeux des autres escalves encore en ligne.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
43 / 124
45. Automatisation
Et c´est là que c´est plus compliqué ;-)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
45 / 124
46. Automatisation
Et c´est là que c´est plus compliqué ;-)
En fait il existe beaucoup d´outils externes qui peuvent être utilisés pour cette tâche. La
majorité ne sont compatible qu´avec GNU/Linux.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
46 / 124
47. Automatisation
Et c´est là que c´est plus compliqué ;-)
En fait il existe beaucoup d´outils externes qui peuvent être utilisés pour cette tâche. La
majorité ne sont compatible qu´avec GNU/Linux.
Leur problème est qu´ils viennent complexifier l'architecture. Il faut être sysadminpour
pouvoir maintenir ces solutions:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
47 / 124
48. Automatisation
Et c´est là que c´est plus compliqué ;-)
En fait il existe beaucoup d´outils externes qui peuvent être utilisés pour cette tâche. La
majorité ne sont compatible qu´avec GNU/Linux.
Leur problème est qu´ils viennent complexifier l'architecture. Il faut être sysadminpour
pouvoir maintenir ces solutions:
MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
48 / 124
49. Automatisation
Et c´est là que c´est plus compliqué ;-)
En fait il existe beaucoup d´outils externes qui peuvent être utilisés pour cette tâche. La
majorité ne sont compatible qu´avec GNU/Linux.
Leur problème est qu´ils viennent complexifier l'architecture. Il faut être sysadminpour
pouvoir maintenir ces solutions:
MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)
Pacemaker avec un OCF dédié àMySQL
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
49 / 124
50. Automatisation
Et c´est là que c´est plus compliqué ;-)
En fait il existe beaucoup d´outils externes qui peuvent être utilisés pour cette tâche. La
majorité ne sont compatible qu´avec GNU/Linux.
Leur problème est qu´ils viennent complexifier l'architecture. Il faut être sysadminpour
pouvoir maintenir ces solutions:
MySQL-Utilities (mysqlrplcheck, mysqlrpladmin)
Pacemaker avec un OCF dédié àMySQL
MHA
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
50 / 124
51. MySQL Group Replication
Mais qu´est-ce que c´est ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
51 / 124
52. MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
52 / 124
53. MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
53 / 124
54. MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
54 / 124
55. MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
Il permet d´écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
55 / 124
56. MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
Il permet d´écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire
Il détecte les conflits
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
56 / 124
57. MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
Il permet d´écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire
Il détecte les conflits
Et permet la récupération distribuée automatique
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
57 / 124
58. MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
Il permet d´écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire
Il détecte les conflits
Et permet la récupération distribuée automatique
Supporté surtoutes les plateformesMySQL!!
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
58 / 124
59. MySQL Group Replication
Mais qu´est-ce que c´est ?
C´est un plugin pourMySQLfourni avecMySQLparMySQL!
GR est l´implémentation de la théorie"Replicated Database State Machine"
MySQLGroup Communication System(GCS) est basé sur Paxos Mencius
Il permet d´écrire sur tous les membres du groupe (noeuds du cluster) si nécessaire
Il détecte les conflits
Et permet la récupération distribuée automatique
Supporté surtoutes les plateformesMySQL!!
Linux, Windows, Solaris, OSX,FreeBSD
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
59 / 124
60. Et pour les utilisateurs ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
60 / 124
61. Et pour les utilisateurs ?
Il n´est plus nécessaire d´effectuer un basculement du rôle des serveurs
manuellement ou avec un script compliqué
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
61 / 124
62. Et pour les utilisateurs ?
Il n´est plus nécessaire d´effectuer un basculement du rôle des serveurs
manuellement ou avec un script compliqué
Mise à jours des données surdes serveurs Actifs/Actifs
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
62 / 124
63. Et pour les utilisateurs ?
Il n´est plus nécessaire d´effectuer un basculement du rôle des serveurs
manuellement ou avec un script compliqué
Mise à jours des données surdes serveurs Actifs/Actifs
Gère les pannes distribuées (quorum)
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
63 / 124
64. Et pour les utilisateurs ?
Il n´est plus nécessaire d´effectuer un basculement du rôle des serveurs
manuellement ou avec un script compliqué
Mise à jours des données surdes serveurs Actifs/Actifs
Gère les pannes distribuées (quorum)
Facilite grandement la mise en place d´un service MySQLhautement disponible !
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
64 / 124
65. Mais comment ça marche ?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
65 / 124
66. Mais comment ça marche ?
par magie !
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
66 / 124
67. Mais comment ça marche ?
par magie !
Non, au fait, la réplication des"transactions" se faitde manière synchrone, ensuite la
certification et l'application des changements se font de manière asynchrone...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
67 / 124
68. Mais comment ça marche ?
par magie !
Non, au fait, la réplication des"transactions" se faitde manière synchrone, ensuite la
certification et l'application des changements se font de manière asynchrone...
C'est peut-être un peu compliqué commeça... et commedessinvaut mieux qu'un long
discours...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
68 / 124
81. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
81 / 124
82. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
82 / 124
83. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
83 / 124
84. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
ce type de conflit provient toujours des autres membres du groupe
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
84 / 124
85. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
ce type de conflit provient toujours des autres membres du groupe
La certification se fait sur chaque membre du groupe
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
85 / 124
86. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
ce type de conflit provient toujours des autres membres du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
86 / 124
87. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
ce type de conflit provient toujours des autres membres du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
87 / 124
88. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
ce type de conflit provient toujours des autres membres du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Réussite: entre dans la queuepour être appliquée
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
88 / 124
89. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
ce type de conflit provient toujours des autres membres du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Réussite: entre dans la queuepour être appliquée
Échec: la transaction est rejetée
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
89 / 124
90. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
ce type de conflit provient toujours des autres membres du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Réussite: entre dans la queuepour être appliquée
Échec: la transaction est rejetée
Sérialisée par l´ordre établi dans GCS/XCOM+ GTID
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
90 / 124
91. Certification
La certification est le processus qui a pour but de répondre à cette unique question:
est-ce-que cette écriture (transaction) peutêtreappliquée?
en se basant sur les transactions précédentes qui ne sont pas encore appliquées
ce type de conflit provient toujours des autres membres du groupe
La certification se fait sur chaque membre du groupe
Doit être déterministe sur chaque noeud
Le résultat n´est pas communiqué aucluster en retour
Réussite: entre dans la queuepour être appliquée
Échec: la transaction est rejetée
Sérialisée par l´ordre établi dans GCS/XCOM+ GTID
Le coût varie en fonction du nombres d'index et d'enregistrements
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
91 / 124
92. GTID
Les GTIDs utilisés sont identiques aux GTIDutilisés en réplication asynchrone.
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: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57,
f037578b-46b1-11e6-8005-08002774c31b:1-48937
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
92 / 124
93. Mais c'est le GTID du cluster qui est mélangé aux éventuels autres
mysql> show master statusG
************************** 1. row ***************************
File: mysql4-bin.000001
Position: 1501
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: afb80f36-2bff-11e6-84e0-0800277dd3bf:1-57,
f037578b-46b1-11e6-8005-08002774c31b:1-48937
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
93 / 124
94. Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
94 / 124
95. Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
95 / 124
96. Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Ne fonctionne qu´en IPV4
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
96 / 124
97. Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Ne fonctionne qu´en IPV4
Un bon réseau avec peu de latence est important
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
97 / 124
98. Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Ne fonctionne qu´en IPV4
Un bon réseau avec peu de latence est important
Un maximum de 9 membres par groupe
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
98 / 124
99. Exigences
Les données doivent impérativement être sauvergardées dans des tables en InnoDB
Chaques table doit avoir une clé primaire
Ne fonctionne qu´en IPV4
Un bon réseau avec peu de latence est important
Un maximum de 9 membres par groupe
log-bin doit être activé et seul le format ROWest supporté
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
99 / 124
100. Exigences (2)
les GTIDs doivent être activés
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
100 / 124
101. Exigences (2)
les GTIDs doivent être activés
Les meta données de réplication doivent être sauvergardées dans des tables
systèmes
--master-info-repository=TABLE
--relay-log-info-repository=TABLE
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
101 / 124
102. Exigences (2)
les GTIDs doivent être activés
Les meta données de réplication doivent être sauvergardées dans des tables
systèmes
--master-info-repository=TABLE
--relay-log-info-repository=TABLE
L´extraction des "writesets" de réplication doit être activée
--transaction-write-set-extraction=XXHASH64
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
102 / 124
103. Exigences (2)
les GTIDs doivent être activés
Les meta données de réplication doivent être sauvergardées dans des tables
systèmes
--master-info-repository=TABLE
--relay-log-info-repository=TABLE
L´extraction des "writesets" de réplication doit être activée
--transaction-write-set-extraction=XXHASH64
log-slave-updates doit aussi être présent
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
103 / 124
104. Limites
Le checksum des évenements répliqués n´est passupporté
--binlog-checksum=NONE
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
104 / 124
105. Limites
Le checksum des évenements répliqués n´est passupporté
--binlog-checksum=NONE
Les "Savepoints" ne sont pas supportés avant 5.7.19 et 8.0.1
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
105 / 124
106. Limites
Le checksum des évenements répliqués n´est passupporté
--binlog-checksum=NONE
Les "Savepoints" ne sont pas supportés avant 5.7.19 et 8.0.1
On ne peut utiliserSERIALIZABLEcomme niveau d'isolation des transactions
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
106 / 124
107. Limites
Le checksum des évenements répliqués n´est passupporté
--binlog-checksum=NONE
Les "Savepoints" ne sont pas supportés avant 5.7.19 et 8.0.1
On ne peut utiliserSERIALIZABLEcomme niveau d'isolation des transactions
http://lefred.be/content/mysql-group-replication-limitations-savepoints/
http://lefred.be/content/mysql-group-replication-and-table-design/
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
107 / 124
108. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
108 / 124
109. MySQL Router
MySQLRouter est un middleware léger qui fournit un routage transparent entre l
´application et n´importe quel serveur MySQL. Il peut être utilisé pour une grande variété
de cas, tels que la haute disponinilité et l´évolutivité (scalability) enacheminant
efficacement le trafic vers les serveursMySQLappropriés.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
109 / 124
110. MySQL Router
MySQLRouter est un middleware léger qui fournit un routage transparent entre l
´application et n´importe quel serveur MySQL. Il peut être utilisé pour une grande variété
de cas, tels que la haute disponinilité et l´évolutivité (scalability) enacheminant
efficacement le trafic vers les serveursMySQLappropriés.
MySQLRouter ne nécessite aucune configuration, ilse configure automatiquement grâce
aux meta-données duMySQLInnoDB Cluster.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
110 / 124
111. MySQL Router
MySQLRouter est un middleware léger qui fournit un routage transparent entre l
´application et n´importe quel serveur MySQL. Il peut être utilisé pour une grande variété
de cas, tels que la haute disponinilité et l´évolutivité (scalability) enacheminant
efficacement le trafic vers les serveursMySQLappropriés.
MySQLRouter ne nécessite aucune configuration, ilse configure automatiquement grâce
aux meta-données duMySQLInnoDB Cluster.
Le dévelopement deMySQLRouter est focalisé sur les étapes suivantes du cluster: le
sharding.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
111 / 124
112. ProxySQL
Pour des besoins plus avancés, nous collaborons également avec ProxySQL pour avoir le
support natif de Group Replication &de MySQLInnoDB Cluster.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
112 / 124
113. Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
113 / 124
114. MySQL Shell
MySQLShell est in interface interactive en Javascript, Python, ou SQL qui prend en charge
le développment et l´administration du serveur MySQL. MySQLShell peut être utilisé pour
effectuer des requêtes et des modifications de données ainsi que diverses opérations d
´administration.
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
114 / 124
115. MySQL Shell (2)
MySQLShell fournit:
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
115 / 124
116. MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
116 / 124
117. MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
l´utilisation d'API CRUD Document et relationnelles
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
117 / 124
118. MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
l´utilisation d'API CRUD Document et relationnelles
des résultats sous le format traditionnels (tables), JSON, Tab Separated
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
118 / 124
119. MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
l´utilisation d'API CRUD Document et relationnelles
des résultats sous le format traditionnels (tables), JSON, Tab Separated
un accès aux protocolesMySQLStandard and X
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
119 / 124
120. MySQL Shell (2)
MySQLShell fournit:
la possibilité d´effectuer des opérations interactives et de "batch"
l´utilisation d'API CRUD Document et relationnelles
des résultats sous le format traditionnels (tables), JSON, Tab Separated
un accès aux protocolesMySQLStandard and X
et plus encore...
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
120 / 124
121. Commandes pour déployer un cluster en
utilisant l'adminAPI du MySQL Shell:
mysql-js> var i1 = 'root@instance01.jdl:3306';
mysql-js> var i2 = 'root@instance02.jdl:3306';
mysql-js> var i3 = 'root@instance03.jdl:3306';
mysql-js> dba.checkInstanceCon guration(i1);
mysql-js> dba.checkInstanceCon guration(i2);
mysql-js> dba.checkInstanceCon guration(i3);
mysql-js> shell.connect(i1);
mysql-js> var cluster = dba.createCluster('JeudisDuLibre');
mysql-js> cluster.checkInstanceState(i2);
mysql-js> cluster.addInstance(i2);
mysql-js> cluster.checkInstanceState(i3);
mysql-js> cluster.addInstance(i3);
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
121 / 124
122. instance01.yaml :
classes:
- innodbcluster
innodbcluster::mysql_serverid: 1
grâce au Shell on peut tout automatiser ;-)
https://github.com/lefred/puppet-lefred-innodbcluster
Super facile à configurer via hiera:
common.yaml:
innodbcluster::mysql_root_password: MegaMotDePasse
innodbcluster::mysql_bind_interface: eth1
innodbcluster::cluster_name: JeudisDuLibre
innodbcluster::grant::user: fred
innodbcluster::grant::password: fred
innodbcluster::seed: instance01.jdl
Copyright @ 2017 Oracle and/or its affiliates. All rights reserved.
122 / 124