運用補助ツール"pg-rex_slave_start"でベースバックアップ未取得起動に失敗する
お世話になっております。
解決できましたので以下報告させて頂きます。
【原因】
コマンド"pg_xlogdump"がインストールされていなかったため
【対応】
以下コマンドにて"pg_xlogdump"のインストールを実施
# cd /usr/local/src/postgresql-9.4.5/contrib/pg_xlogdump make make install
371 # pg_xlogdump の出力結果から現在の XLOG 位置を取得
372 my $my_current_xlog_location;
373 my $another_current_xlog_location;
374 $command = "$SU - $pg_command_user -c \"$command_path{'pg_xlogdump'} $master_cib_value{'pgdata'}/pg_xlog/$my_controldata_value{'wal_filename'} $master_cib_value{'pgdata'}/pg_xlog/$my_current_xlog_filename 2> /dev/null | $ TAIL -1\""; ←★ココ
375 $result = exec_command($command);
376 if ($result =~ /.*lsn:\s+([0-9A-F\/]+).*/){
377 $my_current_xlog_location = $1;
378 }
}}}
お世話になります。
postgre8 + 有償クラスタウェアの構成から、
実績と情報豊富なPG-REX構成へDBリプレースを計画しております。
テスト環境にて検証をしておりましたところ、
"PG-REX運用補助ツール"にて想定外の動作を確認したため、報告させて頂きます。
<構成>
OS:CentOS 6.7 (64bit) ※仮想
Postgresql:9.4.5 ※ソースインストール
Pacemaker:1.1.13-1
corosync:2.3.4-1
pg-rex_operation_tools_script:1.6.1-1
<現象>
pg-rex_slave_start実行後、「This node takes a base backup from master.Are you sure? (y/n) n」選択にnを回答すると、
下記エラーが出力され、起動に失敗いたします。
yを回答した場合は正常に起動いたします。
/usr/local/share/perl5/PGRex/common.pmを確認したところ、
関数"sub compare_lsn"内で$lsn1が取得できていないようです。
886 sub compare_lsn 887 my ($lsn1, $lsn2) = @_; ←★ここで取得できていない 888 my $lsn1_left_field; 889 my $lsn1_right_field; 890 my $lsn2_left_field; 891 my $lsn2_right_field; 892 893 if ($lsn1 !~ /^([0-9A-F]+)\/([0-9A-F]{7,8}+)$/){ ←★エラー発生はココ 894 printlog("ERROR", COMMON_MS0013); 895 }以上、宜しくお願いいたします。