DBAtlas · Atlas de operaciones de bases de datos

Limitar el WAL que pueden retener los slots (max_slot_wal_keep_size)

PostgreSQLReplicación

Comando

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;

Qué hace

Fija un límite superior al WAL que los replication slots pueden mantener en pg_wal (por defecto -1 = ilimitado); al superarse, el checkpoint elimina el WAL antiguo y el slot pasa a wal_status = 'lost'. El parámetro surte efecto con un reload.

Cuándo usarlo

Como salvaguarda en todo clúster que use slots, frente al riesgo de que un standby o suscriptor desconectado llene el disco del primario y detenga todo el sistema.

Precaución

El límite prioriza mantener vivo el primario a costa del propietario del slot: un standby con un slot 'lost' debe reconstruirse y una suscripción lógica debe recrearse. Elija un valor inferior al espacio libre del disco de pg_wal pero mayor que el WAL generado durante la caída más larga esperada. Si wal_status es 'unreserved', el slot está a punto de perderse; genere una alerta.

Abrir en DBAtlas →

Relacionado