参考文档:
https://dev.mysql.com/doc/refman/5.7/en/mysql-innodb-cluster-userguide.html
MySQL InnoDB集群为MySQL提供了完整的高可用性解决方案。 MySQL Shell包含AdminAPI,使您可以轻松配置和管理一组至少三个MySQL服务器实例,以充当InnoDB集群。每个MySQL服务器实例都运行MySQL Group Replication,它提供了在InnoDB集群内复制数据的机制,具有内置的故障转移功能。 AdminAPI移除了直接在InnoDB集群中使用组复制的需求,但有关详细信息,请参阅第17章“组复制”,其中说明了详细信息。 MySQL路由器可以根据您部署的集群自动配置自身,将客户端应用程序透明地连接到服务器实例。如果服务器实例意外故障,群集将自动重新配置。在默认的单主模式下,InnoDB集群具有单个读写服务器的主要实例。多个辅助服务器实例是主实例的副本。如果主服务器出现故障,则辅助服务器将自动升级为主服务器。 MySQL路由器检测到此情况并将客户端应用程序转发到新主服务器。用户还可以将群集配置为多主的。
--单主集群,有点像ADG 自动切换的味道
重点:
InnoDB集群不支持MySQL NDB Cluster。 NDB Cluster依赖于NDB存储引擎以及许多特定于NDB Cluster的程序,这些程序未随MySQL Server 5.7提供; NDB仅作为MySQL NDB Cluster分发的一部分提供。 此外,MySQL Server 5.7提供的MySQL服务器二进制文件(mysqld)不能与NDB Cluster一起使用。 有关MySQL NDB Cluster的更多信息,请参见第21章,MySQL NDB Cluster 7.5和NDB Cluster 7.6。 第21.1.5节“使用InnoDB的MySQL服务器与NDB集群相比较”提供了有关InnoDB和NDB存储引擎之间差异的信息。
下图显示了这些技术如何协同工作的概述:
使用 AdminAPI
MySQL Shell包含AdminAPI,可通过dba全局变量及其相关方法访问。 dba变量的方法使您能够部署,配置和管理InnoDB集群。 例如,使用dba.createCluster()方法创建InnoDB集群。
重要
MySQL Shell允许您通过套接字连接连接到服务器,但AdminAPI需要TCP连接到服务器实例。 不要在AdminAPI中使用基于套接字的连接。
MySQL Shell为AdminAPI提供在线帮助。 要列出所有可用的dba命令,请使用dba.help()方法。 有关特定方法的在线帮助,请使用常规格式object.help('methodname')。 例如:
mysql-js> dba.help('getCluster')
Retrieves a cluster from the Metadata Store.
SYNTAX <Dba>.getCluster([name])
WHERE name: Parameter to specify the name of the cluster to be returned.
DESCRIPTION
If name is not specified, the default cluster will be returned. If name is specified, and no cluster with the indicated name is found, an error will be raised.