私はクラシックマスタースレーブPG(バージョン10)アーキテクチャを使用しています。事実にもかかわらず、パラメータwal_keep_segments
が200に設定されている場合、スタンバイサーバーのpg_walディレクトリは削除されずに埋められます。詳細については、プライマリサーバーではこの問題は発生しません。
プライマリとスタンバイの両方が同じ設定を持っています。
マスター:
select * from pg_stat_replication; -[RECORD 1] ---- + ------------------------- --------------------- pid | 5399 usesysid | 16387 usename |レプリケーション アプリケーション名| walreceiver client_addr | XXXXXXXXXXXX client_hostname | XXXXXXXXXXXX client_port | 56780 backend_start | 2018-11-05 10:18:50.280663 + 00 backend_xmin | state |ストリーミング sent_lsn | 71/E3000000 write_lsn | 71/E3000000 flush_lsn | 71/E3000000 replay_lsn | 71/E3000000 write_lag | flush_lag | replay_lag | sync_priority | 0 sync_state | async -[RECORD 2] ---- + ---------------------------------- ------------ pid | 10175 usesysid | 16389 usename | barman_replication application_name | barman_receive_wal client_addr | XXXXXXXXXXXX client_hostname | XXXXXXXXXXXX client_port | 42572 backend_start | 2018-11-12 03:09:03.715933 + 00 backend_xmin | state |ストリーミング sent_lsn | 71/E3000000 write_lsn | 71/E3000000 flush_lsn | 71/E3000000 replay_lsn | write_lag | 00:00:02.516016 flush_lag | 00:00:02.516016 replay_lag | 06:28:11.482478 sync_priority | 0 sync_state |非同期
スタンバイ時:
select * from pg_replication_slots; -[RECORD 1] ------- + ------------ slot_name | barman plugin | slot_type |物理 datoid | データベース| 一時的| f アクティブ| f active_pid | xmin | catalog_xmin | restart_lsn | 16/9F000000 confirmed_flush_lsn |
複製スロットは、マスター上にのみ存在し、スタンバイ上には存在しないはずです。カスケードレプリケーションを使用している場合を除き、そうではありません。
スタンバイにレプリケーションスロットがあっても、そこに接続して読み取りや転送を行うユーザーがいない場合は、保持について説明します。
https://www.postgresql.org/docs/9.6/continuous-archiving.html#BACKUP-BASE-BACKUP を参照してください:
マスターに存在するレプリケーションスロットがバックアップの一部にならないように、クラスターのpg_replslot /ディレクトリ内のファイルもバックアップから除外することをお勧めします。そうしないと、その後バックアップを使用してスタンバイを作成すると、スタンバイでWALファイルが無期限に保持される可能性があります。