web-dev-qa-db-ja.com

スタンバイサーバーのpg_walディレクトリが自動パージされない

私はクラシックマスタースレーブ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 | 
2
TheWhiteWolf

複製スロットは、マスター上にのみ存在し、スタンバイ上には存在しないはずです。カスケードレプリケーションを使用している場合を除き、そうではありません。

スタンバイにレプリケーションスロットがあっても、そこに接続して読み取りや転送を行うユーザーがいない場合は、保持について説明します。

https://www.postgresql.org/docs/9.6/continuous-archiving.html#BACKUP-BASE-BACKUP を参照してください:

マスターに存在するレプリケーションスロットがバックアップの一部にならないように、クラスターのpg_replslot /ディレクトリ内のファイルもバックアップから除外することをお勧めします。そうしないと、その後バックアップを使用してスタンバイを作成すると、スタンバイでWALファイルが無期限に保持される可能性があります。

1
jjanes