MariDB集群重启方法

Maridb数据库管理系统是MySQL的一个分支,由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发。作为MySQL替代产品,集群采用多主模式,节点之间数据通过wsrep接口进行自动同步,集群关机后重启的关键是找到Primary节点,步骤如下:

一、获取seqno编号

a、Mysql服务宕机时

方法1:

$ mysqld --wsrep-recover

查看如下行:

方法2:

查看grastate.dat文件:

$ tail /var/lib/mysql/grastate.dat

备注:grastate.dat只有在Mysql主进程关闭时才会记录seqno编号,运行状态下其值为:-1。

b、Mysql 服务运行时(由于网络故障导致集群分裂,但服务依旧在运行)

$ mysql -u root -p

Enter password: XXXXXX

执行命令:

MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_last_committed';

+----------------------+---------+

| Variable_name | Value |

+----------------------+---------+

| wsrep_last_committed | 7286312 |

+----------------------+---------+

比较各节点 wsrep_last_committed 的值,即seqno值,该值最大的节点即为集群的引导节点;

MariaDB [(none)]> SHOW STATUS LIKE 'wsrep_cluster_status';

+----------------------+-------------+

| Variable_name | Value |

+----------------------+-------------+

| wsrep_cluster_status | non-Primary |

+----------------------+-------------+

集群正常状态下,节点的状态为:Primary

二、启动第一个节点(seqno值为最大):

service mysql start --wsrep-new-cluster

三、启动其他节点:

service mysql start

以上命令都启动不起来时

$ mysqld --wsrep_sst_donor=MariaC,强制所有节点与MariaC数据保持一致,这里MariaC应该是seqno编号最大节点,且服务运行正常,

根据实际调整,同步完成后使用 $ service mysql start 启动服务。

$ ps -ef |grep mysqld 数据库服务有时启动较慢,主要是同步过程需要花费时间,但只要存在mysqld主进程,则说明服务正常启动中。

参考文档:

MariaDB集群Galera Cluster的研究与测试

what is the right way to restart a mariadb galera cluster?

http://dba.stackexchange.com/questions/79996/what-is-the-right-way-to-restart-a-mariadb-galera-cluster

RESTARTING THE CLUSTER

http://galeracluster.com/documentation-webpages/restartingcluster.html

How to Bootstrap MySQL/MariaDB Galera Cluster

http://www.tuicool.com/articles/iAfque

http://severalnines.com/blog/how-bootstrap-mysqlmariadb-galera-cluster?utm_source=tuicool&utm_medium=referral (原文)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180308G025VD00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券