公式のdocker image を使用してmariadb galeraクラスターをdocker swarmサービスとして構成しました。クラスターの起動時にrsync(デフォルトのSSTメソッド)は正常に機能します。 xtrabackupまたはxtrabackup-v2に変更したかったため、my-cnfで次の構成を docs に従って使用しました。
[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 [警告] WSREP:状態シーケンスのギャップ。状態の転送が必要です。 2018-05-07 13:08:26 139750232831744 [注] WSREP:実行中: 'wsrep_sst_xtrabackup-v2 --role' joiner '--address '10 .0.0.37' --datadir '/ var/lib/mysql /'-親 '108' '' 'WSREP_SST:[INFO] SST/Innobackupexのすべてのstderrをsyslogに記録(20180507 13:08:26.937)
2018-05-07 13:08:29 139750249850624 [注] WSREP:(fdead878、 'tcp://0.0.0.0:4567')メッセージリレー要求をオフにする
2018-05-07 13:10:07 139750232831744 [エラー] WSREP: 'ready'の読み取りに失敗しました:wsrep_sst_xtrabackup-v2 --role 'joiner' --address '10 .0.0.37 '--datadir'/var/lib/mysql/'--parent' 108 '' '読み取り:'(null) '
2018-05-07 13:10:07 139750232831744 [エラー] WSREP:プロセスがエラーで完了しました:wsrep_sst_xtrabackup-v2 --role 'joiner' --address '10 .0.0.37 '--datadir'/var/lib/mysql/' --parent '108' '':32(壊れたパイプ)
2018-05-07 13:10:07 139750451541760 [エラー] WSREP: 'xtrabackup-v2' SSTの準備に失敗しました。回復できません。 2018-05-07 13:10:07 139750451541760 [エラー]中止
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メソッドとして正しく構成するにはどうすればよいですか?
2つのスクリプト(または最後のスクリプトだけかもしれませんが、両方が必要です)/usr/bin/wsrep_sst_common
および/usr/bin/wsrep_sst_xtrabackup-v2
は10.2.13で壊れていますが、バグチケット MDEV-15254 から修正バージョンを取得できます。