qhb_archivecleanup

qhb_archivecleanup — вычистить архивные файлы WAL QHB.


Синтаксис

qhb_archivecleanup [параметр...] расположение_архива старейший_сохраняемый_файл_wal

Описание

Утилита qhb_archivecleanup предназначена для использования в качестве archive_cleanup_command для удаления архивных файлов WAL при работе на резервном сервере (см. раздел Доставка журналов на резервные серверы). Также qhb_archivecleanup можно использовать и как отдельную программу для очистки архивных файлов WAL.

Чтобы использовать qhb_archivecleanup на резервном сервере, добавьте в файл конфигурации qhb.conf следующую строку:

archive_cleanup_command = 'qhb_archivecleanup расположение_архива %r'

где расположение_архива — это каталог, из которого нужно удалить файлы сегментов WAL.

При использовании этой утилиты в качестве archive_cleanup_command из расположения_архива будут удалены все файлы WAL, логически предшествующие значению аргумента %r. Это сокращает количество файлов, которые необходимо сохранить, без потери возможности аварийного перезапуска. Использование этого варианта целесообразно, если расположение_архива указывает на область рабочих файлов конкретного резервного сервера, но не когда расположение_архива — каталог с архивом WAL для долговременного хранения, или когда несколько резервных серверов восстанавливаются из одного расположения архива.

При использовании этой утилиты как самостоятельной программы из каталога расположение_архива будут удалены все файлы WAL, логически предшествующие файлу старейший_сохраняемый_файл_wal. Если в этом режиме указать имя файла с расширением .partial или .backup, старейший_сохраняемый_файл_wal будет определяться только по префиксу, без расширения. Такая интерпретация имени файла .backup позволяет без ошибки удалить все файлы WAL, заархивированные до определенной базовой копии. Например, следующая команда удалит все файлы старше файла WAL с именем 000000010000003700000010:

qhb_archivecleanup -d archive 000000010000003700000010.00000020.backup

qhb_archivecleanup:  keep WAL file "archive/000000010000003700000010" and later
qhb_archivecleanup:  removing file "archive/00000001000000370000000F"
qhb_archivecleanup:  removing file "archive/00000001000000370000000E"

qhb_archivecleanup предполагает, что каталог расположение_архива доступен для чтения и записи пользователю, владеющему серверным процессом.


Параметры

Утилита qhb_archivecleanup принимает следующие аргументы командной строки:

-d
Выводить подробные отладочные сообщения в stderr.

-n
Вывести имена файлов, которые будут удалены, в stdout (выполняет пробный запуск).

-V
--version
Вывести версию qhb_archivecleanup и завершиться.

-x расширение
Установить расширение, которое будет убрано из всех имен файлов до принятия решения об их удалении. Это обычно полезно для очистки архивов, которые были сжаты для хранения и поэтому имеют расширение, добавленное программой сжатия. Например: -x .gz.

-?
--help
Показать справку об аргументах командной строки qhb_archivecleanup и завершиться.


Переменные среды

Переменная среды PG_COLOR указывает, использовать ли цвета в диагностических сообщениях. Возможные значения: always (всегда), auto (автоматически) и never (никогда).


Примечания

Утилита qhb_archivecleanup написана на языке C, и ее исходный код легко поддается модификации, поскольку содержит специально разработанные секции, которые можно изменять для собственных нужд.


Примеры

В системах Linux или Unix можно использовать команду:

archive_cleanup_command = 'qhb_archivecleanup -d /mnt/standby/archive %r 2>>cleanup.log'

где каталог архива физически расположен на резервном сервере, так что команда archive_command обращается к нему по NFS, но для резервного сервера эти файлы локальные. Это команда будет:

  • выводить отладочную информацию в cleanup.log
  • удалять ставшие ненужными файлы из каталога архива