对工作中,涉及到数据库修复的一个简单汇总
1、在所有的控制节点上,执行pcs resource命令行,查看控制节点上pacemaker的状态是否异常,如果异常,通过crm_resource -P命令行进行同步
2、执行pcs resource disable p_mysql-clone命令行,停止mysql服务,
通过pcs resource命令,检查资源状态,如果有block状态,那么执行pcs resource cleanup p_mysql-clone命令
3、分别登录到控制节点上,通过ps -ef |grep mysql命令检查mysql进程是否被停止掉,如果没有被停止掉,那么执行kill 命令杀掉mysql进程
4、选择vip所在的节点为数据库同步的主节点(一般是第一个控制节点),备份第二和第三控制节点的数据库文件,
同时分别在第二和第三控制节点上创建mysql用户属组的空mysql文件夹
mv /os_data/mysql /os_data/mysql_test
mkdir /os_data/mysql
chown mysql:mysql /os_data/mysql
5、登录到第一个控制节点,修改/etc/my.cnf文件中的 wsrep_cluster_address 参数的值为
wsrep_cluster_address="gcomm://",同时将/os_data/mysql/grastate.dat中safe_to_bootstrap改为安全模式启动
[root@test mysql]# cat grastate.dat
# GALERA saved state
version: 2.1
uuid: 8e0a5290-9165-11e9-b146-56894b5dce5c
seqno: -1
safe_to_bootstrap: 0------修改为1
5、登录到第二个控制节点,修改/etc/my.cnf文件中的wsrep_cluster_address参数,添加第一控制节点和第二个控制节点的Ip
样例如下:
wsrep_cluster_address="gcomm://192.168.0.1:4567,192.168.0.2:4567,?pc.wait_prim=no"
6、登录到第三个控制节点,修改/etc/my.cnf文件中wsrep_cluster_address参数,添加第一个控制节点、第二个控制节点、本地Ip
样例如下:
wsrep_cluster_address="gcomm://192.168.0.1:4567,192.168.0.2:4567,192.168.0.3:4567,?pc.wait_prim=no"
7、启动mysql服务,并用pcs resource检查mysql集群是否start
方式1:在第一个控制节点上执行pcs resource enable p_mysql-clone命令,使pacemaker自动拉取mysql服务,并进行接管
方式2:分别在三个控制节点上,执行systemctl start mysqld命令,手动启动mysql服务,最后在第一个控制节点上,执行pcs resource enable p_mysql-clone命令,让
pacemaker接管MySQL服务
8、分别在三个控制节点上,进入到数据库,执行 show status like "%wsrep%"命令检查数据库状态;
主要检查wsrep_cluster_size是否为3,wsrep_local_state_comment是否为Synced,wsrep_incoming_addresses是否有三个控制节点的ip
9、将三个控制节点的/etc/my.cnf配置wsrep_cluster_address修改为为原始状态,其值为三个控制节点的ip
样例如下:
wsrep_cluster_address="gcomm://192.168.0.1:4567,192.168.0.2:4567,192.168.0.3:4567,?pc.wait_prim=no"