在 MariaDB Galera 集群中使用 xtrabackup-v2 作為 SST 方法
我已使用官方 docker映像將 mariadb galera 集群配置為 docker swarm 服務:在集群啟動期間 rsync(預設 SST 方法)工作正常。想將其更改為 xtrabackup 或 xtrabackup-v2,因此根據文件在 my.cnf 中使用以下配置:
[mysqld] wsrep_sst_auth = <wsrep_sst_user>:<password> wsrep_sst_method = xtrabackup-v2 (or xtrabackup) datadir = /var/lib/mysql/ [client] socket =/var/run/mysqld/mysqld.sock
捐助者伺服器啟動正常,但在加入者伺服器啟動期間收到以下錯誤:
2018-05-07 13:08:26 139750451541760
$$ Warning $$WSREP:狀態序列的間隙。需要狀態轉移。2018-05-07 13:08:26 139750232831744$$ Note $$WSREP: 執行: ‘wsrep_sst_xtrabackup-v2 –role ‘joiner’ –address ‘10.0.0.37’ –datadir ‘/var/lib/mysql/’ –parent ‘108’ ’’ ’ WSREP_SST:$$ INFO $$將 SST/Innobackupex 的所有標準錯誤記錄到 syslog (20180507 13:08:26.937) 2018-05-07 13:08:29 139750249850624
$$ Note $$WSREP: (fdead878, ’tcp://0.0.0.0:4567’) 關閉消息中繼請求 2018-05-07 13:10:07 139750232831744
$$ ERROR $$WSREP:無法從以下位置讀取“就緒”:wsrep_sst_xtrabackup-v2 –role ‘joiner’ –address ‘10.0.0.37’ –datadir ‘/var/lib/mysql/’ –parent ‘108’ ’’ 讀取:’ (空值)’ 2018-05-07 13:10:07 139750232831744
$$ ERROR $$WSREP:程序完成但出現錯誤:wsrep_sst_xtrabackup-v2 –role ‘joiner’ –address ‘10.0.0.37’ –datadir ‘/var/lib/mysql/’ –parent ‘108’ ’’ : 32 (Broken pipe) 2018-05-07 13:10:07 139750451541760
$$ ERROR $$WSREP:無法準備“xtrabackup-v2”SST。不可恢復。2018-05-07 13:10:07 139750451541760$$ ERROR $$中止 my_thread_global_end() 中的錯誤:1 個執行緒沒有退出
其他 wsrep 值:
wsrep_on=ON wsrep_provider=/usr/lib/libgalera_smm.so wsrep_cluster_address=gcomm:// (for first node to start, and virtual_ip of the first node on 2 other nodes)
如何在 MariaDB 中正確配置 xtrabackup 作為 SST 方法?
這兩個腳本(或者可能只是最後一個,但您都需要)
/usr/bin/wsrep_sst_common
並且/usr/bin/wsrep_sst_xtrabackup-v2
在 10.2.13 中被破壞,但您可以從錯誤票證MDEV-15254獲得修復版本。