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.
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...GUSS
Quel quorum de cluster choisir ? Dans quelle situation ? Je dois utiliser des réplicas en lecture seule ? Quels sont les impacts ? Que dois-je surveiller sur mon infrastructure ? Quels outils à disposition pour troubleshooter d’éventuels problèmes SQL Server AlwaysOn ou du cluster Windows ? Autant de questions auxquelles nous répondrons au cours de cette session. Session présentée lors du SQLSaturday Paris 2014
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.
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...GUSS
Quel quorum de cluster choisir ? Dans quelle situation ? Je dois utiliser des réplicas en lecture seule ? Quels sont les impacts ? Que dois-je surveiller sur mon infrastructure ? Quels outils à disposition pour troubleshooter d’éventuels problèmes SQL Server AlwaysOn ou du cluster Windows ? Autant de questions auxquelles nous répondrons au cours de cette session. Session présentée lors du SQLSaturday Paris 2014
Avec Enterprise Cloud Databases, découvrez un service dédié, entièrement géré et surveillé, basé sur le système de gestion de bases de données relationnelle PostgreSQL, qui garantit une haute disponibilité pour vos charges de travail les plus critiques.
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)
Présentation Liquibase mise à jour pour être plus exhaustive (v2.0.5) avec une démo plus complète.
Merci de mentionner "Florent Biville" en tant qu'auteur original si vous souhaitez reprendre cette présentation.
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.
Avec Enterprise Cloud Databases, découvrez un service dédié, entièrement géré et surveillé, basé sur le système de gestion de bases de données relationnelle PostgreSQL, qui garantit une haute disponibilité pour vos charges de travail les plus critiques.
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)
Présentation Liquibase mise à jour pour être plus exhaustive (v2.0.5) avec une démo plus complète.
Merci de mentionner "Florent Biville" en tant qu'auteur original si vous souhaitez reprendre cette présentation.
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.
MySQL Day Paris 2016 - MySQL as a Document StoreOlivier DASINI
MySQL Day Paris 2016 - MySQL as a Document Store
✔ Built on Proven SQL/InnoDB/Replication
✔ Schema-less/Relational/Hybrid
✔ ACID/Transactions
✔ CRUD/JSON/Documents
✔ Modern Dev API
✔ Modern/Efficient Protocol
✔ SQL Queries/Analytics over JSON Documents
✔ Transparent and Easy HA/Scaling/Sharding
Case Study: MySQL migration from latin1 to UTF-8Olivier DASINI
This document summarizes Olivier Dasini's presentation on migrating a MySQL database from the latin1 character set to UTF-8. Some key points:
- The migration involved converting database tables, columns, and data to the UTF-8 character set and UTF-8 collations to support non-Latin characters from around the world.
- Challenges included minimizing downtime to avoid loss of income, dealing with legacy data issues, and handling errors due to differences between character sets.
- The solution involved a rolling upgrade approach, with slaves being migrated first to test the process before a master-slave switchover.
- Significant effort was required to clean legacy data issues and handle errors manually
The document discusses Oracle's MySQL Cloud Service which provides MySQL as a database service on Oracle Public Cloud. Key features include automated backups, patching, monitoring, elastic scaling, high availability, security features from MySQL Enterprise Edition, and tools for data access, migration and restoration. The service runs MySQL 5.7 Enterprise Edition with an optimized configuration for the cloud environment.
MySQL Day Paris 2016 - MySQL HA: InnoDB Cluster and NDB ClusterOlivier DASINI
The document discusses two high availability solutions for MySQL: InnoDB Cluster and NDB Cluster. InnoDB Cluster provides high availability using MySQL Group Replication and allows for read scaling. It has weak consistency, no sharding, and medium operational complexity. NDB Cluster uses the NDB storage engine, provides automatic sharding and strong consistency. It has high operational complexity but also provides native NoSQL APIs and load balancing. The document explores these solutions in further detail.
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud ServiceOlivier DASINI
MySQL Day Paris 2016 - Introducing Oracle MySQL Cloud
MySQL Cloud Service Offering
• Simple:
– Quickly provision MySQL database instances with only a few clicks
• Automated:
– Database management made easy with tools that automate administrative tasks
• Integrated:
– Integrated with Oracle Cloud Services for quick development and deployment
• Enterprise Ready:
– Oracle’s proven MySQL Enterprise Edition for performance, security & uptime
MySQL Parallel Replication: inventory, use-cases and limitationsJean-François Gagné
In the last 24 months, MySQL replication speed has improved a lot thanks to implementing parallel replication. MySQL and MariaDB have different types of parallel replication; in this talk, I present in detail the different implementations, with their limitations and the corresponding tuning parameters (covering MySQL 5.6, MariaDB 10.0, MariaDB 10.1 and MySQL 5.7). I also present benchmark results from real Booking.com workloads. Finally, I discuss some deployments at Booking.com that benefits from parallel replication speed improvements.
Some internal tools were relying on deprecated statements and behavior that changed in MySQL 5.6. The presenter had to update the tools to use the proper START SLAVE/STOP SLAVE statements and account for new information logged in binlogs due to configuration changes. Testing in pre-production helped uncover these issues so they could be addressed before upgrading production servers.
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsPedro Gomes
The document discusses mixing asynchronous replication and group replication for advanced MySQL replication setups. It provides an overview of asynchronous replication, semi-synchronous replication, multi-source replication, and group replication. It then discusses some basic scenarios for mixing these technologies, such as using asynchronous replication for read scaling beyond the group's 9 member limit or aggregating data from multiple groups. The document also covers migrating from asynchronous to group replication and migrating disjoint servers into a group.
Fine-tuning Group Replication for PerformanceVitor Oliveira
This presentation is an overview of Group Replication from the perspective of performance optimization. It shows the main moving parts, the available options and how they can be used to tune its behaviour, and also a few significant benchmark results.
This document provides an overview of Oracle Active Data Guard, which allows standby databases to be open for read-only access while redo data is being shipped from the primary database. Key points include:
- Active Data Guard enables offloading of queries and reporting to standby databases while maintaining high availability.
- Fast incremental backups can be performed on standby databases, which are up to 20 times faster than full backups.
- Real-time queries on standby databases always see the most up-to-date committed data from the primary with minimal latency.
Historique de la supervision chez ikoula de sa création (1998) à aujourd'hui (2015)
Présentation faite le 28/01/2016 lors du meet-up #4 Paris Monitoring
Découvrez Spring Batch, sa simplicité, les concepts de bases ainsi que les notions avancées. Tout tout tout, vous saurez tout sur Spring Batch!
Intervenant : Olivier Bazoud @obazoud
Methodologie et outils d optimisation php mysqlCodizy
Méthodologie et outils d'optimisation PHP / MySQL lors des 3 phases du cycle de vie de vos applications :
1- Développement,
2- Mise en production,
3- Post Production
Pour toute information concernant Codizy :
@: http://www.codizy.com
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Nicolas Silberman
Retour d'experience du Groupe Express Roularta sur l'intégration de Puppet (mais finalement Chef) dans leur système d'information, permettant en quelques cliques et quelques minutes de mettre en place une ou plusieurs machines de développement parfaitement fonctionnelle et à jour, le tout hébergé sur le cloud Amazon.
Avec l’avènement des connexions haut-débit et bientôt très haut-débit, les concepteurs semblent de moins en moins attentifs à la rapidité de leurs sites. De plus, avec de telles connexions, les internautes supportent mal un site qui les fasse attendre. Cela gâche l’expérience utilisateur, pourtant censée être au cœur du "web 2.0"
Cet atelier vous présentera comment, sans devoir repenser votre application ou vos pages depuis le début, améliorer la rapidité de votre site.
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007Eric D.
Il est possible d'aller plus loin que les applications classiques. En profitant pleinement des capacités du navigateur cet atelier vous montrera comment améliorer les performances et modulariser l'existant. HTTP, REST et Ajax sont au menu pour une application orienté services légère, simple à modifier et avec une API partageable avec vos clients.
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
Sujet : Apache Web Server Internals
Description : Le Serveur Web Apache est devenu le logiciel le plus utilisé au mondepour servir les pages internet et intranet. Son utilisation très variée, du petit site familial au site d’entreprise avec systèmes de balance de charge et architecture objet, fait que sa structure est peu connue ainsi que ses différentes configurations.
Conférenciers : Neil Armstrong, élève ingénieur chez Neotion et futur ingénieur Polytech’Nice-Sophia, spécialisé en Logiciels Embarqués et technologies Open-Source.
Date : 10 juin 2008
Lieu : Amphithéâtre Edison, CICA, Sophia Antipolis, FRANCE
http://www.parisjug.org/xwiki/bin/view/Meeting/20130514
Quand j'écris une application Web, il y a pléthore de frameworks Web. Quand j'accède à une base de données, il y a des solutions de persistance (Hibernate, etc.). Quand je fais du batch, je suis... à poil ! Les batchs seraient-ils les parents pauvres de Java ? Spring Batch offre pourtant une solution pour vous guider lors de l'écriture de vos batchs en Java en toute décontraction. Le 14 Mai, Olivier et Julien vous présenteront Spring Batch et vous donneront une autre vision des batchs en Java.
Intervenants : Julien Jakubowski et Olivier Bazoud
Présentation de la conférence "Optimisation LAMP". Une formation donnée par Openska pour ceux qui veulent aller vite :
http://www.openska.com/formation-optimisation-php.php
Hyper-V Replica est une des grosses nouveautés disponible dans Hyper-V édition Windows Server 2012. Cette fonctionnalité est destinée à vous aider dans la mise en oeuvre d'un plan de reprise d'activité grâce à la réplication de machines virtuelles sur un environnement de secours. Au programme : une exploration dans le détail d'Hyper-V Replica, le tout avec un maximum de démonstrations et de bonne humeur !!
Similaire à MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini (20)
MySQL High Availability Solutions - Avoid loss of service by reducing the r...Olivier DASINI
MySQL High Availability Solutions
Avoid loss of service by reducing the risk of failures
MySQL InnoDB Cluster
Collection of products that work together to provide a complete High Availability solution for MySQL
MySQL InnoDB ReplicaSet
Administer a set of MySQL instances running asynchronous replication
MySQL NDB Cluster
A high-availability, high-redundancy version of MySQL adapted for the distributed computing environment
MySQL Performance Best Practices document discusses various techniques for optimizing MySQL performance. It covers monitoring performance with tools like MySQL Enterprise Monitor, optimizing configurations such as increasing the InnoDB buffer pool size, balancing data consistency versus performance by adjusting the innodb_flush_log_at_trx_commit setting, and summarizes that monitoring is essential to identify performance issues and test configuration changes before deploying to production.
Summary of the MySQL 8.0.22 new features, released on October 19th, 2020.
==
== Highlights
==
Read Only Schema
Error Log Table
Periodic Synchronization For SELECT INTO DUMPFILE|OUTFILE
Libmysql Support For DNS SRV
MySQL Shell Enhancements
> Table dump utility
> Table export utility
MySQL Router Enhancements
> Enable REST API at bootstrap
> Scale routing core to 50k connections
MySQL Replication Enhancements
> Automatic Asynchronous Replication Connection Failover
MySQL NDB Cluster Enhancements
> Support for IPv6 addresses
> Encrypted backup
MySQL Enterprise New Features
> MySQL Enterprise Backup
> Keyring plugin for Oracle Cloud Infrastructure Vault
Thanks to the Contributors
> Krunal Bauskar
> Eric Beuque
> Facebook
> Kamil Holubicki
> Kan Liyong
> Javier Matos Odut
> Gord Thomson
> Andrey Turbanov
> TXSQL (Tencent MySQL)
> Daniël van Eeden
> Xiaoyu Wang
> Denis Yarkovoy
==
== Follow me
==
Blog EN : http://dasini.net/blog/en/
Blog FR : http://dasini.net/blog/fr/
Twitter : https://twitter.com/freshdaz
Youtube : https://www.youtube.com/channel/UC12TulyJsJZHoCmby3Nm3WQ
Slideshare : https://www.slideshare.net/freshdaz
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamOlivier DASINI
MySQL Database Service Overview
#1 Open Source Database
100% Developed by the MySQL Team
100% Managed by the MySQL Team
100% Supported by the MySQL Team
100% Built on MySQL Enterprise Edition
100% Up to date with the latest security fixes
100% Compatible with on-premises MySQL
100% Compatible with Oracle technologies
MySQL 8.0 is the latest Generally Available version of MySQL. This session will help you upgrade from older versions, understand what utilities are available to make the process smoother and also understand what you need to bear in mind with the new version and considerations for possible behavior changes and solutions.
MySQL 8.0.21 includes several new features and enhancements:
1) It allows disabling of the InnoDB redo log at runtime to improve performance while loading initial data.
2) The JSON_VALUE function was added to extract scalar values from JSON documents.
3) CREATE TABLE...SELECT statements are now atomic and crash-safe operations.
4) Per-user comments and attributes can now be set when creating or updating MySQL user accounts.
Summary of the MySQL 8.0.19 new features, released on January 13th, 2020.
==
== Highlights
==
* InnoDB ReplicaSet
* SQL Improvements
=> Table Value Constructors
=> LIMIT in recursive CTE
=> ALTER TABLE… DROP/ALTER CONSTRAINT
=> More information to Duplicate Key Error
* Account Management Enhancements
* Time zone offset for Timestamp & Datetime
* Information Schema views for SQL Roles
* MySQL Document Store Enhancements
* MySQL Shell Enhancements
* MySQL Router Enhancements
* MySQL InnoDB Cluster Enhancements
* MySQL Replication Enhancements
* MySQL NDB Cluster Enhancements
* MySQL Enterprise New Features
* Thanks to the Contributors
The document summarizes new features in MySQL 8.0.18, including:
1. Hash join functionality has been implemented to execute inner equi-joins more efficiently than the current block-nested loop algorithm in most cases.
2. EXPLAIN ANALYZE has been added to run a query and produce EXPLAIN output with additional information about how the optimizer's estimates matched the actual execution.
3. MySQL now only uses OpenSSL as its SSL/TLS library, removing support for wolfSSL and yaSSL from the codebase.
The document summarizes new features in MySQL 8.0.17, including the CLONE plugin for native automatic provisioning, multi-valued indexes, enhanced JSON functions using multi-valued indexes, JSON schema validation, a new binary collation for utf8mb4, improvements to MySQL Shell, MySQL Router, InnoDB Cluster, and Group Replication. It provides links to documentation and blogs for more information on each feature.
Presentation of some of the new features of MySQL 8.0.16 released on April 25, 2019
Agenda:
➢ mysql_upgrade is no longer necessary
➢ CHECK Constraints
➢ Constant-Folding Optimization
➢ SYSTEM_USER & partial_revokes
➢ Chinese collation for utf8mb4
➢ Performance Schema keyring_keys table
➢ MySQL Shell Enhancements
➢ MySQL Router Enhancements
➢ InnoDB Cluster Enhancements
➢ Group Replication Enhancements
➢ Size of the binary tarball for Linux
➢ Server quick settings validation
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsOlivier DASINI
MySQL Enterprise Transparent Data Encryption (TDE) protects your critical data by enabling data-at-rest encryption in the database. It protects the privacy of your information, prevents data breaches and helps meet regulatory requirements including the Payment Card Industry Data Security Standard (PCI DSS), Health Insurance Portability and Accountability Act (HIPAA) and numerous others.
MySQL Enterprise Audit provides an easy to use, policy-based auditing solution that helps organizations implement stronger security controls and satisfy regulatory compliance.
As more sensitive data is collected, stored and used online, database auditing becomes an essential component of any security strategy. To guard against the misuse of information, popular compliance regulations including HIPAA, Sarbanes-Oxley, and the PCI Data Security Standard require organizations to track access to information.
MySQL Enterprise Firewall guards against cyber security threats by providing real-time protection against database specific attacks. Any application that has user-supplied input, such as login and personal information fields is at risk. Database attacks don't just come from applications. Data breaches can come from many sources including SQL virus attacks or from employee misuse. Successful attacks can quickly steal millions of customer records containing personal information, credit card, financial, healthcare or other valuable data.
MySQL Enterprise Masking and De-identification provides an easy to use, built-in database solution to help organizations protect sensitive data from unauthorized uses by hiding and replacing real values with substitutes.
MySQL Enterprise Edition provides ready to use external authentication modules to easily integrate existing security infrastructures, including Linux Pluggable Authentication Modules (PAM) and Windows Active Directory.
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0Olivier DASINI
Upgrading is a common procedure, as you pick up bug fixes within the same MySQL release series or significant features between major MySQL releases. You perform this procedure first on some test systems to make sure everything works smoothly, and then on the production systems.
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...Olivier DASINI
Here are the steps to deploy a local 3-node MySQL InnoDB Cluster sandbox:
1. Start 3 local MySQL instances on ports 3310, 3320, 3330
2. Connect to the first instance using MySQL Shell
3. Run the following commands in MySQL Shell to bootstrap and join the nodes:
```js
// Bootstrap first node
dba.bootstrapCluster({
"host": "127.0.0.1",
"port": 3310
});
// Join second node
dba.addInstance({
"host": "127.0.0.1",
"port": 3320
});
// Join third node
dba.add
MySQL Day Paris 2018 - MySQL JSON Document StoreOlivier DASINI
NoSQL + SQL = MySQL
MySQL Document Store allows developers to work with SQL relational tables and schema-less JSON collections. To make that possible MySQL has created the X Dev API which puts a strong focus on CRUD by providing a fluent API allowing you to work with JSON documents in a natural way. The X Protocol is a highly extensible and is optimized for CRUD as well as SQL API operations.
MySQL Document store gives users maximum flexibility developing traditional SQL relational applications and NoSQL schema-free document database applications. This eliminates the need for a separate NoSQL document database. Developers can mix and match relational data and JSON documents in the same database as well as the same application. For example, both data models can be queried in the same application and results can be in table, tabular or JSON formats.
The MySQL Document Store architecture consists of the following components:
Native JSON Document Storage - MySQL provides a native JSON datatype is efficiently stored in binary with the ability to create virtual columns that can be indexed. JSON Documents are automatically validated.
X Plugin - The X Plugin enables MySQL to use the X Protocol and uses Connectors and the Shell to act as clients to the server.
X Protocol - The X Protocol is a new client protocol based on top of the Protobuf library, and works for both, CRUD and SQL operations.
X DevAPI - The X DevAPI is a new, modern, async developer API for CRUD and SQL operations on top of X Protocol. It introduces Collections as new Schema objects. Documents are stored in Collections and have their dedicated CRUD operation set.
MySQL Shell - The MySQL Shell is an interactive Javascript, Python, or SQL interface supporting development and administration for the MySQL Server. You can use the MySQL Shell to perform data queries and updates as well as various administration operations.
MySQL Connectors - The following MySQL Connectors support the X Protocol and enable you to use X DevAPI in your chosen language.
MySQL Connector/Node.js
MySQL Connector/PHP
MySQL Connector/Python
MySQL Connector/J
MySQL Connector/NET
MySQL Connector/C++
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?Olivier DASINI
MySQL 8.0 introduces several new features for developers including a document store for working with JSON documents, over 20 new JSON functions, UTF-8 as the default character set, common table expressions (CTEs) for hierarchical data traversal, window functions for analytics, and new options like SKIP LOCKED and NOWAIT for better handling of locked rows. The MySQL Shell provides a way to prototype applications using the new X DevAPI and import JSON data. Many new features in MySQL 8.0 were added to boost developer and data analyst productivity.
MySQL is the world's most popular open source database. Whether you are a fast growing web property, technology ISV or large enterprise, MySQL can cost-effectively help you deliver high performance, scalable database applications.
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...Olivier DASINI
SQL + NoSQL = MySQL
MySQL Document Store allows developers to work with SQL relational tables and schema-less JSON collections. To make that possible MySQL has created the X Dev API which puts a strong focus on CRUD by providing a fluent API allowing you to work with JSON documents in a natural way. The X Protocol is a highly extensible and is optimized for CRUD as well as SQL API operations.
MySQL powers the most demanding Web, E-commerce, SaaS and Online Transaction Processing (OLTP) applications.
It is a fully integrated transaction-safe, ACID compliant database with full commit, rollback, crash recovery and row level locking capabilities.
MySQL delivers the ease of use, scalability, and performance to power Facebook, Google, Twitter, Uber, Booking.com and many more...
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
1. MHA : MySQL haute disponibilité @ Viadeo
Viadeo Tech Days, Paris 22-11-2012
2. De quoi vais-je parler ?
De moi (mais pas longtemps, promis)
Viadeo en quelques chiffres
Dis, c'était comment avant ?
Mini zoom sur MySQL Replication
Que choisir ?
Le changement ? C'est...
Zoom sur Master High Availability
Quiz
A retenir... (eh oui, ça fait déjà 1800 secondes)
3. Me, myself & I
Olivier DASINI
Expert MySQL chez Viadeo
@freshdaz
http://dasini.net/blog/
Co-fondateur du MySQL User Group Francophone (LeMug.fr)
●
http://lemug.fr
Co-auteur des livres
Audit et optimisation – MySQL 5, Bonnes pratiques pour
l’administrateur
●
Eyrolles, ISBN-13: 978-2212126341
MySQL 5 – Administration et optimisation
●
ENI, ISBN-13: 978-2-7460-5516-2
MySQL 5.6 – Administration et optimisation (février 2013)
4. Viadeo en quelques chiffres
L' OLTP chez Viadeo c'est :
2 To de données
Un certain nombre de « Grosses » tables
●
Jusqu'à 1 milliard d'enregistrements
●
Jusqu'à 350Go
23 serveurs en 5 shards qui se répartissent 20000 requêtes chaque
seconde
MySQL Replication sur chaque shard (1 master + N slaves)
Plus des serveurs (slave) spécialisés (backup, besoin métier,...)
7. Dis, c'était comment avant ?
Direct routing
Load balancer : IPVS, least connection
Lecture client : VIP de lecture
Écriture client : IP directe sur le master
Réplication MySQL
Partage de la charge de lecture
Sauvegarde non bloquante
Continuité de service
Redondance géographique
Méthode pour changer de master
A l'arrache !
8. Dis, c'était comment avant ?
Ce qui va plutôt bien
L'architecture générale n'est pas vraiment problématique
IPVS un peu « touchy » à configurer
IPVS n'est pas la solution la plus souple
Mais ce n'est clairement pas le problème
Ce qui va moins bien
La méthode de changement de master
●
Toute l'opération est manuelle
●
Demande de solides connaissance MySQL
●
Demande du sang froid (Dexter like)
Les exceptions du workflow
●
Le problème des exceptions : « quand il y en a une ça va, c'est quand il y
en a beaucoup qu'il y a des problèmes »
10. Mini zoom sur MySQL Replication
Tout est bon dans la réplication (enfin presque)
11. Mini zoom sur MySQL Replication
La réplication MySQL, c'est cool ! Utilisée chez Viadeo pour :
Existe depuis MySQL 3.23.15 Scalabilité horizontale
Asynchrone Sauvegarde
Un seul master Failover
13. Que choisir ? options envisagées
Dual master
1 machine en « spare »
Risque d'incohérences entre le master & les slaves en cas de crash
Risque d'incohérences entre les slaves en cas de crash
Semi-Synchronous Replication
MySQL 5.5+
Peut réduire les performances
Risque d'incohérences entre le master & les slaves en cas de crash
Risque d'incohérences entre les slaves en cas de crash
Pacemaker + DRBD
Durée du « crash recovery »
Machines en « spare »
MySQL Cluster
Moteur de stockage NDB
Global transaction ID
MySQL 5.6+
14. Que choisir ? solution HA idéale
Cher petit Papa Noël, si je t'écris aujourd'hui... une solution HA :
Simple d'utilisation
●
Car à mon age on ne comprend plus les choses compliquées
Facile à installer
●
Car à cause de Facebook je n'ai plus beaucoup de temps pour travailler
Gratuite
●
Car j'aimerai avoir une augmentation ce coup ci !
Sans surcoût
●
Car mon chef est de toute façon un gros radin
Qui fonctionne avec notre version de MySQL
●
Fatigué de corriger les bêtises de mes devs
Qui ne m'oblige pas à changer d'architecture
●
Fatigué de corriger les bêtises de admins sys
Performante
●
Je suis motard, j'aime quand ça va vite :)
P.S. Cette année j'ai été sage... (lol)
17. Le changement ? C'est... Gateway
Gateway
Load balancer : HAProxy 1.4, least connection
Lecture client : VIP de lecture
Écriture client : VIP d'écriture
Réplication MySQL
Partage de la charge de lecture
Sauvegarde non bloquante
Continuité de service
Redondance géographique
Méthode pour changer de master
MHA
18. Le changement ? C'est... HAProxy
2 groupes de tests effectués par HAProxy
Test1
Service MySQL UP
Serveur MySQL administrativement IN / OUT
Serveur MySQL appartenant à la VIP d'écriture (Master)
Test2
Service MySQL UP
Serveur MySQL administrativement IN / OUT
Serveur MySQL appartenant à la VIP de lecture (Slave)
20. Zoom sur MHA
Master High Availability
Auteur: Yoshinori Matsunobu
http://yoshinorimatsunobu.blogspot.fr/
Téléchargement de MHA
http://code.google.com/p/mysql-master-ha/
.deb, rpm, tar.gz
Buts de MHA
Promouvoir un slave en master
●
Automatique : avec supervision du master (ping toutes les 3 secondes)
●
Manuel : c'est l'humain qui décide
Reconfiguration automatique de la réplication
●
Les slaves pointent sur le nouveau master
Minimiser la perte de données
●
Réduire les risques d'incohérences avec le master original
●
Rendre les slaves cohérents avec le nouveau master
21. Zoom sur MHA, principales caractéristiques
Simple à mettre en œuvre
Scripts PERL
MySQL 5.0+
Indépendant du moteur de stockage
Ne nécessite pas de changement d'architecture
Pas de coûts supplémentaires (ou presque)
Le manager à une faible empreinte
Installé sur une machine virtuelle à Viadeo
Performant
Jusqu'à présent, la bascule n'a jamais dépassée 2 secondes
Compatible avec la réplication asynchrone
22. Zoom sur MHA, caractéristiques techniques
Très bien détaillées dans la doc !
http://code.google.com/p/mysql-master-ha/wiki/TableOfContents
Sur le Manager node (MHA manager) :
masterha_master_switch : basculement manuel
masterha_manager : supervision du master & basculement auto en cas de
crash
Sur les slaves (MHA node) :
save_binary_logs
apply_diff_relay_logs
purge_relay_logs
●
relay_log_purge = 0 dans my.cnf (nécessaire pour restaures les autres
slaves)
MHA effectue différentes vérifications en amont :
Vérification de la connexion SSH
Vérification de la réplication
...
Scripts optionnels
master_ip_online_change_script : script externe lancé lors de la bascule
manuelle
...
23. Zoom sur MHA, utilisation chez Viadeo
masterha_master_switch : basculement manuel
Failover & bascule online
●
masterha_master_switch conf=/etc/mha/app1.conf master_state=alive
●
Tout les serveurs doivent être UP
●
Pas de retards de réplications
●
MHA n’éteint pas le master original lors du basculement
●
Pas de logs binaire à restaurer (MASTER_POS_WAIT())
En cas de crash du master
●
masterha_master_switch conf=/etc/mha/app1.conf master_state=dead
dead_master_host=<FQDN>
24. Zoom sur MHA, scripting
master_ip_online_change_script : script externe lancé lors de la bascule
manuelle
MHA propose une coque pré-remplie. Il faut finir le travail ! (Merci Xavier)
$ less master_ip_online_change_script
Objectif cohérence des données
sub main {
if ( $command eq "stop" ) {
## Gracefully killing connections on the current master
# 1. Set read_only= 1 on the new master
# 2. DROP USER so that no app user can establish new connections
# 3. Set read_only= 1 on the current master
# 4. Kill current queries
# * Any database access failure will result in script die.
+ FLUSH TABLES WITH READ LOCK
Mais ...
26. Zoom sur MHA, cohérence des données
Le point le plus important (pour moi)
MHA fait le nécessaire pour récupérer un maximum de données
Cohérence du nouveau master avec le master original
●
Récupération des logs binaires du master si possible
Cohérence des slaves avec le nouveau master
●
Rattrapage de l'éventuel retard des slaves
28. Quiz
J'ai un « too many connections » sur le master !
a) J'augmente le nombre max de connexions
b) Je switch le master avec MHA
c) Je prend un p'tit rhum vieux et j’attends que ça passe
29. Quiz
Load de 180 !!! sur le master
a) Je me tape un CRS (Citron vert, Rhum blanc, Sucre) et j'attends
b) Je switch le master avec MHA
c) Je redeviens développeur ;)
30. Quiz
Grosse modification de structure d'un table (5h)
a) Je mets à jour les slaves puis en promeus un en master avec MHA
b) Je l'exécute sur le master, en buvant un planteur de la Martinique
c) J'utilise pt-online-schema-change
31. Quiz
Changement de conf à froid et/ou hardware
a) Je me sers un p'tit rhum agricole de la Guadeloupe
b) J’attends que le besoin disparaisse
c) Je mets à jour les slaves puis en promeus un en master avec MHA
33. A retenir
MHA
Minimise la perte de données avec le master
Assures la cohérences des slaves entre eux
Reconfigure automatiquement la réplication
Minimise l’arrêt (ou la dégradation) de service
Simple
●
A utiliser
●
A comprendre
●
A installer
Pas de changement
●
d'architectures
●
de moteurs de stockage (Idéal avec InnoDB)
●
de logiques métier
Performant
●
Quelques secondes de downtime (moins de 2)
Fonctionne à partir des version supérieures à MySQL 5.0.45
Open source
35. Merci
A la team Viadeo A toi public Aux conférienciers
Anna Loïc Dias Da Silva
Aurélien Olivier Hory & Frédéric Perrin
Bouziane Amélie Boucher & Julien Hilion
Marina Pierre Killy
Nicolas Xavier Krantz
Sabri et son équipe Emanuele Pecorari
Xavier François Le Lay
Yorick Nicolas Tricot
... Damien Hardy
Et toutes les « petites mains » Olivier Dasini
Keynote
Arnaud Devigne
Jean-Marc Potdevin
Stefan Fountain
36. Questions
Ou trouver les slides des Viadeo Tech Days ?
Dans vos clés USB
http://techdays.viadeo.com/
http://dasini.net/blog/
38. Surprises
A gagner :
Audit et optimisation – MySQL 5, Bonnes pratiques pour l’administrateur
●
Eyrolles, ISBN-13: 978-2212126341
MySQL 5 – Administration et optimisation
●
ENI, ISBN-13: 978-2-7460-5516-2