日常维护
1.集群启动
启动第一个节点:
service mysql start –wsrep-new-cluster
启动其它节点:
server mysql start
关闭节点:
server mysql stop
2.通过查看4567端口确认集群是否启动
netstat -plantu | grep mysqld
3.查询 galera插件是否已启用
mysql -e “SHOW status LIKE ‘wsrep_ready’”-p
mysql -e “SHOW VARIABLES LIKE ‘wsrep_cluster_address’”-p
4.检查集群是否正常
MariaDB [demo]> Show global status like “wsrep_local_state”;
+——————-+——-+
| Variable_name | Value |
+——————-+——-+
| wsrep_local_state | 4 | —表示正常监听
+——————-+——-+
1 row in set (0.00 sec)
MariaDB [demo]> Show global status like “wsrep_local_state_comment”;
+—————————+——–+
| Variable_name | Value |
+—————————+——–+
| wsrep_local_state_comment | Synced |
+—————————+——–+
1 row in set (0.00 sec)
MariaDB [demo]> Show global status like “wsrep_cluster_status”;
+———————-+———+
| Variable_name | Value |
+———————-+———+
| wsrep_cluster_status | Primary | —表示主节点能正常写入
+———————-+———+
1 row in set (0.00 sec)
MariaDB [demo]> Show global status like “wsrep_connected”;
+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| wsrep_connected | ON |
+—————–+——-+
1 row in set (0.00 sec)
5.监控集群
查看MySQL版本:
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE ‘version’;
+—————+———————–+
| Variable_name | Value |
+—————+———————–+
| version | 10.0.25-MariaDB-wsrep |
+—————+———————–+
1 row in set (0.00 sec)
查看wsrep版本: SHOW GLOBAL STATUS LIKE ‘wsrep_provider_version’;
查看wsrep有关的所有变量: SHOW VARIABLES LIKE ‘wsrep%’ \G
MariaDB [(none)]> SHOW GLOBAL STATUS LIKE ‘wsrep_provider_version’;
+————————+—————-+
| Variable_name | Value |
+————————+—————-+
| wsrep_provider_version | 25.3.15(r3578) |
+————————+—————-+
1 row in set (0.00 sec)
查看Galera集群状态:
show status like ‘wsrep%’;
监控状态参数说明:
集群完整性检查:
wsrep_cluster_state_uuid:在集群所有节点的值应该是相同的,有不同值的节点,说明其没有连接入集群.
wsrep_cluster_conf_id:正常情况下所有节点上该值是一样的.如果值不同,说明该节点被临时”分区”了.当节点之间网络连接恢复的时候应该会恢复一样的值.
wsrep_cluster_size:如果这个值跟预期的节点数一致,则所有的集群节点已经连接.
wsrep_cluster_status:集群组成的状态.如果不为”Primary”,说明出现”分区”或是”split-brain”状况.
节点状态检查:
wsrep_ready: 该值为ON,则说明可以接受SQL负载.如果为Off,则需要检查wsrep_connected.
wsrep_connected: 如果该值为Off,且wsrep_ready的值也为Off,则说明该节点没有连接到集群.(可能是wsrep_cluster_address或wsrep_cluster_name等配置错造成的.具体错误需要查看错误日志)
wsrep_local_state_comment:如果wsrep_connected为On,但wsrep_ready为OFF,则可以从该项查看原因.
复制健康检查:
wsrep_flow_control_paused:表示复制停止了多长时间.即表明集群因为Slave延迟而慢的程度.值为0~1,越靠近0越好,值为1表示复制完全停止.可优化wsrep_slave_threads的值来改善.
wsrep_cert_deps_distance:有多少事务可以并行应用处理.wsrep_slave_threads设置的值不应该高出该值太多.
wsrep_flow_control_sent:表示该节点已经停止复制了多少次.
wsrep_local_recv_queue_avg:表示slave事务队列的平均长度.slave瓶颈的预兆.
最慢的节点的wsrep_flow_control_sent和wsrep_local_recv_queue_avg这两个值最高.这两个值较低的话,相对更好.
检测慢网络问题:
wsrep_local_send_queue_avg:网络瓶颈的预兆.如果这个值比较高的话,可能存在网络瓶
冲突或死锁的数目:
wsrep_last_committed:最后提交的事务数目
wsrep_local_cert_failures和wsrep_local_bf_aborts:回滚,检测到的冲突数目
九.高可用测试
1)在db1上创建demo数据库,db2是自动创建demo
DB1:
MariaDB [(none)]> create database demo;
Query OK, 1 row affected (0.00 sec)
DB2:
MariaDB [(none)]> show databases;
+——————–+
| Database |
+——————–+
| demo |
| information_schema |
| mysql |
| performance_schema |
| test |
+——————–+
DB3:
MariaDB [(none)]> show databases;
+——————–+
| Database |
+——————–+
| demo |
| information_schema |
| mysql |
| performance_schema |
| test |
+——————–+
2)在关掉db1后,操作db2,再启动db1,db2的数据自动与db1同步
DB1:
service mysql stop
Shutting down MySQL….. SUCCESS!
DB2:
MariaDB [demo]> create table demo1 (id int not null);
Query OK, 0 rows affected (0.04 sec)
MariaDB [demo]> insert into demo1 select 1;
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0
DB1:
service mysql start
Starting MySQL…SST in progress, setting sleep higher. SUCCESS!
MariaDB [demo]> use demo
Database changed
MariaDB [demo]> select * from demo1;
+—-+
| id |
+—-+
| 1 |
+—-+
1 row in set (0.00 sec)