MariaDB Galera Cluster集群故障恢復


mariadb galera cluster集群故障恢復時,經常會遇到節點無法啟動的情況,啟動服務時報錯:

systemctl start mariadb
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

 

一般情況下,如果集群中還有存活的節點,那么離線的節點只需要執行systemctl start mariadb即可重新加入集群,但如果所有節點均已離線,就會出現這種情況,此時需要人工確定啟動順序,先檢查每個節點的/var/lib/mysql/grastate.dat文件,以測試環境為例,當前兩節點上的mariadb服務均處於停止狀態,grastate.dat的內容分別為:

# GALERA saved state
version: 2.1
uuid: 44f8dbe5-1271-11eb-8206-1e1a48859dc8
seqno: 157035
safe_to_bootstrap: 0
# GALERA saved state
version: 2.1
uuid: 44f8dbe5-1271-11eb-8206-1e1a48859dc8
seqno: 157036
safe_to_bootstrap: 1

可以看到兩者有相同的uuid,但seqno和safe_to_bootstrap不同。集群中seqno最大的節點是優先啟動節點,一般它的safe_to_bootstrap=1。此時以galera_new_cluster方式啟動優先節點,然后再以systemctl start mariadb方式啟動其它節點,集群就順利恢復了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM