2011年6月15日

[pgsql-jp: 40808]9.0 でストリーミングレプリケーション使用時のスイッチオーバー

平岡です。

PostgreSQL 9.0.4 でストリーミングレプリケーション使用時にスイッチ
オーバーを試みておりますが、

Jun 15 09:24:02 centos-db2 postgres[7939]: [2-1] FATAL: timeline 2 of the primary does not match recovery target timeline 1

のようなエラーが出てスレーブ (旧マスタ) の起動が失敗します。

当方にて試した内容を以下に記載しますので、アドバイス等頂けます
と幸いです。

以下のページ等を参考に設定を試みております。

http://lets.postgresql.jp/documents/technical/replication/1

- 環境
OS: CentOS 5.5
PostgreSQL: 9.0.4

アドレス
. マスタ: 192.168.11.22
. スレーブ: 192.168.11.23

設定ファイル (マスタスレーブ共通)
. postgresql.conf
listen_addresses = '*' # what IP address(es) to listen on;
wal_level = hot_standby # minimal, archive, or hot_standby
archive_mode = on # allows archiving to be done
archive_command = 'cp %p /pgsql/archive/%f' # command to use to archive a logfile segment
max_wal_senders = 2 # max number of walsender processes
wal_keep_segments = 100 # in logfile segments, 16MB each; 0 disables
hot_standby = on # "on" allows queries during recovery
log_destination = 'syslog' # Valid values are combinations of

. pg_hba.conf
host replication postgres 192.168.11.22/32 md5
host replication postgres 192.168.11.23/32 md5

. recovery.conf (スレーブ)
standby_mode = 'on'
primary_conninfo = 'host=192.168.11.23 port=5432 user=postgres password=postgres'
recovery_target_timeline='latest'
restore_command = 'scp 192.168.11.23:/pgsql/archive/%f "%p" 2> /dev/null'
trigger_file = '/pgsql/data/trigger'

. recovery.conf.BAK (マスタ)
standby_mode = 'on'
primary_conninfo = 'host=192.168.11.22 port=5432 user=postgres password=postgres'
recovery_target_timeline='latest'
restore_command = 'scp 192.168.11.22:/pgsql/archive/%f "%p" 2> /dev/null'
trigger_file = '/pgsql/data/trigger'

- 通常運用状態
上記設定でマスタスレーブを起動する事で、ストリーミングレプリケーション
により運用が行えています。

- スイッチオーバー
以下のようにスイッチオーバーを試みます。

1) マスタを停止
2) スレーブに trigger ファイルを作成
3) マスタの recovery.conf.BAK を recovery.conf にリネーム
4) マスタを起動

この状態で、前述の FATAL: エラーが出力されますが、手順に問題はあります
でしょうか。

マスタを停止してスレーブをフェイルオーバーした後、ベースバックアップ
から取り直してマスタを起動すると、FATAL: エラーは出力されず正常に構成
されますが、スイッチオーバー時にベースバックアップの再取得は必要なの
でしょうか。

上記参考ページの説明を見る限りではベースバックアップの再取得は不要
なようですが、別のページでは必要と書かれているものもあったりします。

以上、よろしくお願い致します。

- flathill


投稿者 xml-rpc : 2011年6月15日 11:06
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/104406
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。