How AI, OpenAI, and ChatGPT impact business and software.
devops Days Belgium Ghent 2016
1.
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 @ 2016 Oracle and/or its affiliates. All rights reserved.
1 / 20
2. Yes in MySQL we care about devops !
MySQLnnoDB Cluster: easy HA and easy Deployment
Frédéric Descamps - MySQL Community Manager - Oracle
devops Days Ghent 2016
2 / 20
9. MySQL Group Replication
GR is a plugin for MySQL, made by MySQL and packaged with MySQL
GR is an implementation of Replicated Database State Machine theory
MySQL Group Communication System (GCS) is based on Paxos Mencius
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
9 / 20
10. MySQL Group Replication (2)
Provides virtually synchronous replication for MySQL 5.7+
Supported on all MySQL platforms !!
Linux, Windows, Solaris, OSX, FreeBSD
“Multi-master updateanywherereplication plugin for MySQL with built-in conflict
detection and resolution, automatic distributed recovery, and group membership.”
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
10 / 20
11. MySQL Router
MySQL Router is lightweight middleware that provides transparent routing between your
application and any backend MySQLMySQL Servers. It can beused for a wide variety of use
cases, such as providing high availability and scalability by effectively routing database
traffic to appropriate backend MySQL Servers.
MySQL Router doesn't need to be configured it gets its configuration from the cluster's
metadata.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
11 / 20
12. MySQL Shell
TheMySQL Shell is an interactive Javascript, Python, or SQL interface supporting
development and administration for the MySQL Server. You can use the MySQL Shell to
perform data queries and updates as well as various administration operations.
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
12 / 20
13. MySQL Shell (2)
TheMySQL Shell provides:
Both Interactive and Batch operations
CRUD Document and Relational APIs via scripting
Traditional Table, JSON, Tab Separated output results formats
MySQL Standard and X Protocols
and more...
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
13 / 20
14. Commands to deploy a cluster using MySQL
Shell's adminAPI:
mysql-js> var i1 = 'root@dim0:3306';
mysql-js> var i2 = 'root@inuits:3306';
mysql-js> var i3 = 'root@punch:3306';
mysql-js> dba.checkInstanceCon g(i1);
mysql-js> dba.checkInstanceCon g(i2);
mysql-js> dba.checkInstanceCon g(i3);
mysql-js> shell.connect(i1);
mysql-js> var cluster = dba.createCluster('devopsdaysGhentCluster');
mysql-js> cluster.checkInstanceState(i2);
mysql-js> cluster.addInstance(i2);
mysql-js> cluster.checkInstanceState(i3);
mysql-js> cluster.addInstance(i3);
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
14 / 20
15. MySQL Shell's adminAPI
new since last labs release:
dba.checkInstanceCongif(): verifies if all configuration variables are
correct
cluster.checkInstanceState(): verifies the state of the dataset
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
15 / 20
16. dim0.yaml :
classes:
- innodbcluster
innodbcluster::mysql_serverid: 1
in Puppet now ;-)
https://github.com/lefred/puppet-lefred-innodbcluster
Very easy to configure with hiera:
common.yaml:
innodbcluster::mysql_root_password: fred
innodbcluster::mysql_bind_interface: eth1
innodbcluster::cluster_name: devopsdaysGhentCluster
innodbcluster::grant::user: root
innodbcluster::grant::password: fred
innodbcluster::seed: mysql1
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
16 / 20
19. Persisting Configuration Variables
In the next major release of MySQL (8.0) we also introduce a new feature which allow
configuration variables to be persisted.
This means that for a number of configuration settings, you will no longer need to
manually edit a configuration file and can instead make modifications directly via an SQL
connection.
mysql> SET PERSIST innodb_buffer_pool_size = 512 * 1024 * 1024;
Query OK, 0 rows affected (0.01 sec)
mysql> SET PERSIST max_connections=500;
Query OK, 0 rows affected (0.00 sec)
Copyright @ 2016 Oracle and/or its affiliates. All rights reserved.
19 / 20