[pgsql-jp: 40743] Re: ホットスタンバイ機能でホットスタンバイ側でも更新出来てしまう

Tomoaki Sato sato @ sraoss.co.jp
2011年 4月 19日 (火) 18:12:11 JST


佐藤です。

> 初めまして 小泉と申します。
> 
> 現在表題のトラブルが発生し、書籍やネット等で調査を行ったのですが原因が特
> 定出来ない状態です。
> 
> ------------------------------------------------------------
> バージョン:PostgreSQL9.0.3
> 使用機能 :ホットスタンバイ(今後レプリケーション等を行いたい)
> 
> 環境   :プライマリサーバ、スタンバイサーバを2台用意
>      :2台共に上記バージョンのPostgreSQLをインストール
>       プライマリIPアドレス(192.168.10.216)
>       スタンバイIPアドレス(192.168.10.217)
> 
> 1.プライマリサーバの状態
> 正常に稼動
> プライマリのデータベースバックアップを取得しスタンバイサーバへコピー
> 
> 2.スタンバイサーバの状態
> プライマリのデータベースバックアップを使用し、必要な設定を完了
> 
> ・下記ファイルを削除
>  postmaster.pid
>   /data/pg_xlog/*
> 
> 【postgres.confの設定内容】
> #listen_addresses = 'localhost'
> listen_addresses = '*'
> 
> #wal_level = minimal
> wal_level = hot_standby
> 
> #archive_mode = off
> archive_mode = on
> 
> #archive_command = ''
> archive_command = 'scp 192.168.10.216:/usr/local/pgsql/archive/%f %p'
> 
> #hot_standby = off
> hot_standby = on
> 
> 【recovery.confの設定内容】
> #standby_mode = 'off'
> standby_mode = 'on'
> 
> #restore_command = ''
> restore_command = 'cp /usr/local/pgsql/archive/%f "%p"'
> 
> #trigger_file = ''
> trigger_file = '/tmp/trigger'
> 
> 上記設定後、スタンバイサーバを起動
> 【出力ログ】
> LOG:  database system was interrupted; last known up at 2011-04-19 16:
> 33:06 JST
> LOG:  entering standby mode
> LOG:  restored log file "000000010000000000000002" from archive
> LOG:  redo starts at 0/2000020
> LOG:  consistent recovery state reached at 0/3000000
> LOG:  database system is ready to accept read only connections
> cp: cannot stat `/usr/local/pgsql/archive/000000010000000000000003': No 
> such file or directory
> LOG:  trigger file found: /tmp/trigger

ここで、トリガファイルが見つかってスタンバイからプライマリに切り替わっ
ているのが原因でしょう。

/tmp/trigger を削除してからスタンバイサーバを起動してみてください。

> LOG:  redo done at 0/20000C4
> LOG:  restored log file "000000010000000000000002" from archive
> cp: cannot stat `/usr/local/pgsql/archive/00000002.history': No such 
> file or directory
> LOG:  selected new timeline ID: 2
> cp: cannot stat `/usr/local/pgsql/archive/00000001.history': No such 
> file or directory
> LOG:  archive recovery complete
> LOG:  autovacuum launcher started
> LOG:  database system is ready to accept connections
> 
> スタンバイサーバでpsqlを使用してSELECTを行うとマスタサーバのデータが表示
> されることを確認。その後、update文を実行するとエラーが発生せずにupdateさ
> れてしまいます。
> 現在、なぜupdate出来てしまうのかが分からない状態です。
> どなたかご教授頂けないでしょうか。


----
Tomoaki Sato <sato @ sraoss.co.jp>
SRA OSS, Inc. Japan


pgsql-jp メーリングリストの案内