一、MHA集群
- 检测环境相关
检测 SSH 是否正常:
[root@postgresql ~]# masterha_check_ssh --conf=/etc/mha/mysql_mha.cnf
检测配置文件是否正常:
[root@postgresql ~]# masterha_check_repl --conf=/etc/mha/mysql_mha.cnf
- 启动与关闭管理进程
启动 MHA:
[root@postgresql ~]#nohup masterha_manager --conf=/etc/mha/mysql_mha.cnf > /data/mha/manager.log < /dev/null 2>&1 &
关闭 MHA:
[root@postgresql ~]#masterha_stop --conf=/etc/mha/mysql_mha.cnf
- 查看运行状态
检查 MHA 运行状态:
[root@postgresql ~]#masterha_check_status --conf=/etc/mha/mysql_mha.cnf
查看进程:
[root@postgresql ~]#ps aux |grep masterha_manager
二、MGR集群
- 查看集群信息
查看节点信息:
root@localhost:ceshi>SELECT * FROM performance_schema.replication_group_members;
查看节点状态:
root@localhost:ceshi>select * from performance_schema.replication_connection_status\G;
- 多主单主切换相关
单主模式下主节点手工切换到其它节点(需指定主机的 UUID):
root@localhost:ceshi>select group_replication_set_as_primary(member_UUid);
在线单主切换为多主:
root@localhost:ceshi>select group_replication_switch_to_multi_primary_mode();
在线多主切换为单主(不指定 member_uuid 可根据 uuid 大小自动选主):
root@localhost:ceshi>select group_replication_switch_to_single_primary_mode();
在线多主切换为单主(可指定节点 UUID):
root@localhost:ceshi>select group_replication_switch_to_single_primary_mode(member_uuid);
三、PXC集群
- 验证集群状态(登录 MySQL 检查相关状态)
查看节点数量:
[root@postgresql ~]# mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';"
查看节点数(查看节点地址相关信息):
[root@postgresql ~]#mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_incoming_addresses';"
查看节点状态(重点关注 wsrep_local_state 值):
[root@postgresql ~]#mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_local_state';"
(值为 4 表示正常,1 表示 joining,正在加入集群;2 表示 donor,为新加入节点同步数据;3 表示 joined,已成功加入集群;4 表示 synced,与整个集群同步状态)
四、InnoDB Cluster集群
- 连接到MySQL Server
mysqlsh admin@192.168.1.41:3306 --password
# 可按需切换模式,例如切换到SQL模式
\sql
# 切换到Python模式
\py
# 切换到JavaScript模式
\js
- 查看集群状态(多种方式)
-- 在SQL模式下查看节点状态(查看集群成员信息)
SELECT * FROM performance_schema.replication_group_members;
- 查看集群配置
-- 在SQL模式下查看与集群相关配置参数
SHOW VARIABLES LIKE '%GROUP%';
- 检查复制健康状况
-- 在SQL模式下查看节点连接状态等详细信息
select * from performance_schema.replication_connection_status\G;
三、集群管理操作
- 集群配置检查
# 获取集群对象并查看其状态以检查整体配置情况
cluster = dba.getCluster('myCluster')
cluster.status()
- 检查节点是否满足InnoDB Cluster条件
# 检查指定节点是否符合InnoDB Cluster要求
MySQL JS >dba.checkInstanceConfiguration('admin@192.168.1.1:3306')
- 配置节点
# 使用mysql shell远程设置实例配置(比如增加InnoDB Cluster相关配置项)
MySQL JS > dba.configureInstance('admin@192.168.1.1:3306')
- 新增节点
# 将新节点添加到集群中,前提是新节点已安装MySQL且配置与主节点一致
cluster.addInstance('admin@192.168.1.1:3306')
- 移除节点
# 当节点需要下线维护时,将其移出集群
cluster.removeInstance('admin@192.168.1.2:3306')
五、其他常见MySQL集群通用运维操作(以主从复制为基础的集群相关示例)
- 查看主节点状态(在主节点执行)
SHOW MASTER STATUS\G
查看如当前binlog日志文件、位置等关键信息。
- 查看从节点状态(在从节点执行)
SHOW SLAVE STATUS\G
关注 Slave_IO_Running
、Slave_SQL_Running
是否为 YES
以及 Seconds_Behind_Master
(主从延迟情况)等重要信息。
- 查看所有的binlog日志文件(在主节点执行)
SHOW MASTER LOGS;
- 查看节点间网络连通性(在各节点上使用,排查主从复制网络问题)
# 测试到其他节点的网络连通性,比如从节点测试到主节点
ping 主节点IP
# 测试MySQL服务端口是否可访问(以主节点端口3306为例)
telnet 主节点IP 3306
- 查看从节点的错误信息(通过查看从状态中的错误字段来排查主从复制问题)
# 在从节点执行,重点关注Last_Errno、Last_Error字段
SHOW SLAVE STATUS\G
- 查看主节点binlog内容(用于排查主从复制相关数据不一致等问题)
# 使用mysqlbinlog工具查看指定binlog文件内容,如查看mysql-bin.000001文件
mysqlbinlog mysql-bin.000001
- 查看从节点relay log内容(分析从节点应用中继日志过程是否异常)
mysqlbinlog mysql-relay-bin.000001
- 查看集群中各节点当前连接数(了解数据库负载情况)
SHOW PROCESSLIST;
欢迎关注公众号《小周的数据库进阶之路》,更多精彩知识和干货尽在其中。