同期レプリケーションの使い方

スタンバイに届いてからコミットを終える

書き方

ALTER SYSTEM SET synchronous_standby_names = '名前';
ALTER SYSTEM SET synchronous_standby_names = 'ANY 1 (a, b)';
SET synchronous_commit = local;

synchronous_standby_names に書いたスタンバイ(primary_conninfo の application_name)に WAL が届くまで、COMMIT は終わりません。プライマリが壊れても、コミットしたデータはスタンバイにあります。その代わり、同期のスタンバイが止まると、書き込みが待ったまま止まります(Ctrl+C で待つのをやめても、ローカルではコミット済み)。ANY 1 (a, b) なら、どちらか 1 台に届けばよくなります。

例

SELECT application_name, sync_state FROM pg_stat_replication;

実際に打って練習する

PostgreSQL DBA コースの Lv58「同期レプリケーション」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、プラチナ以上のプランで遊べます。

PostgreSQL の管理コマンド一覧(DBA)へ戻る