Presentation about how to extend MySQL Shell for DBA daily tasks and Innotop like processlist overview.
This presentation was delivered during the pre-FOSDEM MySQL Day on Feb 1st 2019
MySQL New York Meetup: MySQL 8.0 Document Store - How to mix NoSQL & SQL in ...Frederic Descamps
The document discusses the benefits and drawbacks of relational databases and NoSQL/document stores. It notes that developers prefer the flexibility of objects and documents over SQL, but still want data integrity and transactions. MySQL 8.0 aims to provide a document store with the benefits of a transactional relational database to satisfy both preferences.
MySQL InnoDB Cluster and Group Replication in a Nutshell: hands-on tutorialFrederic Descamps
If you are trying to migrate from asynchronous Master-Slave environment to a full HA solution using MySQL InnoDB Cluster 8.0, this tutorial shows you how to proceed and how to manage and monitor your cluster.
The document discusses the state of MySQL in 2019. It notes that MySQL has the second largest market share among databases and is the most used database according to surveys of developers. It outlines many new features introduced in MySQL 8.0 over two years of development, including a document store and improved performance. The role of the community in contributing to MySQL and examples of successful collaboration are also discussed.
How to use the new MySQL 8.0 Document Store with Python.
Easy CRUD operations, JSON validations, analytics with SQL only when needed, full ACID and more !
The document discusses MySQL Shell and how it can be used and extended as a DBA tool. MySQL Shell provides interactive and batch operations using JavaScript, Python or SQL. It supports document and relational data models and CRUD operations. The document outlines how MySQL Shell can be extended through user-defined reports and custom modules to add new functionality like monitoring or deleting routines. It provides examples of extending MySQL Shell to check replication status, view password expiration, find fragmented tables, and see default column values.
How to operate MySQL InnoDB Cluster with MySQL ShellFrederic Descamps
This document provides an overview of operating and maintaining a MySQL InnoDB Cluster with MySQL Shell. It discusses node provisioning using the MySQL CLONE plugin for automatic data synchronization of new nodes. It also covers observability of cluster status using the status() method in MySQL Shell or Performance Schema tables. Cluster configuration options that can be checked and changed include global settings as well as group-specific and instance-specific settings for Group Replication. Consistency levels for the cluster are also discussed to guarantee the most up-to-date data is read without stale or dirty reads.
MySQL InnoDB Cluster - Advanced Configuration & OperationsFrederic Descamps
The document discusses various methods for provisioning and monitoring new members joining a MySQL InnoDB cluster. It describes the incremental recovery and clone-based provisioning processes. It provides guidance on forcing the use of clone over incremental recovery for both provisioning and recovery scenarios. The document also discusses using MySQL Shell commands and Performance Schema tables to monitor the provisioning and recovery processes, as well as the overall health and performance of the cluster.
The MySQL Shell is an interactive interface for MySQL administration and development. It provides both interactive and batch operations using JavaScript, Python, or SQL. The shell contains utilities for tasks like compatibility checks, data imports, and InnoDB Cluster administration. It can be extended through plugins, modules, and user-defined reports to add new functionality or monitor systems.
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...Miguel Araújo
MySQL Shell is an interactive multi-language console interface that supports development and administration for the MySQL Server. It can be used to perform data queries or updates, and administration operations through scriptable DevOps APIs.
It is by nature a unified interface for all DevOps tasks related to MySQL, supporting SQL, JavaScript and Python, with an extensive set of features for both developers and DBAs.
This session demonstrates how can a DevOps-engineer day be better with the MySQL Shell. From the development tasks to the operations, culminating in the management of MySQL InnoDB Cluster (The HA solution for MySQL) with the most recent and advanced features.
Session presented at pre-FOSDEM MySQL Day 2019 (https://lefred.be/content/pre-fosdem-mysql-day-2019/)
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...Frederic Descamps
MySQL Document Store enables us to work with SQL relational tables and schema-less JSON collections. So instead of having a mixed bag of databases, you can just rely on MySQL, where the JSON documents can be stored in collections and managed with CRUD operations. All you need to do is install the X plugin. In this session, you will learn what a document store is, how to install and use it, and all the reasons for considering it. We will also see several specific features helping developers and illustrate how the usual MySQL DBA can manage this new world.
This document provides an overview of MySQL and its capabilities for storing and querying JSON documents. Key points include:
- MySQL has native JSON support with a JSON data type and over 30 JSON functions. It also supports JSON paths.
- MySQL 8.0's document store functionality allows it to be used as a schema-flexible document store without needing to define tables or columns in advance.
- The document store is built on MySQL's existing technologies like InnoDB and provides full ACID compliance for JSON documents.
- MySQL Connector/Python provides APIs for interacting with MySQL as both a relational database and a document store from Python applications in a uniform way.
Oracle Open World 2018 / Code One : MySQL 8.0 Document StoreFrederic Descamps
The document discusses MySQL 8.0 introducing a document store functionality with all the benefits of a transactional relational database. It provides a schema flexible JSON document store without requiring SQL. Developers can use modern programming styles without embedded SQL strings. The document store relies on the proven transactional capabilities of MySQL InnoDB for full ACID compliance.
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20Frederic Descamps
This is the online live version of the State of The Dolphin during Percona Live Online in May 2020.Discover what's new in MySQL 8.0, the Document Store, CTEs, Window Functions, Lateral, JSON_TABLE, the new Volcano Iterator, EXPLAIN ANLYZE, HASH JOIN, the new double write buffer, binlog compression, InnoDB Cluster, InnoDB ReplicaSet, DNS-SRV.... and last but not least our Contributors who made MySQL 8.0 so Great !
MySQL Group Replication: Handling Network Glitches - Best PracticesFrederic Descamps
The document discusses best practices for handling network glitches in group replication. It recommends checking replication status using Performance Schema and MySQL Shell to diagnose issues. It also suggests adapting group replication settings to faulty networks by increasing timeouts to avoid expels. These adaptations include increasing write concurrency and transaction size limits to handle higher latencies. The document also recommends configuring rejoin attempts and quorum timeout to deal with failures and prevent unstable members from interfering.
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...Frederic Descamps
The document provides an overview of the MySQL Shell tool. It discusses how MySQL Shell provides both interactive and batch operations, document and relational models, CRUD APIs via scripting, and traditional and JSON output formats. It also touches on how MySQL Shell supports MySQL standard and X protocols. The document then demonstrates some examples of using MySQL Shell's document store functionality and SQL functionality. It discusses extending MySQL Shell via user-defined reports and plugins.
MySQL Database Service Webinar - Installing WordPress in OCI with MDSFrederic Descamps
The document outlines the steps to install WordPress on Oracle Cloud Infrastructure (OCI) using the MySQL Database Service. This includes creating a VCN with public and private subnets, creating a MySQL Database Service instance, launching a compute instance in the public subnet to host WordPress, installing WordPress and required software like PHP, and configuring security settings on the compute instance and in OCI like firewall rules and SELinux policies.
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!Frederic Descamps
The document is a safe harbor statement outlining Oracle's general product direction for informational purposes only. It states that Oracle has sole discretion over developing and releasing features and that nothing in the document should be relied upon for purchasing decisions. It also contains copyright information.
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLFrederic Descamps
This document provides an overview of MySQL 8.0 and its new features. It introduces Kenny Gryp and Frédéric Descamps, who discuss how MySQL is the second most popular database and most popular open source database. They highlight new SQL features in MySQL 8.0 like common table expressions and window functions. The document also shows how MySQL now supports NoSQL features like JSON and CRUD operations without using SQL. It discusses the new query execution architecture and performance improvements from features like hash joins. Finally, it introduces MySQL InnoDB Cluster for high availability and MySQL Group Replication for active-active replication across data centers.
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...Frederic Descamps
The document discusses migrating from a master-slave MySQL configuration to a MySQL InnoDB Cluster. The plan involves: 1) Taking a hot backup of the current slave and restoring it on a new server; 2) Configuring the new server as an asynchronous slave; 3) Creating an initial InnoDB Cluster with the new server; 4) Stopping replication on the original slave and joining it to the cluster; 5) Optionally adding the original master to the cluster to enable high availability.
ROLE INTERNAL IP
mysql1 master / app 192.168.56.11
mysql2 replica 192.168.56.12
mysql3 n/a 192.168.56.13
The document outlines steps to migrate an asynchronous MySQL replication setup to a MySQL InnoDB Cluster configuration. It describes cloning data from mysql2 to mysql3, creating an InnoDB Cluster with mysql3, configuring asynchronous replication from mysql1 to mysql3, adding mysql2 to the cluster, and bootstrapping a MySQL Router.
MySQL 8.0 : High Availability Solution for EverybodyFrederic Descamps
WePay & MySQL Virtual Meetup: check how easy it's do deploy and High Available Solution for your MySQL Database using MySQL Shell.
Abandon complex architectures and opt for turnkey solutions supported by MySQL.
A solution for all your needs and constraints...
The document provides an overview of MySQL InnoDB Cluster and demonstrates how to set up a basic cluster. Key points include:
- MySQL InnoDB Cluster uses Group Replication to provide high availability, fault tolerance and automated recovery.
- The demo deploys 3 sandbox MySQL instances and uses the MySQL Shell to create an InnoDB cluster spanning the instances.
- By default, the cluster operates in single-primary mode, where one node acts as the primary and accepts writes. Multi-primary mode is also demonstrated.
- Status variables and queries are shown to identify the current primary node.
This document discusses extending the MySQL Shell with plugins. It provides an overview of the MySQL Shell and explains how to write plugins to add new functionality. Plugins can be used to call long statements, group operations, or replace missing functionality. Examples are given for plugins to retrieve password expiration periods, find fragmented tables, and get default column values. Instructions are provided on installing and using plugins within the MySQL Shell.
The document discusses MySQL Shell and how it can be used and extended as a DBA tool. MySQL Shell provides interactive and batch operations using JavaScript, Python or SQL. It supports document and relational data models and CRUD operations. The document outlines how MySQL Shell can be extended through user-defined reports and custom modules to add new functionality like monitoring or deleting routines. It provides examples of extending MySQL Shell to check replication status, view password expiration, find fragmented tables, and see default column values.
How to operate MySQL InnoDB Cluster with MySQL ShellFrederic Descamps
This document provides an overview of operating and maintaining a MySQL InnoDB Cluster with MySQL Shell. It discusses node provisioning using the MySQL CLONE plugin for automatic data synchronization of new nodes. It also covers observability of cluster status using the status() method in MySQL Shell or Performance Schema tables. Cluster configuration options that can be checked and changed include global settings as well as group-specific and instance-specific settings for Group Replication. Consistency levels for the cluster are also discussed to guarantee the most up-to-date data is read without stale or dirty reads.
MySQL InnoDB Cluster - Advanced Configuration & OperationsFrederic Descamps
The document discusses various methods for provisioning and monitoring new members joining a MySQL InnoDB cluster. It describes the incremental recovery and clone-based provisioning processes. It provides guidance on forcing the use of clone over incremental recovery for both provisioning and recovery scenarios. The document also discusses using MySQL Shell commands and Performance Schema tables to monitor the provisioning and recovery processes, as well as the overall health and performance of the cluster.
The MySQL Shell is an interactive interface for MySQL administration and development. It provides both interactive and batch operations using JavaScript, Python, or SQL. The shell contains utilities for tasks like compatibility checks, data imports, and InnoDB Cluster administration. It can be extended through plugins, modules, and user-defined reports to add new functionality or monitor systems.
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...Miguel Araújo
MySQL Shell is an interactive multi-language console interface that supports development and administration for the MySQL Server. It can be used to perform data queries or updates, and administration operations through scriptable DevOps APIs.
It is by nature a unified interface for all DevOps tasks related to MySQL, supporting SQL, JavaScript and Python, with an extensive set of features for both developers and DBAs.
This session demonstrates how can a DevOps-engineer day be better with the MySQL Shell. From the development tasks to the operations, culminating in the management of MySQL InnoDB Cluster (The HA solution for MySQL) with the most recent and advanced features.
Session presented at pre-FOSDEM MySQL Day 2019 (https://lefred.be/content/pre-fosdem-mysql-day-2019/)
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...Frederic Descamps
MySQL Document Store enables us to work with SQL relational tables and schema-less JSON collections. So instead of having a mixed bag of databases, you can just rely on MySQL, where the JSON documents can be stored in collections and managed with CRUD operations. All you need to do is install the X plugin. In this session, you will learn what a document store is, how to install and use it, and all the reasons for considering it. We will also see several specific features helping developers and illustrate how the usual MySQL DBA can manage this new world.
This document provides an overview of MySQL and its capabilities for storing and querying JSON documents. Key points include:
- MySQL has native JSON support with a JSON data type and over 30 JSON functions. It also supports JSON paths.
- MySQL 8.0's document store functionality allows it to be used as a schema-flexible document store without needing to define tables or columns in advance.
- The document store is built on MySQL's existing technologies like InnoDB and provides full ACID compliance for JSON documents.
- MySQL Connector/Python provides APIs for interacting with MySQL as both a relational database and a document store from Python applications in a uniform way.
Oracle Open World 2018 / Code One : MySQL 8.0 Document StoreFrederic Descamps
The document discusses MySQL 8.0 introducing a document store functionality with all the benefits of a transactional relational database. It provides a schema flexible JSON document store without requiring SQL. Developers can use modern programming styles without embedded SQL strings. The document store relies on the proven transactional capabilities of MySQL InnoDB for full ACID compliance.
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20Frederic Descamps
This is the online live version of the State of The Dolphin during Percona Live Online in May 2020.Discover what's new in MySQL 8.0, the Document Store, CTEs, Window Functions, Lateral, JSON_TABLE, the new Volcano Iterator, EXPLAIN ANLYZE, HASH JOIN, the new double write buffer, binlog compression, InnoDB Cluster, InnoDB ReplicaSet, DNS-SRV.... and last but not least our Contributors who made MySQL 8.0 so Great !
MySQL Group Replication: Handling Network Glitches - Best PracticesFrederic Descamps
The document discusses best practices for handling network glitches in group replication. It recommends checking replication status using Performance Schema and MySQL Shell to diagnose issues. It also suggests adapting group replication settings to faulty networks by increasing timeouts to avoid expels. These adaptations include increasing write concurrency and transaction size limits to handle higher latencies. The document also recommends configuring rejoin attempts and quorum timeout to deal with failures and prevent unstable members from interfering.
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...Frederic Descamps
The document provides an overview of the MySQL Shell tool. It discusses how MySQL Shell provides both interactive and batch operations, document and relational models, CRUD APIs via scripting, and traditional and JSON output formats. It also touches on how MySQL Shell supports MySQL standard and X protocols. The document then demonstrates some examples of using MySQL Shell's document store functionality and SQL functionality. It discusses extending MySQL Shell via user-defined reports and plugins.
MySQL Database Service Webinar - Installing WordPress in OCI with MDSFrederic Descamps
The document outlines the steps to install WordPress on Oracle Cloud Infrastructure (OCI) using the MySQL Database Service. This includes creating a VCN with public and private subnets, creating a MySQL Database Service instance, launching a compute instance in the public subnet to host WordPress, installing WordPress and required software like PHP, and configuring security settings on the compute instance and in OCI like firewall rules and SELinux policies.
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!Frederic Descamps
The document is a safe harbor statement outlining Oracle's general product direction for informational purposes only. It states that Oracle has sole discretion over developing and releasing features and that nothing in the document should be relied upon for purchasing decisions. It also contains copyright information.
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLFrederic Descamps
This document provides an overview of MySQL 8.0 and its new features. It introduces Kenny Gryp and Frédéric Descamps, who discuss how MySQL is the second most popular database and most popular open source database. They highlight new SQL features in MySQL 8.0 like common table expressions and window functions. The document also shows how MySQL now supports NoSQL features like JSON and CRUD operations without using SQL. It discusses the new query execution architecture and performance improvements from features like hash joins. Finally, it introduces MySQL InnoDB Cluster for high availability and MySQL Group Replication for active-active replication across data centers.
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...Frederic Descamps
The document discusses migrating from a master-slave MySQL configuration to a MySQL InnoDB Cluster. The plan involves: 1) Taking a hot backup of the current slave and restoring it on a new server; 2) Configuring the new server as an asynchronous slave; 3) Creating an initial InnoDB Cluster with the new server; 4) Stopping replication on the original slave and joining it to the cluster; 5) Optionally adding the original master to the cluster to enable high availability.
ROLE INTERNAL IP
mysql1 master / app 192.168.56.11
mysql2 replica 192.168.56.12
mysql3 n/a 192.168.56.13
The document outlines steps to migrate an asynchronous MySQL replication setup to a MySQL InnoDB Cluster configuration. It describes cloning data from mysql2 to mysql3, creating an InnoDB Cluster with mysql3, configuring asynchronous replication from mysql1 to mysql3, adding mysql2 to the cluster, and bootstrapping a MySQL Router.
MySQL 8.0 : High Availability Solution for EverybodyFrederic Descamps
WePay & MySQL Virtual Meetup: check how easy it's do deploy and High Available Solution for your MySQL Database using MySQL Shell.
Abandon complex architectures and opt for turnkey solutions supported by MySQL.
A solution for all your needs and constraints...
The document provides an overview of MySQL InnoDB Cluster and demonstrates how to set up a basic cluster. Key points include:
- MySQL InnoDB Cluster uses Group Replication to provide high availability, fault tolerance and automated recovery.
- The demo deploys 3 sandbox MySQL instances and uses the MySQL Shell to create an InnoDB cluster spanning the instances.
- By default, the cluster operates in single-primary mode, where one node acts as the primary and accepts writes. Multi-primary mode is also demonstrated.
- Status variables and queries are shown to identify the current primary node.
This document discusses extending the MySQL Shell with plugins. It provides an overview of the MySQL Shell and explains how to write plugins to add new functionality. Plugins can be used to call long statements, group operations, or replace missing functionality. Examples are given for plugins to retrieve password expiration periods, find fragmented tables, and get default column values. Instructions are provided on installing and using plugins within the MySQL Shell.
MySQL InnoDB Cluster provides an integrated high availability and auto-sharding solution for MySQL databases. It consists of Group Replication, MySQL Router, and MySQL Shell. Group Replication coordinates a group of MySQL servers and provides automatic failover. MySQL Router provides transparent client connection routing and failover. MySQL Shell is used to setup, manage, and orchestrate the cluster. The document provides examples of how to deploy a simple three node MySQL InnoDB Cluster using MySQL Shell and demonstrates its high availability capabilities including automatic failover and recovery of nodes.
The document provides an overview of MySQL 8.0 and its features. It discusses how MySQL is the most popular open source and developer database. MySQL 8.0 includes new SQL features like common table expressions, window functions, and JSON support. It also improved performance through a new iterator executor and hash joins. MySQL now provides high availability solutions like InnoDB Cluster and ReplicaSet for easy deployment of fault-tolerant distributed MySQL databases.
MySQL InnoDB Cluster and Group Replication in a NutshellFrederic Descamps
This document outlines the agenda and steps for a hands-on tutorial on MySQL InnoDB Cluster and Group Replication. The agenda includes preparing the workstation by setting up virtual machines, an overview of MySQL InnoDB Cluster and Group Replication, migrating from a master-slave topology to Group Replication, monitoring Group Replication, and application interaction with Group Replication. The first lab demonstrates the current master-slave setup. The migration plan involves installing MySQL InnoDB Cluster on a new server, restoring a backup, setting up asynchronous replication on the new server, adding it to the Group Replication group, pointing the application to a new node, and stopping asynchronous replication after catch up.
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11Kenny Gryp
Oracle's MySQL solutions make it easy to setup various database architectures and achieve high availability with the introduction MySQL InnoDB Cluster and MySQL InnoDB ReplicaSet meeting various high availability requirements. MySQL InnoDB ClusterSet provides a popular disaster recovery solution.
Completely built in-house and supported by Oracle, many enterprises large and small have adopted these solutions into business critical applications.
In this presentation the various database architecture solutions for high availability and disaster recovery will be covered and help you choose the right solutions based on your business requirements.
The document discusses MySQL high availability options including:
1) Asynchronous and semi-synchronous replication for high availability deployments.
2) MySQL InnoDB Cluster which uses Group Replication, MySQL Router, and MySQL Shell to provide an integrated high availability solution.
3) Examples of deploying MySQL InnoDB Cluster in single and multi-data center configurations for high availability and disaster recovery.
2007 MySQL Conference and Expo 90 minute presentation specifically targeting Oracle Developers and DBAs. Topics included.
*DBA Tips, Tricks, Gotcha's & Tools
* Key Differences for Developers
* Migrating from Oracle to MySQL
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.
MySQL InnoDB cluster provides a complete high availability solution for MySQL. MySQL Shell includes AdminAPI which enables you to easily configure and administer a group of at least three MySQL server instances to function as an InnoDB cluster. Each MySQL server instance runs MySQL Group Replication, which provides the mechanism to replicate data within InnoDB clusters, with built-in failover. In the presentation, we will learn on how to set up InnoDB cluster using the official MySQL Docker containers and run them with docker-compose. This presentation covers a demo, including how to connect to the cluster through MySQL Router using a simple application.
Another MySQL HA Solution for ProxySQL Users, Easy and All Integrated: MySQL ...Frederic Descamps
Interactive Help
Cluster Administration
Topology management
Automatic provisioning
Monitoring
MySQL Shell
Copyright @ 2019 Oracle and/or its affiliates.
32 / 41
MySQL Shell provides the developer and DBA with a
single intuitive, exible, and powerful interface for all
MySQL related tasks!
Database Administration Interface
Open Source -- GPL
Multi-Language: JavaScript, Python, and SQL
Naturally scriptable
Supports Document and Relational models
Exposes full Development and Admin
DataOps Barcelona - MySQL HA so easy... that's insane !Frederic Descamps
1. MySQL 8.0 InnoDB Cluster is a new high availability and scaling solution for MySQL that makes setup easy.
2. It uses Group Replication under the hood to allow writing to all nodes simultaneously while maintaining consistency.
3. Key components include MySQL Router for routing and load balancing, and MySQL Shell for administration.
MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)Alfranio Júnior
This document provides an overview and introduction to MySQL Fabric, a new high availability and distributed database solution from Oracle. The summary includes:
- MySQL Fabric is a distributed framework that allows farms of MySQL servers to be managed as highly available groups. It uses extensions and connectors to provide fault tolerance.
- Failure detection and failover works by having MySQL Fabric monitor the servers in an availability group. If the master fails, it will trigger a failover to promote a slave to become the new master.
- MySQL Fabric-aware connectors are available for Python, Java, and PHP that can route transactions, cache information, and handle failures by retrying operations on a different server if needed.
The document summarizes new features and enhancements in MySQL versions 5.7 and 8.0. Key points include:
- MySQL 8.0 provides 3x better performance than 5.7 through optimizations to the optimizer cost model, replication, and other areas.
- New features in 8.0 include JSON support, common table expressions, window functions, and improved security.
- Benchmark results show significant performance improvements for IO-bound and update workloads on MySQL 8.0 compared to 5.7.
Since the introduction of replication in MySQL, users have been trying to automate the promotion of a replica to a primary as well as automating the failover of TCP connections from one database server to another in the event of a database failure: planned or unplanned. For over a decade, users and organizations have designed various types of solutions to achieve this. Though, many of these solutions were done manually or were using third party software, mostly open source, to automate and integrate various architectures.
For more than 5 years now, MySQL offers complete and very easy-to-use solutions to set up database architectures that provide High-Availability and recently added Disaster Recovery capabilities. Completely built in-house and supported by Oracle, many enterprises large and small have adopted these solutions into business-critical applications.
Business requirements dictate what type of database architecture is required for your system. Disaster tolerance is key and can be measured at different levels: data loss, data availability, and uptime. In this session, the various MySQL Database Architecture solutions will be covered to help you choose the right solution based on your business requirements
MySQL InnoDB Cluster provides a complete, high-availability solution for MySQL. Learn how with a few easy-to-use Shell commands, how to set up a MySQL database architecture.
This document provides an introduction to MySQL InnoDB Cluster, which is MySQL's solution for high availability and scaling. It discusses how Group Replication, the heart of MySQL InnoDB Cluster, allows data to be written simultaneously across cluster nodes while maintaining consistency through techniques like conflict detection and resolution. The document also explains how Group Replication provides automatic recovery from failures and makes high availability easy for users to setup and manage.
MySQL for Oracle Developers and the companion MySQL for Oracle DBA's were two presentations for the 2006 MySQL Conference and Expo. These were specifically designed for Oracle resources to understand the usage, syntax and differences between MySQL and Oracle.
MySQL 8 High Availability with InnoDB ClustersMiguel Araújo
MySQL’s InnoDB cluster provides a high-level, easy-to-use solution for MySQL high availability. Combining MySQL Group Replication with MySQL Router and the MySQL Shell into an integrated solution, InnoDB clusters offer easy setup and management of MySQL instances into a fault-tolerant database service. In this session learn how to set up a basic InnoDB cluster, integrate it with applications, and recognize and react to common failure scenarios that would otherwise lead to a database outage.
- Workshop presentation
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
Découvrez un nouveau monde où l'on peut gérer ses données sans la moindre ligne de SQL.
MySQL Document Store utilise le nouveau protocol MySQL X, qui est également présent avec MySQL Database Service sur OCI, et permet aux développeurs d'écrire du code simple et efficace.
Mais attention, si nécessaire, MySQL Document Store peut également traiter les document JSON comme s'ils étaient des tables relationnelles et permettre des requêtes très poussées...
This document discusses how MySQL indexes and histograms can speed up queries. It begins with an introduction to the presenter and topic. The goal of reducing query response time is discussed. Methods for identifying inefficient queries are covered, including using the sys schema. The role of the MySQL optimizer in evaluating query plans is then explained. Different types of indexes that can be used to optimize queries are also outlined.
RivieraJUG - MySQL 8.0 - What's new for developers.pdfFrederic Descamps
This document summarizes Frédéric Descamps' presentation on new features in MySQL 8.0 for developers. It introduces Descamps and covers several new features in MySQL 8.0, including the new volcano iterator and optimizer refactoring, EXPLAIN ANALYZE for analyzing query performance, hash joins replacing block nested loops, common table expressions, lateral derived tables, window functions, JSON functions, table value constructors, functional indexes, invisible indexes, check constraints, expressions as default values, lock modes like NOWAIT and SKIP LOCKED, and support for generated invisible columns as primary keys.
This document provides an overview of new features and enhancements in MySQL 8.0 over the last 18 months, from versions 8.0.23 to 8.0.30. It discusses improvements to replication, Group Replication, InnoDB, and primary keys. Some key changes include a new InnoDB redo log architecture, support for disabling the redo log at runtime, parallel index builds, and the ability to add an invisible auto-increment primary key column to tables without a primary key. The document is presented by Frédéric Descamps at the MySQL User Group NL.
Frédéric Descamps presented on the state of MySQL in 2022. Some key points included:
- MySQL 8.0.29 was the latest release with improvements like IF NOT EXISTS for DDL statements.
- MySQL remains the most popular open source database according to surveys.
- MySQL HeatWave on OCI provides high performance for analytics workloads compared to other cloud offerings.
- The MySQL Operator for Kubernetes makes it easier to deploy and manage MySQL on Kubernetes.
- Upcoming certifications for MySQL 8.0 DBA and Developer were announced.
Percona Live 2022 - MySQL Shell for Visual Studio CodeFrederic Descamps
The document discusses MySQL Shell for Visual Studio Code, a new client for developers and DBAs. It provides an overview of the key features and components of the MySQL Shell extension for VS Code, including how to install and use the SQL Notebook editor, MySQL Shell Console, and its integration with Oracle Cloud Infrastructure. The document also covers how MySQL Shell plugins can still be used with the VS Code extension by copying plugins to the appropriate directory.
Percona Live 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
From a single MySQL instance to multi-site high availability, this is what you will find out in this presentation. You will learn how to make this transition and which solutions best suit changing business requirements (RPO, RTO). Recently, MySQL has extended the possibilities for easy deployment of architecture with integrated tools. Come and discover these open source solutions that are part of MySQL.
In this tutorial, we cover the different deployment possibilities of the MySQL architecture depending on the business requirements for the data. We also deploy some architecture and see how to evolve to the next one.
The tutorial covers the new MySQL Solutions like InnoDB ReplicaSet, InnoDB Cluster, and InnoDB ClusterSet.
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemFrederic Descamps
At the beginning of a project, the database is just a single MySQL instance (maybe not even running on its own hardware)... but with the evolution of the business requirements, the database must change to also meet the new targets of data loss and uptime. During this session we will follow the journey of a single MySQL server from the simple instance to a High Available Architecture with multi-site Disaster Recovery. We will discover easy manageable native solutions like MySQL InnoDB ReplicaSet, MySQL InnoDB Cluster and MySQL InnoDB ClusterSet. The session is also illustrated with commands and examples.
Open Source 101 2022 - MySQL Indexes and HistogramsFrederic Descamps
Nobody complains that the database is too fast. But when things slow down, the complaints come quickly. The two most popular approaches to speeding up queries are indexes and histograms. But there are so many options and types on indexes that it can get confusing. Histograms are fairly new to MySQL but they do not work for all types of data. This talk covers how indexes and histograms work and show you how to test just how effective they are so you can measure the performance of your queries.
Pi Day 2022 - from IoT to MySQL HeatWave Database ServiceFrederic Descamps
HeatWave is a massively parallel, high performance, in-memory query accelerator for Oracle MySQL Database Service that accelerates MySQL performance by orders of magnitude for analytics and mixed workloads. But how do you collect data from an Internet of Things Environment so you can use HeatWave to process it? In one hour you will see how data collected by a Raspberry PI or other Internet of Things device can be uploaded to the MySQL Database Service and then processed by HeatWave.
D'une simple instance MysQL à une haute-disponibilité multi-sites, voici ce que vous décrouvrirez dans cette présentation. Comment effectuer cette transition et quelles solutions conviennent les mieux aux évolutions des exigences commerciales (RPO, RTO). Récemment, MySQL a étendu les possibilités de déploiement aisé d'architecture avec des outils intégrés. Venez découvrir ces solution Open Source qui font partie de MySQL.
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...Frederic Descamps
Logical dumps are becoming popular again. MySQL Shell parallel dump & load utility changed to way to deal with logical dumps, certainly when using instances in the cloud. MySQL 8.0 released also an awesome physical snapshot feature with CLONE.
In this session, I will show how to use these two ways of saving your data and how to use the generated backup to perform point-in-time recovery like a rockstar with MySQL 8.0 in 2022 !
The document discusses the new features of MySQL 8.0. It covers improvements to SQL functionality with common table expressions, window functions, and JSON support. It also discusses performance enhancements including hash joins, faster I/O with the new InnoDB buffer, and group replication for high availability. New features improve security, validation, indexing and usability.
The document is a presentation in French on the new features of MySQL 8.0. It discusses improvements to SQL functionality with Common Table Expressions, Window Functions, and LATERAL queries. It also covers new JSON functions and indexing, improved performance, and new management features in areas like replication, security, and error logging. The presentation provides examples and emphasizes that MySQL now supports both transactional SQL and NoSQL operations on JSON data, combining the benefits of both approaches.
This document provides a summary of updates to MySQL between October 2021 and May 2021. It discusses three releases of MySQL 8.0 (versions 8.0.23, 8.0.24, and 8.0.25) and new features including invisible columns, asynchronous replication connection failover, improved load/dump functionality in MySQL Shell, and the new MySQL Database Service on Oracle Cloud Infrastructure with HeatWave for accelerated analytics.
The document discusses MySQL Shell and how it can help database administrators (DBAs) with common tasks like deploying architectures, preparing upgrades, dumping and loading data, and managing users. MySQL Shell provides tools like the Admin API for configuring MySQL clusters and replicasets, an upgrade checker utility to validate upgrades to MySQL 8.0, and parallel dump and load functionality to backup, migrate, and reset data.
This document summarizes Frédéric Descamps' journey to add a user to the router_rest_accounts table to authenticate with the MySQL Router REST API. After several failed attempts using generated or external passwords, he learns directly from the MySQL Router development team that the REST API supports using the default MySQL 8.0 authentication string or the modular_crypt_format for password hashes, allowing simple password insertion.
A Bot Identification Model and Tool Based on GitHub Activity Sequencesnatarajan8993
These slides are presented at International Workshop on Bots in Software Engineering (BotSE) 2025 as a journal first presentation. The publication can be found at https://doi.org/10.1016/j.jss.2024.112287 and the RABBIT tool at https://github.com/natarajan-chidambaram/RABBIT.
Speech 2-Unity in Diversity, Strength in SolidarityNoraini Yunus
This SlideShare presentation celebrates Singapore's journey through SG60, emphasizing resilience, inclusivity, and the vision for a fair, just, and united nation. It encapsulates the Singapore United Party (SUP) manifesto principles—strong starts for children, accessible housing and healthcare, and opportunities for all—while showcasing Noraini Bte Yunus's commitment to bridging divides, supporting the silver generation, and empowering every Singaporean to pursue their dreams. Together, let's honor the past and secure a brighter future. Moving Forward, Together!
step-by-step setup of the OutSystems Cloud Connector, demonstrating how to establish secure connections with on-premises databases, APIs, and other private endpoints. Whether you are working with legacy systems, enterprise data, or restricted internal services, this session will equip you with the knowledge and best practices to seamlessly integrate them with your cloud applications.
2025-05-04 A New Day Dawns 03 (shared slides).pptxDale Wells
Lesson 3 of 6 in a Heritage Bible Master Class study of "A New Day Dawns"
Heritage Bible Master Class meets every Sunday morning at 10:15 at the Heritage Palms Country Club, on the south side of Fred Waring, just east of Jefferson, in Indio, California. Please come check us out!
⭐️ Bitcoin - Mining Race ⭐️ The Fastest Driven Bitcoin Movement ⭐️ english
⭐️ Referral link - https://miningrace.com/wallet/invite-activate/edA6xDgWMVLBAfCClWJy ⭐️
Invite code - edA6xDgWMVLBAfCClWJy
Mining Race - The fastest growing Bitcoin movement
Join the Ultimate Bitcoin Community Challenge. Race to the Top in Mining Race.
Cryptocurrencies are all about the community. And what better way to fully embrace the BTC community than a community-based mining program?
By participating in the Mining Race, you will not only contribute to the support of the Bitcoin blockchain but also earn more rewards for being a part of the Mining Race community!
Ready to join the Bitcoin Mining Race Challenge?
⭐️ Referral link - https://miningrace.com/wallet/invite-activate/edA6xDgWMVLBAfCClWJy ⭐️
Invite code - edA6xDgWMVLBAfCClWJy
Speech 3-A Vision for Tomorrow for GE2025Noraini Yunus
This SlideShare presentation explores critical choices ahead for Singapore as GE2025 approaches. It highlights the Singapore United Party's manifesto—a roadmap to balance innovation with sustainability, compassion with ambition, and inclusivity with excellence. Through affordable housing, equitable education, and accessible healthcare, Noraini Bte Yunus champions a thriving society. This inspiring message invites Singaporeans to unite, rise above challenges, and build a resilient, forward-looking nation. Together, we can turn aspirations into reality. Moving Forward, Together!
Speech 3-A Vision for Tomorrow for GE2025Noraini Yunus
MySQL Shell : the best DBA tool ?
1. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell.… 1/53
1 / 53
2. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell.… 2/53
2 / 532 / 532 / 53
3. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell.… 3/53
MyMySQLSQL ShellShell:: the best DBA tool ?
How to use theHow to use the MyMySQLSQL ShellShell as a framework for DBAsas a framework for DBAs
Frédéric Descamps - MySQL Community Manager - Oracle
3 / 53
4. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell.… 4/53
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purpose only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied up in
making purchasing decisions. The development, release and timing of any features or
functionality described for Oracle´s product remains at the sole discretion of Oracle.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
4 / 53
5. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell.… 5/53
about me - http://about.me/lefred
Who am I ?Who am I ?
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
5 / 53
6. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell.… 6/53
Frédéric Descamps
@lefred
MySQL Evangelist
Hacking MySQL since 3.23
devops believer
living in Belgium 🇧🇪
http://lefred.be
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
6 / 53
7. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell.… 7/53
a new tool
MyMySQLSQL ShellShell
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
7 / 53
8. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell.… 8/53
MySQL Shell
The MySQL Shell is an interactive Javascript, Python, or SQL interface supporting
development and administration for the MySQL Server and is a component of the MySQL
Server. You can use the MySQL Shell to perform data queries and updates as well as
various administration operations.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
8 / 53
9. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell.… 9/53
MySQL Shell (2)
The MySQL Shell provides:
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
9 / 53
10. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 10/53
MySQL Shell (2)
The MySQL Shell provides:
Both Interactive and Batch operations
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
10 / 53
11. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 11/53
MySQL Shell (2)
The MySQL Shell provides:
Both Interactive and Batch operations
Document and Relational Models
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
11 / 53
12. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 12/53
MySQL Shell (2)
The MySQL Shell provides:
Both Interactive and Batch operations
Document and Relational Models
CRUD Document and Relational APIs via scripting
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
12 / 53
13. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 13/53
MySQL Shell (2)
The MySQL Shell provides:
Both Interactive and Batch operations
Document and Relational Models
CRUD Document and Relational APIs via scripting
Traditional Table, JSON, Tab Separated output results formats
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
13 / 53
14. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 14/53
MySQL Shell (2)
The MySQL Shell provides:
Both Interactive and Batch operations
Document and Relational Models
CRUD Document and Relational APIs via scripting
Traditional Table, JSON, Tab Separated output results formats
MySQL Standard and X Protocols
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
14 / 53
15. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 15/53
MySQL Shell (2)
The MySQL Shell provides:
Both Interactive and Batch operations
Document and Relational Models
CRUD Document and Relational APIs via scripting
Traditional Table, JSON, Tab Separated output results formats
MySQL Standard and X Protocols
and more...
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
15 / 53
16. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 16/53
MySQL Shell and Python
When using the python mode in the Shell, it's possible to use system modules (local).
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
16 / 53
17. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 17/53
MySQL Shell and Python (2)
Of course this can be any type of modules:
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
17 / 53
18. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 18/53
MySQL Shell and Python (2)
Of course this can be any type of modules:
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
18 / 53
19. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 19/53
we want more !
ExtendingExtending MyMySQLSQL ShellShell
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
19 / 53
20. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 20/53
Extending MySQL Shell
It's then possible to create your own modules to extend MySQL Shell.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
20 / 53
21. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 21/53
Extending MySQL Shell
It's then possible to create your own modules to extend MySQL Shell.
For calling some long statements or group of operations or sometimes to replace a
missing functionality.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
21 / 53
22. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 22/53
Extending MySQL Shell
It's then possible to create your own modules to extend MySQL Shell.
For calling some long statements or group of operations or sometimes to replace a
missing functionality.
Recently, somebody pointed out that since the new DD it was not anymore possible to
delete all routines for a specific schema.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
22 / 53
23. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 23/53
Extending MySQL Shell
It's then possible to create your own modules to extend MySQL Shell.
For calling some long statements or group of operations or sometimes to replace a
missing functionality.
Recently, somebody pointed out that since the new DD it was not anymore possible to
delete all routines for a specific schema.
Jesper explained recently how the MySQL Shell could help here see
https://mysql.wisborg.dk/2018/12/02/mysql-8-drop-several-stored-events-
procedures-or-functions/
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
23 / 53
24. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 24/53
Extending MySQL Shell
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
24 / 53
25. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 25/53
Extending MySQL Shell
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
25 / 53
26. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 26/53
Extending MySQL Shell
Or for example, retrieve the expiration period of passwords (see
https://lefred.be/content/mysql-when-will-the-password-of-my-users-expire/):
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
26 / 53
27. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 27/53
Extending MySQL Shell
Another example, retrieve the tables potentially fragmented (see
https://lefred.be/content/overview-of-fragmented-mysql-innodb-tables/):
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
27 / 53
28. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 28/53
Extending MySQL Shell
Recently somebody complained about the complexity of knowing what are the default
values of columns when expressions are used (https://forums.mysql.com/read.php?
101,670682,670682):
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
28 / 53
29. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 29/53
Contribute to MySQL Shell DBA Toolkit ?
Get the code from https://github.com/lefred/mysql-shell-mydba and Pull Requests are
welcome !
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
29 / 53
30. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 30/53
we want even more !
InnoInnotoptop
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
30 / 53
31. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 31/53
Innotop
As maintainer of Innotop, after doing so delayed maintenance, I started a poll on Twitter:
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
31 / 53
32. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 32/53
Innotop (2)
So Innotop is not dead... but it's very complex to maintain... Perl !
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
32 / 53
33. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 33/53
Innotop (2)
So Innotop is not dead... but it's very complex to maintain... Perl !
This is maybe the reason there is less and less contributors...
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
33 / 53
34. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 34/53
Innotop (2)
So Innotop is not dead... but it's very complex to maintain... Perl !
This is maybe the reason there is less and less contributors...
... so and MySQL Shell then ?
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
34 / 53
35. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 35/53
Innotop in MySQL Shell
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
35 / 53
36. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 36/53
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
00:05
36 / 53
37. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 37/53
Innotop in MySQL Shell
How to use it ?How to use it ?
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
37 / 53
38. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 38/53
How to use this module in MySQL Shell ?
The module is available on github: https://github.com/lefred/mysql-shell-innotop
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
38 / 53
39. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 39/53
How to use this module in MySQL Shell ?
The module is available on github: https://github.com/lefred/mysql-shell-innotop
$ mysqlsh --py root@localhost
importimport sys
sys.path.append('/home/fred/workspace/mysql-shell-innotop')
importimport innotop
Py> innotop.session_processlist.run()
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
39 / 53
40. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 40/53
How to use this module in MySQL Shell ?
The module is available on github: https://github.com/lefred/mysql-shell-innotop
$ mysqlsh --py root@localhost
importimport sys
sys.path.append('/home/fred/workspace/mysql-shell-innotop')
importimport innotop
Py> innotop.session_processlist.run()
Add in ~/.mysqlsh/mysqlshrc.py:
importimport sys
sys.path.append('/home/fred/workspace/mysql-shell-innotop')
importimport innotop
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
40 / 53
41. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 41/53
does it work everywhere ?
LimitationsLimitations
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
41 / 53
42. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 42/53
Limitations
requires ncurses
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
42 / 53
43. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 43/53
Limitations
requires ncurses
works almost exclusively on Gnu/Linux
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
43 / 53
44. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 44/53
I want to contribute !
How to write your own extension ?How to write your own extension ?
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
44 / 53
45. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 45/53
Creating you own extension
All extensions are a single file located in the modulesmodules folder:
[fred@imac2 mysql-shell-innotop] $ ls modules/*py
modules/common.py
modules/global_by_ le_by_bytes.py
modules/help.py
modules/__init__.py
modules/session_processlist.py
modules/thread_info.py
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
45 / 53
46. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 46/53
Skeleton of an extension
Every extension starts the same way and requires some mandatory modules:
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
46 / 53
47. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 47/53
Skeleton of an extension
Every extension starts the same way and requires some mandatory modules:
importimport __builtin__
importimport curses
fromfrom datetime importimport datetime
fromfrom time importimport sleep
importimport innotop
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
47 / 53
48. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 48/53
Skeleton of an extension
Every extension starts the same way and requires some mandatory modules:
importimport __builtin__
importimport curses
fromfrom datetime importimport datetime
fromfrom time importimport sleep
importimport innotop
Then you need to specify the shortcuts that calls the functions:
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
48 / 53
49. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 49/53
Skeleton of an extension
Every extension starts the same way and requires some mandatory modules:
importimport __builtin__
importimport curses
fromfrom datetime importimport datetime
fromfrom time importimport sleep
importimport innotop
Then you need to specify the shortcuts that calls the functions:
innotop.shortcut['h']={'return': 'help', 'stdscr': FalseFalse}
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
49 / 53
50. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 50/53
Skeleton of an extension
Every extension starts the same way and requires some mandatory modules:
importimport __builtin__
importimport curses
fromfrom datetime importimport datetime
fromfrom time importimport sleep
importimport innotop
Then you need to specify the shortcuts that calls the functions:
innotop.shortcut['h']={'return': 'help', 'stdscr': FalseFalse}
return:return: name of the module (help.py)
stdscr:stdscr: use the same screen (and pass it to the function)
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
50 / 53
51. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 51/53
Skeleton of an extension - run()
defdef runrun(session, delay=1, back=False):
stdscr, info = innotop.common.setup(curses, session)
keep_running = TrueTrue
whilewhile keep_running:
time = datetime.now()
y,x = innotop.common.topbar(curses, stdscr, info)
<your code>
# Wait until delay seconds have passed while listening for the q key
whilewhile (datetime.now() - time).total_seconds() < delay:
c = stdscr.getch()
ifif c == ord("q"):
keep_running = FalseFalse
breakbreak
ifif notnot back:
# Reset the cures behavior and nish
curses.nocbreak()
stdscr.keypad(FalseFalse)
curses.echo()
curses.endwin
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
51 / 53
52. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 52/53
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
52 / 53
53. 1/18/2019 pre FOSDEM MySQL Day - MySQL Shell : the best DBA tool ?
file:///home/fred/ownCloud/Presentations/ORACLE/FOSDEM2019/MySQL%20Day%20-%20MySQL%20Shell/MySQL%20Day%20-%20MySQL%20Shell… 53/53
Thank you !
Any Questions ?
share your 💕 for MySQL on social media using @mysql #MySQL8isGreat
#MySQLDay #MySQLShell
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
53 / 53