PostgreSQL
November 30, 2022
Рост размера WAL журнала из-за слота репликации
Довольно часто в графиках кластера PostgreSQL, а конкретнее в графике Total size of WAL files, можно видеть не ровную горизонтальную линию или синус, а постоянно растущую прямую линию. График будет очень похож на биссектриссу, выходящую из угла. Это означает что есть проблемы с WAL.
Одной из самых распространённых причин такого поведения является неработающий логический слот репликации. Посмотреть это можно подключившись к кластеру и от имени root вбить команду psql.
Далее в консоли postgresql уже делаем запрос к одной из системных баз:
select * from pg_replication_slots ;
select * from pg_replication_slots ; -[ RECORD 1 ]-------+-------------- slot_name | debezium plugin | pgoutput slot_type | logical datoid | 16552 database | Risk1 temporary | f active | f active_pid | [null] xmin | [null] catalog_xmin | 157861469 restart_lsn | 1E74/9B651980 confirmed_flush_lsn | 1E75/15209D98 wal_status | extended safe_wal_size | [null] Time: 1.818 m
Здесь есть неактивный (active=f) слот от debezium (slot_name=debezium). Из-за которого и идёт рост WAL журнала.
По дефолту используется 1 слот репликации:
select * from pg_replication_slots ; -[ RECORD 1 ]-------+------------------------------------------ slot_name | rc1a_xxxxxxxxxxx_mdb_yandexcloud_net plugin | [null] slot_type | physical datoid | [null] database | [null] temporary | f active | t active_pid | 1242723 xmin | 8678220 catalog_xmin | [null] restart_lsn | 40E/DD0007D8 confirmed_flush_lsn | [null] wal_status | reserved safe_wal_size | [null] two_phase | f Time: 2.806 m
Слот удаляется через функцию pg_drop_replication_slot.
select pg_drop_replication_slot('slot_name');select pg_drop_replication_slot('debezium');November 30, 2022, 10:38
0 views
0 reposts