qhb_archivecleanup
qhb_archivecleanup
- очистка архивных файлов QHB WAL.
Синтаксис
qhb_archivecleanup [option...] archivelocation oldestkeptwalfile
Описание
qhb_archivecleanup
предназначен для использования в качестве
archive_cleanup_command
для очистки файловых архивов WAL при работе в
качестве резервного сервера. qhb_archivecleanup
также
может использоваться как самостоятельная программа для очистки файловых
архивов WAL.
Чтобы настроить резервный сервер для использования qhb_archivecleanup
,
добавьте в файл конфигурации qhb.conf
следующую строку:
archive_cleanup_command = 'qhb_archivecleanup archivelocation %r'
где archivelocation
- это каталог, из которого должны быть удалены файлы сегментов WAL.
Важно!!!
Чтобыqhb_archivecleanup
использвать как отдельную программу, нужно в файле конфигурации qhb.conf добавить следующие строки:archive_mode = on; archive_command = 'test ! -f archivelocation %f && cp %p archivelocation %f';
Это относится только к мастер-серверу, так как именно он передает логи.
При использовании в archive_cleanup_command
все файлы WAL, логически предшествующие значению аргумента %r
будут удалены из расположения archivelocation
. Это минимизирует количество файлов, которые необходимо сохранить,
сохраняя возможность аварийного перезапуска. Использование этого параметра целесообразно,
если расположение archivelocation
указывает на область файлов конкретного
резервного сервера, но не в том случае, когда
archivelocation
какталог с архивом WAL, предназначенный для долговременного хранения, или
когда несколько резервных серверов восстанавливаются из одного и того же archivelocation
.
При использовании в качестве самостоятельной программы все файлы WAL,
логически предшествующие файлу oldestkeptwalfile
будут удалены из
каталога archivelocation
. В этом режиме, если вы укажете имя файла с расширением .partial
или .backup
, oldestkeptwalfile
будет определяться без расширения.
использоваться только префикс файла. Благодаря такой интерпретации расширения .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
предполагает, что расположение archivelocation
является каталогом, доступным для чтения и записи пользователем,
владеющим сервером.
Параметры
qhb_archivecleanup
принимает следующие аргументы командной строки:
Аргумент | Описание |
---|---|
-d | Выводить подробные отладочные сообщения в stderr |
-n | Вывести имена файлов, которые будут удалены в stdout (выполняет пробный запуск). |
-V , --version | Показать версию qhb_archivecleanup и выйти. |
-x extension | Указать расширение, которое будет убрано из всех имен файлов, прежде чем принимать решение об их удалении. Это обычно полезно для очистки архивов, которые были сжаты и, следовательно, имеют расширение, добавленное программой сжатия. Например: -x .gz . |
-? , --help | Показать справку об аргументах командной строки qhb_archivecleanup и выйти. |
Примеры
В системах Linux или Unix вы можете использовать:
archive_cleanup_command = 'qhb_archivecleanup -d /mnt/standby/archive %r 2>>cleanup.log'
где каталог архива физически расположен на резервном сервере, так что
команда archive_command
обращается к нему через NFS, но файлы являются
локальными для резервного сервера. Это команда будет:
- выводить отладочную информацию в cleanup.log
- удалять ставшие ненужными файлы из каталога архива