同期レプリケーションの使い方
スタンバイに届いてからコミットを終える
書き方
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「同期レプリケーション」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、プラチナ以上のプランで遊べます。