나의 잡다한 노트 및 메모
DBA가 알면 좋은 쿼리 ( SLOT ) 본문
SELECT slot_name, slot_type, active,
pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn)) AS retained_from_current,
restart_lsn, confirmed_flush_lsn
FROM pg_replication_slots
ORDER BY pg_wal_lsn_diff(pg_current_wal_lsn(), restart_lsn) DESC;
이 쿼리를 사용할 때는 pg_wal이 굉장히 많이 잡혀있어서 확인하게 된게 계기이다.
이걸 통해 고아 slot들이 있음을 확인했다.
SELECT * FROM pg_subscription;
slot들 중에서 구독된 게 있는지 확인했고, 고아슬롯인지 확인햇다.
SELECT slot_name, slot_type, active, plugin, database, temporary
FROM pg_replication_slots
WHERE slot_type='logical'
ORDER BY active DESC, slot_name;
SELECT pid, application_name, state, sync_state, client_addr
FROM pg_stat_replication;
checkpoint;
고아 슬롯을 제거했다면 checkpoint로 반영시키면 된다.
SELECT pg_drop_replication_slot('pg_18005_sync_17433_7540556035005825047');
SELECT pg_drop_replication_slot('pg_18005_sync_17474_7540556035005825047');
SELECT pg_drop_replication_slot('raw_sub_v_shop_stock');
슬롯을 제거하는 쿼리
SELECT slot_name, slot_type, active
FROM pg_replication_slots
WHERE slot_type='physical';
SELECT slot_name, slot_type, active FROM pg_replication_slots WHERE slot_type='logical';
'DB > PostgreSQL' 카테고리의 다른 글
| Postgrest 란 무엇인가? 장단점과 특징 (0) | 2025.11.12 |
|---|---|
| PostgreSQL 관리자(DBA)가 자주 쓰는 주요 테이블/뷰 (0) | 2025.08.23 |
| PostgreSQL Vacuum (3) | 2025.08.22 |
| PostgreSQL tablespace (0) | 2025.08.22 |
| PostgreSQL Subscription (0) | 2025.08.20 |