[pgsql-jp: 41077] Re: PostgreSql9.1 同期レプリケーションでスタンバイサーバ故障時の対処

Fujii Masao masao.fujii @ gmail.com
2012年 4月 3日 (火) 01:16:33 JST


藤井と申します。

On Mon, Apr 2, 2012 at 7:25 PM, test <test2011y @ kotanikogyo.co.jp> wrote:
> 障害発生時の一次対応はある程度自動化したいのですが、以下のような方法かなと考えています。
> 1.スタンバイサーバの故障検出方法
> データの更新に失敗した時、プライマリーでpg_stat_replicationのstateを調べる。
> streamingでなければスタンバイサーバの故障と判断する。

スタンバイ故障時、特にデータ更新は失敗することはありません。そのとき、
データ更新の SQL はレプリケーションの完了を待ち続けます。つまり、
クライアントからすると、データ更新の SQL に時間がかかっているだけの
ように見えます。このため、データの更新に失敗したときだけでなく、
定期的に pg_stat_replication は監視し、スタンバイが故障していないか
確認した方がよいと思います。

> 2.レプリケーション停止
> postgresql.confを書換えてpg_ctlでリスタート

リスタートの必要はありません。postgresql.conf の synchronous_standby_names を
空に設定し、pg_ctl reload で設定をリロードしてください。PostgreSQL を停止する
ことなくレプリケーションのモードが同期から非同期に変わり、「縮退運転」する
ようになります。スタンバイ復帰後は、同様の手順で、レプリケーションのモードを
非同期から同期に忘れず戻してください。

-- 
Fujii Masao


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