Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

devops Days Belgium Ghent 2016


Published on

MySQL InnoDB Cluster : easy HA and easy deployment

AdminAPI to manage a cluster

Published in: Technology
  • Be the first to comment

devops Days Belgium Ghent 2016

  1. 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. 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
  3. 3. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 3 / 20
  4. 4. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 4 / 20
  5. 5. Tell me what you use... ... I will tell you who you are ! Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 5 / 20
  6. 6. Tell me what you use... ;-) ... I will tell you who you are ! Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 6 / 20
  7. 7. Can be setup in 4 minutes ! (you may haveseen THE video)   ;-) Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 7 / 20
  8. 8. Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 8 / 20
  9. 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. 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. 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. 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. 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. 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. 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. 16. dim0.yaml : classes: - innodbcluster innodbcluster::mysql_serverid: 1 in Puppet now ;-) 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
  17. 17. With HA Proxy Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 17 / 20
  18. 18. With ProxySQL Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 18 / 20
  19. 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
  20. 20. Frédéric Descamps @lefred MySQL Evangelist Managing MySQL since 3.23 devops believer Copyright @ 2016 Oracle and/or its affiliates. All rights reserved. 20 / 20