web-dev-qa-db-ja.com

MariaDB GaleraクラスターでSSTメソッドとしてxtrabackup-v2を使用する

公式の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メソッドとして正しく構成するにはどうすればよいですか?

1
rok

2つのスクリプト(または最後のスクリプトだけかもしれませんが、両方が必要です)/usr/bin/wsrep_sst_commonおよび/usr/bin/wsrep_sst_xtrabackup-v2は10.2.13で壊れていますが、バグチケット MDEV-15254 から修正バージョンを取得できます。

1
dbdemon