DBAtlas · データベース運用アトラス

スロットが保持できるWALを制限(max_slot_wal_keep_size)

PostgreSQLレプリケーション

コマンド

ALTER SYSTEM SET max_slot_wal_keep_size = '100GB';
SELECT pg_reload_conf();
SELECT slot_name, active, wal_status, pg_size_pretty(safe_wal_size) AS safe_wal_size FROM pg_replication_slots;

概要

レプリケーションスロットがpg_walに保持できるWALの上限を設定する(デフォルト-1 = 無制限)。超過するとチェックポイントが古いWALを削除し、スロットはwal_status = 'lost'になる。パラメータはリロードで有効になる。

使用する場面

スロットを使用するすべてのクラスタで、切断されたスタンバイやサブスクライバがプライマリのディスクを満杯にしてシステム全体を停止させるリスクへの安全策として。

注意

この上限はスロット所有者を犠牲にしてプライマリの稼働維持を優先する: 'lost'スロットを持つスタンバイは再構築が必要になり、論理サブスクリプションは再作成が必要になる。pg_walディスクの空き領域より小さく、想定される最長の停止中に生成されるWALより大きな値を選ぶ。wal_statusが'unreserved'の場合、スロットは失われる寸前であるため、アラートを発生させる。

DBAtlas で開く →

関連項目