Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching

Oracle Engineered System


当前位置: 首页 » 技术文章 » MySQL

MySQL HA - Innodb Cluster

2017年4月12日,Oracle官方推出的的一套完整的的高可用解决方案Innodb Cluster,完全是原生的高可用。MySQL所有的高可用,包括集群,全部是Sharing nothing,这也是和Oracle数据库很明显的一个区别。主要包含了三个组件:


1.Group Replication(5.7以上才有)
Group Replication 可以把数据同步到集群内的所有成员中,并支持自动故障转移、灵活扩展等重要特性。
2.MySQL Shell
通过内置的AdminAPI来创建和管理整个InnoDB Cluster
3.MySQL Router
缓存InnoDB cluster的元数据,负责把客户端Read/Write请求路由到当前的主数据库节点。还可以对来自客户端的请求进行负载均衡,并且还能在主数据库节点出现故障时,保证客户端的请求被路由到新的主服务器节点。

软件下载链接
https://dev.MySQL.com/downloads/MySQL/
https://dev.MySQL.com/downloads/Shell/
https://dev.MySQL.com/downloads/router/


通过Sandbox部署实验环境

如果是新手,可以通过Sandbox的方式来做实验,下图是windows上部署时的图片


也可以通过docker来实现,更多详情请参考链接https://github.com/mattlord/Docker-InnoDB-Cluster


在生产环境上,要考虑高可用

node01、02、03上安装好MySQL(最多支持九个节点的集群)和MySQL Shell
node04、05 上安装 MySQL Shell和MySQL Router

在node01上创建集群
先配置好MySQL并启动,然后通 node01上的MySQL Shell连接node01的MySQL,执行配置命令dba.configureLocalInstance();
再通过node04的MySQL Shell连接node01 的 MySQL,执行创建集群的命令dba.createCluster()
添加节点到集群中

集群创建起来后,接下来就可以添加节点了。配置node02和node03上的MySQL并启动,然后使用各自的MySQL Shell通过dba.configureLocalInstance()对其进行配置,最后通过node04 的MySQL Shell 执行添加实例的命令cluster.addInstance()把 node02和node03添加到集群中。

最后使用MySQL Router连接集群

集群搭建完成后,把node04上的MySQL Router启动起来,并连接到集群。在这个里面MySQL Route这个是单点,我们可以再配置一台实现HA。最后应用就可以通过MySQL Route对数据库进行操作了。

Reference

http://mysqlserverteam.com/mysql-innodb-cluster-ga/

https://mysqlserverteam.com/mysql-innodb-cluster-setting-up-a-real-world-cluster/

http://mysqlserverteam.com/mysql-innodb-cluster-a-hands-on-tutorial/

https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/mysql-innodb-cluster-working-with-cluster.html

http://datacharmer.org/

https://datacharmer.blogspot.com/2017/05/getting-to-know-mysql-innodb-cluster.html

http://datacharmer.blogspot.com/2017/05/how-to-break-mysql-innodb-cluster.html

https://dev.MySQL.com/doc/refman/8.0/en/MySQL-innodb-cluster-userguide.html

https://dev.MySQL.com/doc/refman/8.0/en/MySQL-innodb-cluster-creating.html

https://dev.MySQL.com/doc/refman/8.0/en/MySQL-innodb-cluster-using-router.html

https://dev.mysql.com/doc/refman/8.0/en/mysql-innodb-cluster-sandbox-deployment.html

https://www.MySQL.com/products/enterprise/MySQL-datasheet.en.pdf
https://www.oracle.com/MySQL/enterprise/
关键词:mgr innodb mysql 

相关文章

OGG from MySQL to Oracle
MySQL数据库高可用实践
Install oracle products on docker
MySQL Cookbook for Oracle DBA
MySQL HA - Innodb Cluster
腾讯微信的PhxSQL数据库
MySQL Group Replication(MGR)
Open source Innodb recovery tool(undrop for innodb)
InnoDB internals and structures
MySQL and Oracle Enterprise Manager
MySQL Tools for performance, backup, monitor
MySQL Multi-Master Single-Slave Replication
Top