介紹一個Galera 集群中非常重要的一個文件
即grastate.dat,他位於MySQL的數據文件目錄,即datadir
1. 定位最近狀態的節點
當我們關閉一個節點時,其seqno會寫入grastate.dat文件中,這時后續的seqno該節點將無法接收到
注意數據庫開啟狀態或者異常關閉時seqno值為-1
當我們將所有節點關閉,准備重啟時我們需要知道哪個節點是最后關閉的,並使用它來引導集群
這時查看seqno的值即可,最大的即可
2. 安全引導保護
安全引導即safe to bootstrap ,從3.19版本開始,Galera為防止在錯誤的節點上引導集群,引入了安全引導的保護
Galera會自動判斷哪個節點是最后一個離開集群的,並將信息寫入grastate.dat文件中
如果我們使用safe_to_bootstrao為0的節點來引導,數據庫將無法啟動
日志中報錯如下
[ERROR] WSREP: It may not be safe to bootstrap the cluster from this node. It was not the last one to leave the cluster and may not contain all the updates. To force cluster bootstrap with this node, edit the grastate.dat file manually and set safe_to_bootstrap to 1
我們可以手動編輯該文件將值設置為1來引導,不過這樣可能會造成數據丟失
如果所有節點同時異常宕機,這時所有節點的值都為0,需要選擇一台手動編輯
3. 定位崩潰的節點
同樣我們可以使用該文件來定位哪些節點異常崩潰的
如果seqno為-1則說明數據庫正在運行,或者非正常關閉
我們可以重新啟動他,Galera集群會自動恢復並同步數據
4. 參考資料
https://galeracluster.com/library/training/tutorials/restarting-cluster.html
參考:http://blog.itpub.net/28413242/viewspace-2656229/