MySQL 8 InnoDB 集群管理

使用 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推荐的。

也可以通过手工方法配置集群管理用户,赋予适当的权限。如果用户只是用于监控集群可以赋予更少的权限。

配置实例自动从新加入

猜你喜欢

转载自www.cnblogs.com/xinzhizhu/p/12346237.html
今日推荐