pg_archivecleanup
pg_archivecleanup — вычистить файлы архивов WAL Postgres Pro
Синтаксис
pg_archivecleanup
[параметр
...] расположение_архива
старейший_сохраняемый_файл
Описание
Утилита pg_archivecleanup предназначена для использования в качестве archive_cleanup_command
для удаления старых файлов WAL на резервном сервере (см. Раздел 25.2). pg_archivecleanup можно использовать и как отдельную программу для выполнения тех же действий.
Чтобы использовать pg_archivecleanup на резервном сервере, добавьте эту строку в файл конфигурации recovery.conf
:
archive_cleanup_command = 'pg_archivecleanup расположение_архива
%r'
Здесь расположение_архива
определяет каталог, из которого должны удаляться файлы сегментов WAL.
Вызываемая в качестве archive_cleanup_command, эта программа просматривает расположение_архива
и удаляет все файлы WAL, логически предшествующие значению аргумента %r
. Целью этой операции является сокращение числа сохраняемых файлов без потери возможности восстановления при перезапуске. Такой вариант использования уместен, когда расположение_архива
указывает на область рабочих файлов конкретного резервного сервера, но не когда расположение_архива
— каталог с архивом WAL для долговременного хранения, или когда несколько резервных серверов восстанавливают записи WAL из одного расположения.
При отдельном использовании этой программы из каталога расположение_архива
будут удалены все файлы WAL, логически предшествующие файлу старейший_сохраняемый_файл
. В этом режиме, если вы укажете имя файла с расширением .partial
или .backup
, старейший_сохраняемый_файл
будет определяться по имени без расширения. Благодаря такой интерпретации расширения .backup
будут корректно удалены все файлы WAL, заархивированные до определённой базовой копии. Например, следующая команда удалит все файлы старее файла WAL с именем 000000010000003700000010
:
pg_archivecleanup -d archive 000000010000003700000010.00000020.backup pg_archivecleanup: keep WAL file "archive/000000010000003700000010" and later pg_archivecleanup: removing file "archive/00000001000000370000000F" pg_archivecleanup: removing file "archive/00000001000000370000000E"
pg_archivecleanup рассчитывает на то, что расположение_архива
доступно для чтения и записи пользователю, владеющему серверным процессом.
Параметры
pg_archivecleanup принимает следующие аргументы командной строки:
-d
Выводить подробные отладочные сообщения в
stderr
.-n
Вывести имена файлов, которые должны быть удалены, в
stdout
(не выполняя удаление).-V
--version
Вывести версию pg_archivecleanup и завершиться.
-x
расширение
При отдельном использовании этой программы укажите расширение, которое будет убрано из имён файлов до принятия решения об удалении определённых файлов. Это обычно полезно для очистки файлов архивов, которые сжимаются для хранения и получают расширение, задаваемое программой сжатия. Например:
-x .gz
.-?
--help
Вывести справку об аргументах командной строки pg_archivecleanup и завершиться.
Замечания
Программа pg_archivecleanup рассчитана на работу с PostgreSQL 8.0 и новее как отдельная утилита, а также с PostgreSQL 9.0 и новее как команда очистки архива.
Программа pg_archivecleanup написана на C; её исходный код легко поддаётся модификации (он содержит секции, предназначенные для изменения при надобности)
Примеры
В системах Linux или Unix можно использовать команду:
archive_cleanup_command = 'pg_archivecleanup -d /mnt/standby/archive %r 2>>cleanup.log'
Предполагается, что каталог архива физически располагается на резервном сервере, так что команда archive_command
обращается к нему по NFS, но для резервного сервера эти файлы локальные. Эта команда будет:
выводить отладочную информацию в
cleanup.log
удалять ставшие ненужными файлы из каталога архива
См. также
pg_standbyCREATE SERVER
CREATE SERVER — define a new foreign server
Synopsis
CREATE SERVER [IF NOT EXISTS]server_name
[ TYPE 'server_type
' ] [ VERSION 'server_version
' ] FOREIGN DATA WRAPPERfdw_name
[ OPTIONS (option
'value
' [, ... ] ) ]
Description
CREATE SERVER
defines a new foreign server. The user who defines the server becomes its owner.
A foreign server typically encapsulates connection information that a foreign-data wrapper uses to access an external data resource. Additional user-specific connection information may be specified by means of user mappings.
The server name must be unique within the database.
Creating a server requires USAGE
privilege on the foreign-data wrapper being used.
Parameters
IF NOT EXISTS
Do not throw an error if a server with the same name already exists. A notice is issued in this case. Note that there is no guarantee that the existing server is anything like the one that would have been created.
server_name
The name of the foreign server to be created.
server_type
Optional server type, potentially useful to foreign-data wrappers.
server_version
Optional server version, potentially useful to foreign-data wrappers.
fdw_name
The name of the foreign-data wrapper that manages the server.
OPTIONS (
option
'value
' [, ... ] )This clause specifies the options for the server. The options typically define the connection details of the server, but the actual names and values are dependent on the server's foreign-data wrapper.
Notes
When using the dblink module, a foreign server's name can be used as an argument of the dblink_connect function to indicate the connection parameters. It is necessary to have the USAGE
privilege on the foreign server to be able to use it in this way.
Examples
Create a server myserver
that uses the foreign-data wrapper postgres_fdw
:
CREATE SERVER myserver FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'foo', dbname 'foodb', port '5432');
See postgres_fdw for more details.
Compatibility
CREATE SERVER
conforms to ISO/IEC 9075-9 (SQL/MED).