使用 dba.checkInstanceConfiguration()
在添加实例到集群中前,使用该方法检查实例配置是否满足InnoDB 集群要求。
使用 dba.configureLocalInstance() 配置实例
在MySQL Server版本不支持持久化功能的实例上,需要使用该方法添加修改配置信息到本地实例的选项文件中。比如下面的更改集群配置的操作:
• dba.configureInstance()
• dba.createCluster()
• Cluster.addInstance()
• Cluster.removeInstance()
• Cluster.rejoinInstance()
使用 dba.getCluster() 接收 InnoDB 集群
dba.createCluster() 返回集群对象。该对象可以赋值给变量。如果后面需要获取已创建集群对象,可以通过该方法。
使用 cluster.describe()
该方法用于获取集群结构信息。
使用 Cluster.status() 检查实例状态
在检查集群状态之前,需要通过连接到集群中的任意实例获取集群对象的引用(reference)。如果需要更改集群对象,需要连接到R/W 实例。
实例状态直接反应集群状态报告提供的信息,因而需要连接到一个在线实例。
扩展信息:cluster.status({'extended':0}) 支持extended扩展操作,可取值包括:0、1、2、3.
监控恢复操作
cluster.status()如果显示为Recovering状态。存在两种恢复方式:克隆、增量。
InnoDB集群和组复制协议
从MySQL 8.0.16版本,组复制有一个通信协议。这个通信协议一般需要显式的管理。因为通信协议的版本要兼容最久组复制成员数据库版本。但是如果是使用AdminAPI管理集群,一般就不需要管理员干预了。AdminAPI会自动根据集群成员版本的变更而自动调整。
检查实例的MySQL版本
MySQL文档给出了三个方法都可以查看实例的MySQL版本,但测试只有cluster.status() 方法可行。
其他两个方法:cluster.describe() 和 cluster.rescan()
super read-only 和 实例
当组复制停止的时候,会将实例设置为 super read only。有三个方法可以修改这个设置,如果再将super_read_only设置为off时,注意是否有应用程序在修改实例。
• dba.configureInstance()
• dba.configureLocalInstance()
• dba.dropMetadataSchema()
注:强制设置super_read_only=off,在方法中添加选项:clearReadOnly.比如:
dba.configureInstance(instance, {clearReadOnly: true})
配置管理InnoDB集群的用户
前面也提到了,在使用dba.configureInstance() 或者 dba.configureLocalInstance() 配置实例时,可以通过clusterAdmin 选项生成一个集群管用户。这也是MySQL推荐的。
也可以通过手工方法配置集群管理用户,赋予适当的权限。如果用户只是用于监控集群可以赋予更少的权限。
配置实例自动从新加入