SlideShare a Scribd company logo
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 1/51
1 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 2/51
2 / 512 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 3/51
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.
3 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 4/51
about me - http://about.me/lefred
Who am I ?
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
4 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 5/51
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.
5 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 6/51
MySQL 8.0
a major release devops friendly
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
6 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 7/51
New Key Features for a devops
World
MySQL 8.0 brought more than 250 features. Some are very
interesting to use with a configuration management system:
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
7 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 8/51
New Key Features for a devops
World
MySQL 8.0 brought more than 250 features. Some are very
interesting to use with a configuration management system:
SET PERSISTS
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
8 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 9/51
New Key Features for a devops
World
MySQL 8.0 brought more than 250 features. Some are very
interesting to use with a configuration management system:
SET PERSISTS
SQL RESTART statement
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
9 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 10/51
New Key Features for a devops
World
MySQL 8.0 brought more than 250 features. Some are very
interesting to use with a configuration management system:
SET PERSISTS
SQL RESTART statement
integrated upgrade process
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
10 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 11/51
New Key Features for a devops
World
MySQL 8.0 brought more than 250 features. Some are very
interesting to use with a configuration management system:
SET PERSISTS
SQL RESTART statement
integrated upgrade process
dual passwords support
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
11 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 12/51
New Key Features for a devops
World
MySQL 8.0 brought more than 250 features. Some are very
interesting to use with a configuration management system:
SET PERSISTS
SQL RESTART statement
integrated upgrade process
dual passwords support
roles
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
12 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 13/51
New Key Features for a devops
World (2)
Partial Revokes from Database Objects
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
13 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 14/51
New Key Features for a devops
World (2)
Partial Revokes from Database Objects
ALTER INSTANCE for changing:
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
14 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 15/51
New Key Features for a devops
World (2)
Partial Revokes from Database Objects
ALTER INSTANCE for changing:
InnoDB Encryption Key
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
15 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 16/51
New Key Features for a devops
World (2)
Partial Revokes from Database Objects
ALTER INSTANCE for changing:
InnoDB Encryption Key
BINLOG Encryption Key
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
16 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 17/51
New Key Features for a devops
World (2)
Partial Revokes from Database Objects
ALTER INSTANCE for changing:
InnoDB Encryption Key
BINLOG Encryption Key
TLS Context (SSL)
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
17 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 18/51
New Key Features for a devops
World (3)
MySQL Shell
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
18 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 19/51
New Key Features for a devops
World (3)
MySQL Shell
util object (check for upgrade)
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
19 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 20/51
New Key Features for a devops
World (3)
MySQL Shell
util object (check for upgrade)
API
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
20 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 21/51
New Key Features for a devops
World (3)
MySQL Shell
util object (check for upgrade)
API
adminAPI for HA
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
21 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 22/51
SET PERSIST
In MySQL 8.0, it's possible to use the SET statement syntax for
making configuration changes at runtime that also persist across
server restarts. This is a SQL statement.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
22 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 23/51
SET PERSIST
In MySQL 8.0, it's possible to use the SET statement syntax for
making configuration changes at runtime that also persist across
server restarts. This is a SQL statement.
The configuration management recipe should not change any configuration
file. The config file should be the default or the most generic possible
according your systems. Then the recipe should verify and set the variables
defined for your system.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
23 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 24/51
RESTART
Something very interesting, especially for Cloud environments,
is the new possibility to restart the mysqld process directly from
the SQL interface.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
24 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 25/51
RESTART
Something very interesting, especially for Cloud environments,
is the new possibility to restart the mysqld process directly from
the SQL interface.
Of course it's possible to call the wrapper taking care of this operation,
service file or systemd service, but instead of subscribing or notifying the
service, when a variable change requires a restart (those are less and less),
it's possible to immediately restart the process directly from SQL
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
25 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 26/51
var
=
yxz
y n
y n
we
are
good
set
persist
we
are
good
set
persist_only
restart
Workflow Example
mysqlsh root@localhost --sql -e "select variable_value
from performance_schema.global_variables
where variable_name='innodb_ ush_method'" | tail -n1
mysqlsh root@localhost --sql
-e "set persist innodb_ ush_method=O_DIRECT"
ERROR: 1238 at line 1: Variable
'innodb_ ush_method' is a read only variable
if [[ $? ne 0 ]]
then
mysqlsh root@localhost --sql
-e "set persist_only innodb_ ush_method=O_DIRECT"
mysqlsh root@localhost --sql
-e "restart"
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
26 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 27/51
mysql_upgrade is gone
Previously, after installation of a new version of MySQL, the
server automatically upgraded the data dictionary tables at the
next startup, after which the DBA was expected to invoke
mysql_upgrade manually to upgrade the system tables in the
mysql schema, as well as objects in other schemas such as the
sys schema and user schemas (and restart mysqld again).
Since MySQL 8.0.16, the server (mysqld) does itself.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
27 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 28/51
mysql_upgrade is gone
Previously, after installation of a new version of MySQL, the
server automatically upgraded the data dictionary tables at the
next startup, after which the DBA was expected to invoke
mysql_upgrade manually to upgrade the system tables in the
mysql schema, as well as objects in other schemas such as the
sys schema and user schemas (and restart mysqld again).
Since MySQL 8.0.16, the server (mysqld) does itself.
Because this operation was manual most systems are running without
updated system tables that can lead to errors. This is particularly true on
systems where the upgrade process is managed by configuration
management systems
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
28 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 29/51
mysql_upgrade is gone (2)
So, why did we do that?
Faster upgrade
Simpler process
Better security
Significant reduction in upgrade steps and more easily
automated
No restarts
Just plug and play
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
29 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 30/51
dual passwords
Since MySQL 8.0.14 it's possible for an account to have dual
password, designated as primary and secondary passwords.
This capability enables phased password changes to be
performed seamlessly in complex multiple-server systems,
without downtime.
SET PASSWORD [FOR user] = 'auth_string'
[REPLACE 'current_auth_string']
[RETAIN CURRENT PASSWORD]
ALTER ... DISCARD OLD PASSWORD can be used later.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
30 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 31/51
dual passwords
Since MySQL 8.0.14 it's possible for an account to have dual
password, designated as primary and secondary passwords.
This capability enables phased password changes to be
performed seamlessly in complex multiple-server systems,
without downtime.
SET PASSWORD [FOR user] = 'auth_string'
[REPLACE 'current_auth_string']
[RETAIN CURRENT PASSWORD]
ALTER ... DISCARD OLD PASSWORD can be used later.
This will allow to change the MySQL password from your configuration
system management without having to plan a complicated orchestration
between involved services
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
31 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 32/51
roles
MySQL 8.0 supports roles, which are named collections of
privileges. Roles enable assignment of sets of privileges to
accounts and provide a convenient alternative to granting
individual privileges.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
32 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 33/51
Partial Revokes from Database
Objects
Have you ever encountered situations where you want to grant
a user access to all databases except a few databases?
Starting from MySQL 8.0.16, you can partially revoke database
privileges from users, even if they are granted global privileges.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
33 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 34/51
Partial Revokes from Database
Objects
Have you ever encountered situations where you want to grant
a user access to all databases except a few databases?
Starting from MySQL 8.0.16, you can partially revoke database
privileges from users, even if they are granted global privileges.
SQL> CREATE USER foo_admin;
SQL> GRANT SELECT ON *.* TO foo_admin;
SQL> SET GLOBAL partial_revokes=ON;
SQL> REVOKE SELECT ON payroll.* FROM foo_admin;
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
34 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 35/51
ALTER INSTANCE
ALTER INSTANCE defines actions applicable to a MySQL server
instance:
InnoDB Encryption Key
ALTER INSTANCE ROTATE INNODB MASTER KEY
This action rotates the master encryption key used for InnoDB
tablespace encryption.
More info: https://dev.mysql.com/doc/refman/8.0/en/innodb-
tablespace-encryption.html
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
35 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 36/51
ALTER INSTANCE (2)
BINLOG Encryption Key
ALTER INSTANCE ROTATE BINLOG MASTER KEY
This action rotates the binary log master key used for binary log
encryption.
It's also possible to call a RESTART to force the master key
rotation using
binlog_rotate_encryption_master_key_at_startup.
More info:
https://dev.mysql.com/doc/refman/8.0/en/replication-binlog-
encryption.html
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
36 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 37/51
ALTER INSTANCE (3)
TLS Context (SSL)
As of MySQL 8.0.16, the SSL context the server uses for new
connections is reconfigurable at runtime. This capability may be
useful, for example, to avoid restarting a MySQL server that has
been running so long that its SSL certificate has expired.
ALTER INSTANCE RELOAD TLS
This action reconfigures the SSL context from the current values
of the system variables that define the context. It also updates
the status variables that reflect the active context values.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
37 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 38/51
MySQL Shell - util object
MySQL Shell includes utilities for working with MySQL. To access
the utilities from within MySQL Shell, use the util global object.
The util.checkForServerUpgrade() function is an upgrade
checker utility that enables you to verify whether MySQL server
instances are ready for upgrade.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
38 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 39/51
MySQL Shell - util object
MySQL Shell includes utilities for working with MySQL. To access
the utilities from within MySQL Shell, use the util global object.
The util.checkForServerUpgrade() function is an upgrade
checker utility that enables you to verify whether MySQL server
instances are ready for upgrade.
This is very useful as you can check that the dataset and settings are
compatible with the newer version.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
39 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 40/51
MySQL Shell - util object (2)
Let's consider the following
puppet recipe:
package {
'mysql-community-server':
ensure => latest,
}
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
40 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 41/51
MySQL Shell - util object (2)
Let's consider the following
puppet recipe:
package {
'mysql-community-server':
ensure => latest,
}
What if the current MySQL version is 5.7.26 and the latest
available is now 8.0.16 ?
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
41 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 42/51
MySQL Shell - util object (3)
package {
'mysql-community-server':
ensure => latest,
noop => true,
notify => Exec['upgrade_checker'],
}
exec {
'upgrade_checker':
command => "mysqlsh -- util check-for-upgrade
{ --user=root --host=localhost }",
refreshonly => true,
no tfy => Package['mysql-comunity-server-real'],
}
package {
'mysql-community-server-real':
name => 'mysql-community-server',
ensure => latest,
refreshonly => true,
}
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
42 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 43/51
MySQL Shell - adminAPI
The AdminAPI are commands you use to work with a cluster and
it's server instances modify the configuration of the instance.
Configuration changes can be persisted to the instance
automatically. Persisting changes is required after the following
operations:
dba.con gureInstance()
dba.createCluster()
Cluster.addInstance()
Cluster.removeInstance()
Cluster.rejoinInstance()
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
43 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 44/51
MySQL Shell - adminAPI
The AdminAPI are commands you use to work with a cluster and
it's server instances modify the configuration of the instance.
Configuration changes can be persisted to the instance
automatically. Persisting changes is required after the following
operations:
dba.con gureInstance()
dba.createCluster()
Cluster.addInstance()
Cluster.removeInstance()
Cluster.rejoinInstance()
All good commands to use in your recipe as they automate a lot
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
44 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 45/51
MySQL Shell - adminAPI (2)
The AdminAPI provides also functions that can be used for
checking if the configuration is suitable to join an InnoDB Cluster
or if the dataset is compatible with the cluster:
dba.checkInstanceCon guration()
Cluster.checkInstanceState()
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
45 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 46/51
MySQL Shell - API
All the Shell API is available via a Command Line Integration
Syntax.
Like the previous example with the util object, this new syntax
helps invoking built-on shell comamnds:
mysqlsh [OPTIONS] [URI] -- <object_name> <method_name> [ argument_list ]
https://mysqlserverteam.com/mysql-shell-api-command-line-
integration-for-devops/
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
46 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 47/51
MySQL Shell - API
All the Shell API is available via a Command Line Integration
Syntax.
Like the previous example with the util object, this new syntax
helps invoking built-on shell comamnds:
mysqlsh [OPTIONS] [URI] -- <object_name> <method_name> [ argument_list ]
https://mysqlserverteam.com/mysql-shell-api-command-line-
integration-for-devops/
This makes much easier call without single quotes, double quotes and
backslashed quotes in your recipes
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
47 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 48/51
in action
operations to manage MySQL
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
48 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 49/51
Let me show you some of these
improvements in action !
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
49 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 50/51
Conclusion
MySQL is evolving taking in consideration comments of those
who are operating MySQL at scale where not everything can be
done manually. We are working on facilitating more and more
the integration of many operations by writing easy APIs.
Now you know what are the best practices to re-write efficient
recipes for your configuration management system.
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
50 / 51
5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019
file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 51/51
Thank you !
Any Questions ?
share your 💕 for MySQL on social media using @mysql
#MySQL8isGreat #MySQL
Copyright @ 2019 Oracle and/or its affiliates. All rights reserved.
51 / 51

More Related Content

What's hot

MySQL Shell - the best DBA tool ?
MySQL Shell - the best DBA tool ? MySQL Shell - the best DBA tool ?
MySQL Shell - the best DBA tool ?
Frederic Descamps
 
Oracle Code Roma: NoSQL + SQL = MySQL
Oracle Code Roma:   NoSQL + SQL = MySQLOracle Code Roma:   NoSQL + SQL = MySQL
Oracle Code Roma: NoSQL + SQL = MySQL
Frederic Descamps
 
Python and MySQL 8.0 Document Store
Python and MySQL 8.0 Document StorePython and MySQL 8.0 Document Store
Python and MySQL 8.0 Document Store
Frederic Descamps
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & Operations
Frederic Descamps
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL Shell
Frederic Descamps
 
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
Frederic Descamps
 
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
Frederic Descamps
 
MySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for EverybodyMySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for Everybody
Frederic Descamps
 
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDSMySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
Frederic Descamps
 
MySQL Shell: the best DBA tool !
MySQL Shell: the best DBA tool !MySQL Shell: the best DBA tool !
MySQL Shell: the best DBA tool !
Frederic Descamps
 
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLOracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Frederic Descamps
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
Frederic Descamps
 
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
Frederic Descamps
 
MySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best PracticesMySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best Practices
Frederic Descamps
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
Frederic Descamps
 
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
Dave Stokes
 
Oracle Open World 2018 / Code One : MySQL 8.0 Document Store
Oracle Open World 2018 /  Code One : MySQL 8.0 Document StoreOracle Open World 2018 /  Code One : MySQL 8.0 Document Store
Oracle Open World 2018 / Code One : MySQL 8.0 Document Store
Frederic Descamps
 
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Frederic Descamps
 
Looking Inside the MySQL 8.0 Document Store
Looking Inside the MySQL 8.0 Document StoreLooking Inside the MySQL 8.0 Document Store
Looking Inside the MySQL 8.0 Document Store
Frederic Descamps
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
Frederic Descamps
 

What's hot (20)

MySQL Shell - the best DBA tool ?
MySQL Shell - the best DBA tool ? MySQL Shell - the best DBA tool ?
MySQL Shell - the best DBA tool ?
 
Oracle Code Roma: NoSQL + SQL = MySQL
Oracle Code Roma:   NoSQL + SQL = MySQLOracle Code Roma:   NoSQL + SQL = MySQL
Oracle Code Roma: NoSQL + SQL = MySQL
 
Python and MySQL 8.0 Document Store
Python and MySQL 8.0 Document StorePython and MySQL 8.0 Document Store
Python and MySQL 8.0 Document Store
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & Operations
 
How to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL ShellHow to operate MySQL InnoDB Cluster with MySQL Shell
How to operate MySQL InnoDB Cluster with MySQL Shell
 
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
OpenExpo Virtual Experience 2020: MySQL 8.0 Document Store - Discovery of a n...
 
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
State of the Dolphin 2020 - 25th Anniversary of MySQL with 8.0.20
 
MySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for EverybodyMySQL 8.0 : High Availability Solution for Everybody
MySQL 8.0 : High Availability Solution for Everybody
 
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDSMySQL Database Service Webinar - Installing WordPress in OCI with MDS
MySQL Database Service Webinar - Installing WordPress in OCI with MDS
 
MySQL Shell: the best DBA tool !
MySQL Shell: the best DBA tool !MySQL Shell: the best DBA tool !
MySQL Shell: the best DBA tool !
 
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQLOracle Open World Middle East - MySQL 8 a Giant Leap for SQL
Oracle Open World Middle East - MySQL 8 a Giant Leap for SQL
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
 
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
UAE MySQL Users Group Meet-up : MySQL Shell Document Store & more...
 
MySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best PracticesMySQL Group Replication: Handling Network Glitches - Best Practices
MySQL Group Replication: Handling Network Glitches - Best Practices
 
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest TutorialMySQL 8.0 InnoDB Cluster - Easiest Tutorial
MySQL 8.0 InnoDB Cluster - Easiest Tutorial
 
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
PHP, The X DevAPI, and the MySQL Document Store -- Benelux PHP Confernece 2019
 
Oracle Open World 2018 / Code One : MySQL 8.0 Document Store
Oracle Open World 2018 /  Code One : MySQL 8.0 Document StoreOracle Open World 2018 /  Code One : MySQL 8.0 Document Store
Oracle Open World 2018 / Code One : MySQL 8.0 Document Store
 
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...Oracle Open World 2018 / Code One  : MySQL 8.0 High Availability with MySQL I...
Oracle Open World 2018 / Code One : MySQL 8.0 High Availability with MySQL I...
 
Looking Inside the MySQL 8.0 Document Store
Looking Inside the MySQL 8.0 Document StoreLooking Inside the MySQL 8.0 Document Store
Looking Inside the MySQL 8.0 Document Store
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
 

Similar to How to write efficient and correct MySQL recipes for you configuration management system in 2019

Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB Cluster
Balasubramanian Kandasamy
 
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
Miguel Araújo
 
Confoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSetConfoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSet
Dave Stokes
 
MySQL InnoDB Cluster and Group Replication in a Nutshell: hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a Nutshell:  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a Nutshell:  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a Nutshell: hands-on tutorial
Frederic Descamps
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
Keith Hollman
 
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
Miguel Araújo
 
MySQL Shell - the best DBA tool !
MySQL Shell - the best DBA tool !MySQL Shell - the best DBA tool !
MySQL Shell - the best DBA tool !
Frederic Descamps
 
20190915_MySQL開発最新動向
20190915_MySQL開発最新動向20190915_MySQL開発最新動向
20190915_MySQL開発最新動向
Machiko Ikoma
 
Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2
Kathy Forte (Hassard)
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021
Frederic Descamps
 
MySQL User Camp: GTIDs
MySQL User Camp: GTIDsMySQL User Camp: GTIDs
MySQL User Camp: GTIDs
Shivji Kumar Jha
 
A Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document StoreA Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document Store
Dave Stokes
 
the State of the Dolphin - October 2020
the State of the Dolphin - October 2020the State of the Dolphin - October 2020
the State of the Dolphin - October 2020
Frederic Descamps
 
MySQL Shell for DBAs
MySQL Shell for DBAsMySQL Shell for DBAs
MySQL Shell for DBAs
Frederic Descamps
 
20190713_MySQL開発最新動向
20190713_MySQL開発最新動向20190713_MySQL開発最新動向
20190713_MySQL開発最新動向
Machiko Ikoma
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
Ivan Ma
 
2019 dev-marc sewtz-session-keynote-oracle_apex_19__neue_features_und_roadmap...
2019 dev-marc sewtz-session-keynote-oracle_apex_19__neue_features_und_roadmap...2019 dev-marc sewtz-session-keynote-oracle_apex_19__neue_features_und_roadmap...
2019 dev-marc sewtz-session-keynote-oracle_apex_19__neue_features_und_roadmap...
Mohamedcpcbma
 
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
Frederic Descamps
 
MySQL Devops Webinar
MySQL Devops WebinarMySQL Devops Webinar
MySQL Devops Webinar
Frederic Descamps
 
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
Frederic Descamps
 

Similar to How to write efficient and correct MySQL recipes for you configuration management system in 2019 (20)

Docker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB ClusterDocker Compose Setup for MySQL InnoDB Cluster
Docker Compose Setup for MySQL InnoDB Cluster
 
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL ShellMySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
MySQL InnoDB Cluster: Management and Troubleshooting with MySQL Shell
 
Confoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSetConfoo 202 - MySQL Group Replication and ReplicaSet
Confoo 202 - MySQL Group Replication and ReplicaSet
 
MySQL InnoDB Cluster and Group Replication in a Nutshell: hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a Nutshell:  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a Nutshell:  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a Nutshell: hands-on tutorial
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
 
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
MySQL Shell - A DevOps-engineer day with MySQL’s development and administrati...
 
MySQL Shell - the best DBA tool !
MySQL Shell - the best DBA tool !MySQL Shell - the best DBA tool !
MySQL Shell - the best DBA tool !
 
20190915_MySQL開発最新動向
20190915_MySQL開発最新動向20190915_MySQL開発最新動向
20190915_MySQL開発最新動向
 
Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2Sunshine php my sql 8.0 v2
Sunshine php my sql 8.0 v2
 
State of The Dolphin - May 2021
State of The Dolphin - May 2021State of The Dolphin - May 2021
State of The Dolphin - May 2021
 
MySQL User Camp: GTIDs
MySQL User Camp: GTIDsMySQL User Camp: GTIDs
MySQL User Camp: GTIDs
 
A Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document StoreA Step by Step Introduction to the MySQL Document Store
A Step by Step Introduction to the MySQL Document Store
 
the State of the Dolphin - October 2020
the State of the Dolphin - October 2020the State of the Dolphin - October 2020
the State of the Dolphin - October 2020
 
MySQL Shell for DBAs
MySQL Shell for DBAsMySQL Shell for DBAs
MySQL Shell for DBAs
 
20190713_MySQL開発最新動向
20190713_MySQL開発最新動向20190713_MySQL開発最新動向
20190713_MySQL開発最新動向
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
 
2019 dev-marc sewtz-session-keynote-oracle_apex_19__neue_features_und_roadmap...
2019 dev-marc sewtz-session-keynote-oracle_apex_19__neue_features_und_roadmap...2019 dev-marc sewtz-session-keynote-oracle_apex_19__neue_features_und_roadmap...
2019 dev-marc sewtz-session-keynote-oracle_apex_19__neue_features_und_roadmap...
 
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
 
MySQL Devops Webinar
MySQL Devops WebinarMySQL Devops Webinar
MySQL Devops Webinar
 
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
MySQL Day Virtual: Best Practices Tips - Upgrading to MySQL 8.0
 

More from Frederic Descamps

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
Frederic Descamps
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
Frederic Descamps
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms
Frederic Descamps
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
Frederic Descamps
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8
Frederic Descamps
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022
Frederic Descamps
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code
Frederic Descamps
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database System
Frederic Descamps
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL Architectures
Frederic Descamps
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
Frederic Descamps
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and Histograms
Frederic Descamps
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Frederic Descamps
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
Frederic Descamps
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
Frederic Descamps
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
Frederic Descamps
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
Frederic Descamps
 
MySQL Router REST API
MySQL Router REST APIMySQL Router REST API
MySQL Router REST API
Frederic Descamps
 
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
Frederic Descamps
 
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native -  Why to use MySQL 8.0 and how to use it on oci with MDSCloud native -  Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Frederic Descamps
 

More from Frederic Descamps (20)

MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms
 
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdfRivieraJUG - MySQL 8.0 - What's new for developers.pdf
RivieraJUG - MySQL 8.0 - What's new for developers.pdf
 
MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8MySQL User Group NL - MySQL 8
MySQL User Group NL - MySQL 8
 
State of the Dolphin - May 2022
State of the Dolphin - May 2022State of the Dolphin - May 2022
State of the Dolphin - May 2022
 
Percona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio CodePercona Live 2022 - MySQL Shell for Visual Studio Code
Percona Live 2022 - MySQL Shell for Visual Studio Code
 
Percona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database SystemPercona Live 2022 - The Evolution of a MySQL Database System
Percona Live 2022 - The Evolution of a MySQL Database System
 
Percona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL ArchitecturesPercona Live 2022 - MySQL Architectures
Percona Live 2022 - MySQL Architectures
 
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database SystemLinuxFest Northwest 2022 - The Evolution of a MySQL Database System
LinuxFest Northwest 2022 - The Evolution of a MySQL Database System
 
Open Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and HistogramsOpen Source 101 2022 - MySQL Indexes and Histograms
Open Source 101 2022 - MySQL Indexes and Histograms
 
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
Pi Day 2022 -  from IoT to MySQL HeatWave Database ServicePi Day 2022 -  from IoT to MySQL HeatWave Database Service
Pi Day 2022 - from IoT to MySQL HeatWave Database Service
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
 
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...FOSDEM 2022 MySQL Devroom:  MySQL 8.0 - Logical Backups, Snapshots and Point-...
FOSDEM 2022 MySQL Devroom: MySQL 8.0 - Logical Backups, Snapshots and Point-...
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0Les nouveautés de MySQL 8.0
Les nouveautés de MySQL 8.0
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
 
MySQL Router REST API
MySQL Router REST APIMySQL Router REST API
MySQL Router REST API
 
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
From single MySQL instance to High Availability: the journey to MySQL InnoDB ...
 
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native -  Why to use MySQL 8.0 and how to use it on oci with MDSCloud native -  Why to use MySQL 8.0 and how to use it on oci with MDS
Cloud native - Why to use MySQL 8.0 and how to use it on oci with MDS
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 

How to write efficient and correct MySQL recipes for you configuration management system in 2019

  • 1. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 1/51 1 / 51
  • 2. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 2/51 2 / 512 / 51
  • 3. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 3/51 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. 3 / 51
  • 4. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 4/51 about me - http://about.me/lefred Who am I ? Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 4 / 51
  • 5. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 5/51 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. 5 / 51
  • 6. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 6/51 MySQL 8.0 a major release devops friendly Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 6 / 51
  • 7. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 7/51 New Key Features for a devops World MySQL 8.0 brought more than 250 features. Some are very interesting to use with a configuration management system: Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 7 / 51
  • 8. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 8/51 New Key Features for a devops World MySQL 8.0 brought more than 250 features. Some are very interesting to use with a configuration management system: SET PERSISTS Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 8 / 51
  • 9. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration manageme… 9/51 New Key Features for a devops World MySQL 8.0 brought more than 250 features. Some are very interesting to use with a configuration management system: SET PERSISTS SQL RESTART statement Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 9 / 51
  • 10. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 10/51 New Key Features for a devops World MySQL 8.0 brought more than 250 features. Some are very interesting to use with a configuration management system: SET PERSISTS SQL RESTART statement integrated upgrade process Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 10 / 51
  • 11. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 11/51 New Key Features for a devops World MySQL 8.0 brought more than 250 features. Some are very interesting to use with a configuration management system: SET PERSISTS SQL RESTART statement integrated upgrade process dual passwords support Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 11 / 51
  • 12. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 12/51 New Key Features for a devops World MySQL 8.0 brought more than 250 features. Some are very interesting to use with a configuration management system: SET PERSISTS SQL RESTART statement integrated upgrade process dual passwords support roles Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 12 / 51
  • 13. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 13/51 New Key Features for a devops World (2) Partial Revokes from Database Objects Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 13 / 51
  • 14. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 14/51 New Key Features for a devops World (2) Partial Revokes from Database Objects ALTER INSTANCE for changing: Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 14 / 51
  • 15. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 15/51 New Key Features for a devops World (2) Partial Revokes from Database Objects ALTER INSTANCE for changing: InnoDB Encryption Key Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 15 / 51
  • 16. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 16/51 New Key Features for a devops World (2) Partial Revokes from Database Objects ALTER INSTANCE for changing: InnoDB Encryption Key BINLOG Encryption Key Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 16 / 51
  • 17. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 17/51 New Key Features for a devops World (2) Partial Revokes from Database Objects ALTER INSTANCE for changing: InnoDB Encryption Key BINLOG Encryption Key TLS Context (SSL) Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 17 / 51
  • 18. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 18/51 New Key Features for a devops World (3) MySQL Shell Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 18 / 51
  • 19. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 19/51 New Key Features for a devops World (3) MySQL Shell util object (check for upgrade) Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 19 / 51
  • 20. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 20/51 New Key Features for a devops World (3) MySQL Shell util object (check for upgrade) API Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 20 / 51
  • 21. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 21/51 New Key Features for a devops World (3) MySQL Shell util object (check for upgrade) API adminAPI for HA Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 21 / 51
  • 22. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 22/51 SET PERSIST In MySQL 8.0, it's possible to use the SET statement syntax for making configuration changes at runtime that also persist across server restarts. This is a SQL statement. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 22 / 51
  • 23. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 23/51 SET PERSIST In MySQL 8.0, it's possible to use the SET statement syntax for making configuration changes at runtime that also persist across server restarts. This is a SQL statement. The configuration management recipe should not change any configuration file. The config file should be the default or the most generic possible according your systems. Then the recipe should verify and set the variables defined for your system. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 23 / 51
  • 24. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 24/51 RESTART Something very interesting, especially for Cloud environments, is the new possibility to restart the mysqld process directly from the SQL interface. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 24 / 51
  • 25. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 25/51 RESTART Something very interesting, especially for Cloud environments, is the new possibility to restart the mysqld process directly from the SQL interface. Of course it's possible to call the wrapper taking care of this operation, service file or systemd service, but instead of subscribing or notifying the service, when a variable change requires a restart (those are less and less), it's possible to immediately restart the process directly from SQL Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 25 / 51
  • 26. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 26/51 var = yxz y n y n we are good set persist we are good set persist_only restart Workflow Example mysqlsh root@localhost --sql -e "select variable_value from performance_schema.global_variables where variable_name='innodb_ ush_method'" | tail -n1 mysqlsh root@localhost --sql -e "set persist innodb_ ush_method=O_DIRECT" ERROR: 1238 at line 1: Variable 'innodb_ ush_method' is a read only variable if [[ $? ne 0 ]] then mysqlsh root@localhost --sql -e "set persist_only innodb_ ush_method=O_DIRECT" mysqlsh root@localhost --sql -e "restart" Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 26 / 51
  • 27. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 27/51 mysql_upgrade is gone Previously, after installation of a new version of MySQL, the server automatically upgraded the data dictionary tables at the next startup, after which the DBA was expected to invoke mysql_upgrade manually to upgrade the system tables in the mysql schema, as well as objects in other schemas such as the sys schema and user schemas (and restart mysqld again). Since MySQL 8.0.16, the server (mysqld) does itself. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 27 / 51
  • 28. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 28/51 mysql_upgrade is gone Previously, after installation of a new version of MySQL, the server automatically upgraded the data dictionary tables at the next startup, after which the DBA was expected to invoke mysql_upgrade manually to upgrade the system tables in the mysql schema, as well as objects in other schemas such as the sys schema and user schemas (and restart mysqld again). Since MySQL 8.0.16, the server (mysqld) does itself. Because this operation was manual most systems are running without updated system tables that can lead to errors. This is particularly true on systems where the upgrade process is managed by configuration management systems Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 28 / 51
  • 29. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 29/51 mysql_upgrade is gone (2) So, why did we do that? Faster upgrade Simpler process Better security Significant reduction in upgrade steps and more easily automated No restarts Just plug and play Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 29 / 51
  • 30. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 30/51 dual passwords Since MySQL 8.0.14 it's possible for an account to have dual password, designated as primary and secondary passwords. This capability enables phased password changes to be performed seamlessly in complex multiple-server systems, without downtime. SET PASSWORD [FOR user] = 'auth_string' [REPLACE 'current_auth_string'] [RETAIN CURRENT PASSWORD] ALTER ... DISCARD OLD PASSWORD can be used later. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 30 / 51
  • 31. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 31/51 dual passwords Since MySQL 8.0.14 it's possible for an account to have dual password, designated as primary and secondary passwords. This capability enables phased password changes to be performed seamlessly in complex multiple-server systems, without downtime. SET PASSWORD [FOR user] = 'auth_string' [REPLACE 'current_auth_string'] [RETAIN CURRENT PASSWORD] ALTER ... DISCARD OLD PASSWORD can be used later. This will allow to change the MySQL password from your configuration system management without having to plan a complicated orchestration between involved services Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 31 / 51
  • 32. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 32/51 roles MySQL 8.0 supports roles, which are named collections of privileges. Roles enable assignment of sets of privileges to accounts and provide a convenient alternative to granting individual privileges. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 32 / 51
  • 33. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 33/51 Partial Revokes from Database Objects Have you ever encountered situations where you want to grant a user access to all databases except a few databases? Starting from MySQL 8.0.16, you can partially revoke database privileges from users, even if they are granted global privileges. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 33 / 51
  • 34. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 34/51 Partial Revokes from Database Objects Have you ever encountered situations where you want to grant a user access to all databases except a few databases? Starting from MySQL 8.0.16, you can partially revoke database privileges from users, even if they are granted global privileges. SQL> CREATE USER foo_admin; SQL> GRANT SELECT ON *.* TO foo_admin; SQL> SET GLOBAL partial_revokes=ON; SQL> REVOKE SELECT ON payroll.* FROM foo_admin; Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 34 / 51
  • 35. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 35/51 ALTER INSTANCE ALTER INSTANCE defines actions applicable to a MySQL server instance: InnoDB Encryption Key ALTER INSTANCE ROTATE INNODB MASTER KEY This action rotates the master encryption key used for InnoDB tablespace encryption. More info: https://dev.mysql.com/doc/refman/8.0/en/innodb- tablespace-encryption.html Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 35 / 51
  • 36. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 36/51 ALTER INSTANCE (2) BINLOG Encryption Key ALTER INSTANCE ROTATE BINLOG MASTER KEY This action rotates the binary log master key used for binary log encryption. It's also possible to call a RESTART to force the master key rotation using binlog_rotate_encryption_master_key_at_startup. More info: https://dev.mysql.com/doc/refman/8.0/en/replication-binlog- encryption.html Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 36 / 51
  • 37. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 37/51 ALTER INSTANCE (3) TLS Context (SSL) As of MySQL 8.0.16, the SSL context the server uses for new connections is reconfigurable at runtime. This capability may be useful, for example, to avoid restarting a MySQL server that has been running so long that its SSL certificate has expired. ALTER INSTANCE RELOAD TLS This action reconfigures the SSL context from the current values of the system variables that define the context. It also updates the status variables that reflect the active context values. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 37 / 51
  • 38. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 38/51 MySQL Shell - util object MySQL Shell includes utilities for working with MySQL. To access the utilities from within MySQL Shell, use the util global object. The util.checkForServerUpgrade() function is an upgrade checker utility that enables you to verify whether MySQL server instances are ready for upgrade. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 38 / 51
  • 39. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 39/51 MySQL Shell - util object MySQL Shell includes utilities for working with MySQL. To access the utilities from within MySQL Shell, use the util global object. The util.checkForServerUpgrade() function is an upgrade checker utility that enables you to verify whether MySQL server instances are ready for upgrade. This is very useful as you can check that the dataset and settings are compatible with the newer version. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 39 / 51
  • 40. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 40/51 MySQL Shell - util object (2) Let's consider the following puppet recipe: package { 'mysql-community-server': ensure => latest, } Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 40 / 51
  • 41. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 41/51 MySQL Shell - util object (2) Let's consider the following puppet recipe: package { 'mysql-community-server': ensure => latest, } What if the current MySQL version is 5.7.26 and the latest available is now 8.0.16 ? Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 41 / 51
  • 42. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 42/51 MySQL Shell - util object (3) package { 'mysql-community-server': ensure => latest, noop => true, notify => Exec['upgrade_checker'], } exec { 'upgrade_checker': command => "mysqlsh -- util check-for-upgrade { --user=root --host=localhost }", refreshonly => true, no tfy => Package['mysql-comunity-server-real'], } package { 'mysql-community-server-real': name => 'mysql-community-server', ensure => latest, refreshonly => true, } Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 42 / 51
  • 43. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 43/51 MySQL Shell - adminAPI The AdminAPI are commands you use to work with a cluster and it's server instances modify the configuration of the instance. Configuration changes can be persisted to the instance automatically. Persisting changes is required after the following operations: dba.con gureInstance() dba.createCluster() Cluster.addInstance() Cluster.removeInstance() Cluster.rejoinInstance() Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 43 / 51
  • 44. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 44/51 MySQL Shell - adminAPI The AdminAPI are commands you use to work with a cluster and it's server instances modify the configuration of the instance. Configuration changes can be persisted to the instance automatically. Persisting changes is required after the following operations: dba.con gureInstance() dba.createCluster() Cluster.addInstance() Cluster.removeInstance() Cluster.rejoinInstance() All good commands to use in your recipe as they automate a lot Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 44 / 51
  • 45. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 45/51 MySQL Shell - adminAPI (2) The AdminAPI provides also functions that can be used for checking if the configuration is suitable to join an InnoDB Cluster or if the dataset is compatible with the cluster: dba.checkInstanceCon guration() Cluster.checkInstanceState() Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 45 / 51
  • 46. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 46/51 MySQL Shell - API All the Shell API is available via a Command Line Integration Syntax. Like the previous example with the util object, this new syntax helps invoking built-on shell comamnds: mysqlsh [OPTIONS] [URI] -- <object_name> <method_name> [ argument_list ] https://mysqlserverteam.com/mysql-shell-api-command-line- integration-for-devops/ Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 46 / 51
  • 47. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 47/51 MySQL Shell - API All the Shell API is available via a Command Line Integration Syntax. Like the previous example with the util object, this new syntax helps invoking built-on shell comamnds: mysqlsh [OPTIONS] [URI] -- <object_name> <method_name> [ argument_list ] https://mysqlserverteam.com/mysql-shell-api-command-line- integration-for-devops/ This makes much easier call without single quotes, double quotes and backslashed quotes in your recipes Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 47 / 51
  • 48. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 48/51 in action operations to manage MySQL Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 48 / 51
  • 49. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 49/51 Let me show you some of these improvements in action ! Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 49 / 51
  • 50. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 50/51 Conclusion MySQL is evolving taking in consideration comments of those who are operating MySQL at scale where not everything can be done manually. We are working on facilitating more and more the integration of many operations by writing easy APIs. Now you know what are the best practices to re-write efficient recipes for your configuration management system. Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 50 / 51
  • 51. 5/24/2019 How to write efficient and correct MySQL recipes for you configuration management system in 2019 file:///home/fred/ownCloud/Presentations/ORACLE/LOADays 2019/How to write efficient and correct MySQL recipes for you configuration managem… 51/51 Thank you ! Any Questions ? share your 💕 for MySQL on social media using @mysql #MySQL8isGreat #MySQL Copyright @ 2019 Oracle and/or its affiliates. All rights reserved. 51 / 51