レプリケーションスロットの使い方
スタンバイが要る WAL を消さずに残す
書き方
SELECT * FROM pg_create_physical_replication_slot('名前');
primary_slot_name = '名前'(スタンバイの設定)
SELECT slot_name, active, restart_lsn, wal_status FROM pg_replication_slots;
SELECT pg_drop_replication_slot('名前');スロットを使うと、スタンバイがまだ受け取っていない WAL を、プライマリが消さずに残します。止まったスタンバイがあとで追いつけます。その代わり、使われないスロット(active が f)があると WAL がたまり続け、ディスクがあふれます。要らないスロットは消し、max_slot_wal_keep_size で残す量の上限を決めておきます(超えると wal_status が lost)。
例
SELECT slot_name, active, pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn) FROM pg_replication_slots;
実際に打って練習する
PostgreSQL DBA コースの Lv57「レプリケーションスロット」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、プラチナ以上のプランで遊べます。