galera cluster資料備份

2022-08-24 01:06:10 字數 2159 閱讀 4230

可以用標準的資料庫備份方法來備份cluster的節點資料。但這樣的方法缺少gtid,這種備份也無法把節點恢復到預定的狀態。此外,一些備份程式執行時可能會阻斷集群操作。聯合gtid來備份需要另外的途徑。

狀態快照轉移作為備份

做乙個完整的資料備份和通過state snapshot transfer做乙個節點的備份是非常相似的。兩種情況下,節點都使用相同的機制,來聯合gtid和database狀態來建立乙個庫內容的全備份。為啟用此備份特性,需要乙個指令碼來實現想要的備份過程和galera仲裁者守護程序,觸發的方式類似於快照轉移

$ garbd --address gcomm: \  --group example_cluster --donor example_donor --sst backup

命令中,『gmcast.listen_addr=tcp:是乙個仲裁監聽socket位址,用來與cluster通訊的。 只需指定位址,0.0.0.0:4567是預設的

通過狀態快照轉移機制來呼叫buckups有以下幾點好處:

1、節點可以在乙個界定好的點來啟動備份

2、節點把gtid和backup相關聯

3、節點與cluster不同步,避免做備份時影響頻寬效能,備份程序更不會阻斷節點

4、cluster知道那個節點正在執行備份,就不會選這個節點做另乙個節點的供體

指令碼化的狀態快照轉移

當乙個節點傳送&接收乙個狀態快照轉移(state snapshot transfer)時,是通過跑乙個獨立於database server的外部程序來管理它的。當你不滿足於這些程序提供的預設操作時,galera cluster提供乙個介面給使用者shell 指令碼來管理節點上的狀態快照轉移。

使用普通的sst指令碼

galera cluster包括乙個普通指令碼用於管理狀態快照轉移,你可以用它來作為建立自己指令碼的基礎起點。該指令碼的檔名為wsrep_sst_common.sh。linux下預設安裝在/usr/bin。普通sst指令碼提供解析引數列表、錯誤記錄等的現成功能。並且沒有對引數順序和數量的約束,可以根據自身情況增加或忽略某些引數。

它假定只有在狀態轉移之後,接收節點的儲存引擎初始化才進行。意味著它直接拷貝源資料內容到目的資料目錄

狀態轉移指令碼引數

當galera cluster啟動乙個外部程序做狀態快照轉移時,會傳遞一些引數來配置狀態轉移指令碼

1.通用引數:這些引數所有的狀態轉移指令碼都會用到,無論傳送還是接受節點

--role:區別donor或joiner

--address:joiner的ip位址,joiner可以用wsrep_sst_receive_address這個引數來配

--auth:許可權資訊,可通過wsrep_sst_auth引數來配

--defaults-file:my.cnf的路徑

2.donor特有的引數:這些引數只被用於donor

--gtid:節點給出的gtid來自於state uuid和sequence number或seqno

--socket:如果需要,可以配置本地server的socket用於通訊

--bypass:節點用於甄別是否跳過實際資料的傳輸,只傳遞gtid,也就是說該節點是否應該啟動增量狀態傳輸

3.邏輯狀態轉移特有的引數:這些引數只被傳遞到傳送和接收端的wsrep_sst_mysqldump.sh指令碼中

--user:用來連線joiner和donor的資料庫的使用者,兩邊都應該一致,用wsrep_sst_auth引數來定義

--password:用來連線joiner和donor的資料庫的使用者,兩邊都應該一致,用wsrep_sst_auth引數來定義

--port:joiner的埠

--local-port:傳送狀態轉移的埠

呼叫規則

receiver接收並應用transfer完成之後,會輸出接受節點的標準gtid,退出指令碼,返回狀態0,說明狀態轉移成功

sende在完成傳輸後,會傳送乙個done\n的訊號,當指令碼收到這個訊號之後,會返回0值退出

啟動指令碼化的sst

不管用預設的自帶指令碼,還是自己寫指令碼,啟動的過程都是一樣的。檔名必須是wsrep_sst_.sh。name是wsrep_sst_methord引數的值

galera cluster學習筆記

1.在生產環境下應該避免使用大事務,不建議在高併發寫入場景下使用 galera cluster 架構,會導致集群限流,從而引起整個集群 hang 住,出現生產故障。針對這種情況可以考慮主從,實現讀寫分離等手段。2.對資料一致性要求較高,並且資料寫入不頻繁,資料庫容量也不大 50gb 左右 網路狀況良...

mysql集群Galera Cluster配置

開啟資料來源配置檔案 vim etc apt sources.list修改更新源 deb cdrom ubuntu 16.04 lts xenial xerus release amd64 20160420.1 xenial main restricted deb src xenial main r...

galera cluster各種問題專貼

dbforge在galera cluster下debug儲存過程hang。經檢視process list,dbforge cr debug引擎使用了use lock 函式,而galera cluster不支援各種lock tables等等,故開發環境如果需要開發儲存過程的,則需要使用非galera ...