内容提要
本文介绍了MySQL InnoDB集群的状态检查、主实例切换、基本信息获取、成员查询、事务队列监控及故障处理方法,包括重启节点和重新加入实例的步骤。
关键要点
- 获取MySQL InnoDB集群状态的不同方法
- 设置主实例的命令
- 获取MySQL InnoDB集群基本信息的查询
- 查询集群成员的命令
- 监控本地和远程事务队列的查询
- 获取最后排队事务时间差的查询
- 检查集群故障或节点失败时的错误日志
- 重启节点的建议和步骤
- 使用CLI进行节点重新加入和添加实例的替代方法
- 处理未记录的创建或授权命令导致的复制失败
- 准备删除实例并使用克隆方法重新添加实例
延伸问答
如何获取MySQL InnoDB集群的状态?
可以使用命令 `mysqlsh --login-path=icadmin -h$MYROUTER1 -- cluster status` 来获取集群状态。
如何设置主实例?
使用命令 `mysqlsh --login-path=icadmin -h${HOSTNAME} --redirect-primary -- cluster set_primary_instance 'db01'` 来设置主实例。
如何查询集群成员信息?
可以使用命令 `select * from performance_schema.replication_group_members order by MEMBER_ROLE;` 来查询集群成员信息。
如何监控事务队列?
使用命令 `select a.CHANNEL_NAME, b.MEMBER_HOST, a.COUNT_TRANSACTIONS_IN_QUEUE, a.COUNT_TRANSACTIONS_REMOTE_IN_APPLIER_QUEUE from performance_schema.replication_group_member_stats a, performance_schema.replication_group_members b where a.MEMBER_ID=b.MEMBER_ID;` 来监控事务队列。
如何处理集群故障?
检查每个节点的错误日志,使用命令 `select * from performance_schema.error_log where logged > (NOW() - INTERVAL 30 MINUTE);` 来查看最近的错误。
如何重启节点并重新加入实例?
可以重启节点后使用命令 `cl.rejoinInstance('icadmin@db01:3306')` 来重新加入实例。