Есть ли способ, как я могу очистить файлы postgres WAL НА ГЛАВНОМ СЕРВЕРЕ - ВЕДОМЫЙ в порядке, но у мастера wal keep сегмент установлен на 2000, и это приводит к увеличению использования дискового пространства. Я ищу способ очистить это дисковое пространство на МАСТЕРЕ, ничего не сломав. Я знаю, что установка для сегментов 2000 - безумие, но это было не мной.
Устраните основную причину, и проблема исчезнет (ваша основная проблема - кто-то, кто не знал, что делал, и не читал набор руководств Postgres wal_keep_segments
до безумного значения):
wal_keep_segments
до разумного значения.Подходящее значение для wal_keep_segments будет зависеть от ряда переменных. Никто не может сказать вам, на что это установить. Я установил для наших баз данных 64, так как 64 - это среднее количество файлов WAL, записываемых в период загруженности более 3 часов. Это будет означать, что у меня есть 3 часа, чтобы исправить любую проблему между основным и резервным за это время. Если я прохожу более 3 часов, мне придется либо повторно активировать режим ожидания, либо начать передачу файлов WAL из каталога архива.
Я столкнулся с этой проблемой на предпроизводственном сервере, для которого раньше выполнялось резервное копирование, а теперь нет. Оказывается, конфигурация была изменена на:
archive_command = ''
archive_mode = on
... предположительно, чтобы удалить команду rsync. Это привело к pg_xlog
бесконечно растет. Ты не можешь изменить archive_mode
выключено, для этого требуется перезапуск экземпляра.
Решил проблему поменяв archive_command = '/bin/true'
, сделал select pg_reload_conf();
и каталог был очищен в течение следующих нескольких контрольных точек.