Postgres: как мне безопасно удалить реплику? - PullRequest
2 голосов
/ 19 апреля 2019

Нужно ли что-либо делать на первичном сервере, если я навсегда удаляю его единственную реплику?Я обеспокоен тем, что файлы WAL заполняют диск.

Я хочу удалить единственную реплику из настройки репликации с одним узлом:

P -> R

Я хочуудалить R.

1 Ответ

2 голосов
/ 19 апреля 2019

Ваши проблемы абсолютно верны.Реплика создает слот репликации на основном сервере, где хранится restart_lsn.Согласно документам, restart_lsn - это:

Адрес (LSN) самого старого WAL, который все еще может потребоваться потребителю этого слота и, следовательно, не будет автоматически удаляться во время контрольных точек.

Если реплика не продвигает LSN в этом слоте репликации, основной будет сохранять все сегменты WAL, начиная с этой позиции и игнорируя предел max_wal_size.

Если вы хотите удалить реплику и включитьВращение WAL, затем вы также должны удалить слот репликации:

postgres=# SELECT * FROM pg_replication_slots;
postgres=# SELECT pg_drop_replication_slot('replication_slot_name');

На Postgres Commitfest имеется патч , который вводит новый GUC для ограничения объема WAL, удерживаемого слотом репликации.,Тем не менее, патч является долгоживущим и еще не выпущен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...