Это многостраничная версия текущего раздела для печати. .
Справочник команд
- 1: Команда аннотирования (annotate)
- 2: Команда получения из архива (archive-get)
- 3: Команда отправки в архив (archive-push)
- 4: Команда резервного копирования (backup)
- 5: Команда проверки конфигурации (check)
- 6: Команда удаления устаревших копий (expire)
- 7: Команда справки (help)
- 8: Команда вывода сведений (info)
- 9: Команда чтения из репозитория (repo-get)
- 10: Команда просмотра репозитория (repo-ls)
- 11: Команда восстановления (restore)
- 12: Команда сервера (server)
- 13: Команда проверки доступности сервера (server-ping)
- 14: Команда создания stanza (stanza-create)
- 15: Команда удаления stanza (stanza-delete)
- 16: Команда обновления stanza (stanza-upgrade)
- 17: Команда разрешения запуска (start)
- 18: Команда остановки (stop)
- 19: Команда проверки данных (verify)
- 20: Команда версии (version)
Введение
Команды выполняют различные функции pgBackRest. Здесь приведён полный список параметров команд: каждый применимый к команде параметр перечислен в её описании, даже если он применим и к другим командам. Сюда входят все параметры, которые также можно настроить в pgbackrest.conf.
Параметры, не имеющие логического типа, заданные в pgbackrest.conf, можно сбросить к значениям по умолчанию из командной строки с помощью префикса reset-. Это позволяет восстановить резервную копию непосредственно на сервере репозитория. Обычно pgBackRest выдаёт ошибку, поскольку определяет, что сервер базы данных удалённый, а удалённое восстановление невозможно. Если добавить --reset-pg1-host в командную строку, pgBackRest проигнорирует удалённый сервер базы данных и выполнит восстановление локально. Может потребоваться передать новый --pg1-path, чтобы выполнить восстановление в определённый каталог, отличный от каталога на сервере базы данных.
Префикс no- позволяет задать логическому параметру значение false в командной строке.
Любой параметр можно задать переменной окружения, добавив префикс PGBACKREST_ к имени параметра в верхнем регистре и заменив - на _: например, pg1-path превращается в PGBACKREST_PG1_PATH, а stanza — в PGBACKREST_STANZA. Логические параметры представляются так же, как в файле конфигурации, например PGBACKREST_COMPRESS="n"; варианты reset-* не допускаются. Для параметров, которые можно указывать несколько раз в командной строке или файле конфигурации, значения разделяются двоеточиями, например PGBACKREST_DB_INCLUDE="db1:db2".
Параметры командной строки переопределяют параметры окружения, а те переопределяют параметры файла конфигурации.
Сведения о типах параметров приведены во введении в конфигурацию
Команды
| Команда | Краткое описание |
|---|---|
annotate
|
Добавление, изменение или удаление аннотаций резервной копии после её создания. |
archive-get
|
Получение архивированных сегментов WAL для восстановления, PITR или восстановления реплики. |
archive-push
|
Получение сегментов WAL от PostgreSQL и отправка их в настроенные репозитории. |
backup
|
Создание резервных копий в целевом репозитории (по умолчанию — репозиторий с наивысшим приоритетом). |
check
|
Проверка конфигурации резервного копирования и архивирования stanza, а также работы архивирования WAL. |
expire
|
Удаление резервных копий и архивного WAL согласно настроенным политикам хранения. |
help
|
Вывод общей справки, справки по команде или по параметру. |
info
|
Вывод состояния и метаданных stanza и резервных копий в текстовом формате или JSON. |
repo-get
|
Чтение файлов репозитория (подобно cat) для администрирования, исследования и тестирования. |
repo-ls
|
Вывод списка файлов и путей репозитория (подобно ls) для администрирования, исследования и тестирования. |
restore
|
Восстановление из резервной копии (по умолчанию — последней) с возможностью восстановления на заданный момент времени. |
server
|
Запуск TLS-сервера pgBackRest для доступа к удалённому серверу без SSH. |
server-ping
|
Проверка того, что TLS-сервер pgBackRest принимает соединения. |
stanza-create
|
Создание метаданных stanza во всех настроенных репозиториях. |
stanza-delete
|
Безвозвратное удаление всех резервных копий и архивов stanza. |
stanza-upgrade
|
Обновление метаданных stanza после обновления основной версии PostgreSQL. |
start
|
Возобновление разрешения на запуск процессов pgBackRest после команды stop. |
stop
|
Запрет запуска новых процессов pgBackRest и, при необходимости, принудительная остановка работающих. |
verify
|
Проверка корректности данных резервных копий и архива в репозитории. |
version
|
Вывод установленной версии pgBackRest. |
1 - Команда аннотирования (annotate)
annotate.Аннотации, заданные при выполнении команды backup, впоследствии можно добавлять, изменять и удалять с помощью команды annotate.
Параметры команды
Параметр аннотации резервной копии (--annotation)
Добавление к резервной копии пользовательских пар «ключ — значение».
Пользователи могут добавлять к резервной копии информационные пары «ключ — значение». Этот параметр можно указывать несколько раз для добавления нескольких аннотаций.
Аннотации включаются в текстовый вывод команды info, если резервная копия указана через --set, и всегда присутствуют в выводе JSON.
Параметр набора резервной копии (--set)
Набор резервной копии для аннотирования.
Набор резервной копии, к которому применяются аннотации.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
2 - Команда получения из архива (archive-get)
archive-get.PostgreSQL использует эту команду для восстановления резервной копии, выполнения PITR или поддержания реплики в актуальном состоянии как альтернативу потоковой передаче. Сегменты WAL необходимы для восстановления PostgreSQL или поддержания реплики.
Если настроено несколько репозиториев, WAL запрашивается из них в порядке приоритета (например, repo1, repo2 и т. д.). Как правило, более быстрому или дешёвому хранилищу лучше назначать более высокий приоритет. Если репозиторий указан параметром --repo, поиск выполняется только в нём.
При восстановлении pgBackRest настраивает и формирует команду archive-get для использования PostgreSQL. Пример приведён в разделе Восстановление на заданный момент времени
.
Параметры команды
Параметр асинхронного архивирования (--archive-async)
Асинхронная отправка и получение сегментов WAL.
Включает асинхронный режим работы команд archive-push и archive-get.
Асинхронный режим эффективнее, поскольку позволяет повторно использовать соединения и выполнять операции параллельно. Дополнительные сведения приведены в описании параметров spool-path, archive-get-queue-max и archive-push-queue-max.
Параметр максимального размера очереди получения из архива (--archive-get-queue-max)
Максимальный размер очереди archive-get в pgBackRest.
Задаёт максимальный размер очереди archive-get при включённом archive-async. Очередь хранится в spool-path и ускоряет передачу WAL в PostgreSQL.
Параметр повторного запроса отсутствующего сегмента WAL (--archive-missing-retry)
Повторный запрос отсутствующего сегмента WAL
Повторно запрашивает сегмент WAL, об отсутствии которого ранее сообщила команда archive-get в асинхронном режиме. Это предотвращает использование уведомлений в каталоге очереди, оставшихся от предыдущего восстановления, которые могли бы привести к сбою восстановления, если согласованность ещё не достигнута.
Отключение этого параметра позволяет PostgreSQL надёжнее определять достижение конца WAL в архиве и переключаться на потоковую передачу с первичного сервера. Если повторные запросы включены, непрерывное поступление WAL в архив заставляет PostgreSQL продолжать получать WAL из архива вместо переключения на потоковую передачу.
При отключении этого параметра важно убедиться, что каталог очереди для stanza пуст. Команда restore очищает его автоматически, если каталог очереди настроен на момент восстановления. В противном случае пользователь должен самостоятельно обеспечить его очистку.
Параметр тайм-аута архивирования (--archive-timeout)
Тайм-аут архивирования.
Задаёт максимальное время в секундах, в течение которого ожидается поступление каждого сегмента WAL в архивный репозиторий pgBackRest. Тайм-аут применяется к командам check и backup, когда они ожидают архивирования сегментов WAL, необходимых для согласованности резервной копии.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды pgBackRest (--cmd)
Команда pgBackRest.
pgBackRest может формировать командную строку, например когда команда restore создаёт настройку restore_command. В этом случае используется команда, которой был запущен процесс pgBackRest, если не задан параметр cmd.
ОСТОРОЖНО:
Использование обёртки для команды pgBackRest может привести к непредсказуемому поведению и не рекомендуется.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр максимального числа процессов (--process-max)
Максимальное число процессов для сжатия и передачи данных.
Каждый процесс выполняет сжатие и передачу, ускоряя выполнение команды, однако не следует задавать process-max настолько большим, чтобы это ухудшало производительность базы данных.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр каталога очереди (--spool-path)
Путь для хранения промежуточных данных.
Этот каталог используется для хранения данных асинхронных команд archive-push и archive-get.
Асинхронная команда archive-push записывает подтверждения в каталог очереди после успешного сохранения WAL в архиве (а при сбое — сообщения об ошибках), чтобы процесс переднего плана мог быстро уведомить PostgreSQL. Файлы подтверждений очень малы: нулевого размера при успехе и несколько сотен байтов при ошибке.
Асинхронная команда archive-get помещает WAL в очередь в каталоге очереди, чтобы быстро передавать его по запросу PostgreSQL. Перемещение файлов в PostgreSQL наиболее эффективно, когда каталог очереди находится в той же файловой системе, что и pg_xlog/pg_wal. Однако не рекомендуется размещать каталог очереди внутри pg_xlog/pg_wal, поскольку это может вызвать проблемы у утилит PostgreSQL, таких как pg_rewind.
Данные в каталоге очереди нельзя считать строго временными: они могут сохраняться после перезагрузки, и их следует сохранять. Однако их потеря не представляет проблемы. pgBackRest просто повторно проверит каждый сегмент WAL, чтобы убедиться в его надёжном архивировании для archive-push, и заново построит очередь для archive-get.
Каталог очереди предназначен для размещения в локальной файловой системе, совместимой с Posix, а не в удалённой файловой системе, такой как NFS или CIFS.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры для сопровождающих
Параметр принудительного задания версии PostgreSQL (--pg-version-force)
Принудительное задание версии PostgreSQL.
Указанная версия PostgreSQL будет использоваться вместо версии, автоматически определённой по pg_control или заголовкам WAL. Это полезно главным образом для форков PostgreSQL или версий в разработке, в которых эти значения отличаются от версии выпуска. Версия, которую PostgreSQL сообщает через server_version_num, должна совпадать с принудительно заданной.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр осторожно: pg_control и заголовки WAL всё равно будут читаться в формате, ожидаемом для указанной версии, то есть в формате официальной версии PostgreSQL с открытым исходным кодом. Если форк или версия в разработке меняет формат полей, от которых зависит pgBackRest, это приведёт к неожиданному поведению. В общем случае параметр будет работать как ожидается только тогда, когда форк добавляет все собственные поля структур после стандартных полей PostgreSQL.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр целевого времени репозитория (--repo-target-time)
Целевое время репозитория.
Целевое время определяет момент, на который команды читают репозиторий в хранилище с версионированием. Это позволяет прочитать состояние репозитория на определённый момент времени и восстановить данные, удалённые или повреждённые по ошибке пользователя либо вредоносным ПО.
S3, GCS и Azure поддерживают версионирование, но обычно оно отключено по умолчанию. Помимо включения версионирования, может быть полезно включить блокировку объектов в S3 и обратимое удаление в GCS или Azure.
Если указан параметр repo-target-time, необходимо также указать repo. Версионирование, вероятно, поддерживается не всеми типами репозиториев, и в целом при восстановлении разумно обращаться к одному конкретному репозиторию.
Временные метки хранилища сравниваются с указанной по условию <=; миллисекунды, если они указаны, отбрасываются.
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
Параметры stanza
Параметр пути PostgreSQL (--pg-path)
Каталог данных PostgreSQL.
Следует указать значение data_directory, сообщаемое PostgreSQL. Хотя его можно получить из разных источников, разумно задать его явно на случай, если эти источники будут недоступны при восстановлении или резервном копировании остановленного кластера.
При каждом резервном копировании работающего кластера параметр pg-path сверяется со значением, сообщаемым PostgreSQL, поэтому его следует всегда поддерживать актуальным.
Устаревшее имя: db-path
3 - Команда отправки в архив (archive-push)
archive-push.Принимает сегмент WAL от PostgreSQL и архивирует его в каждом репозитории, заданном индексированным параметром repo-path (сведения о настройке репозиториев приведены в разделе Репозиторий
). В зависимости от archive-async сегмент WAL может быть сразу отправлен в архив или сохранён локально. При нескольких настроенных репозиториях archive-push пытается отправить сегмент в максимально возможное их число.
Команда archive-push предназначена для настройки и вызова из PostgreSQL. Пример приведён в разделе Настройка архивирования
.
Параметры команды
Параметр асинхронного архивирования (--archive-async)
Асинхронная отправка и получение сегментов WAL.
Включает асинхронный режим работы команд archive-push и archive-get.
Асинхронный режим эффективнее, поскольку позволяет повторно использовать соединения и выполнять операции параллельно. Дополнительные сведения приведены в описании параметров spool-path, archive-get-queue-max и archive-push-queue-max.
Параметр проверки архива (--archive-check)
Проверка наличия сегментов WAL в архиве перед завершением резервного копирования.
Проверяет, что все сегменты WAL, необходимые для согласованности резервной копии, присутствуют в архиве WAL. Рекомендуется оставить значение по умолчанию, если не используется другой способ архивирования.
Этот параметр должен быть включён, если включён archive-copy.
Параметр проверки режима архивирования (--archive-mode-check)
Проверка настройки PostgreSQL archive_mode.
Этот параметр включён по умолчанию и запрещает использовать в PostgreSQL archive_mode=always.
Сегменты WAL, отправляемые с резервного сервера, могут логически совпадать с сегментами WAL с первичного сервера, но иметь другие контрольные суммы. Во избежание конфликтов рекомендуется отключить архивирование из нескольких источников.
ОСТОРОЖНО:
Если этот параметр отключён, крайне важно обеспечить, чтобы в репозиторий через команду archive-push писал только один процесс архивирования.
Параметр размера пакета отправки в архив (--archive-push-batch-size)
Максимальный объём WAL, отправляемый за один асинхронный запуск.
В асинхронном режиме процесс archive-push отправляет все готовые сегменты WAL за один запуск. Поскольку archive-push-queue-max проверяется только в начале каждого запуска, при обработке очень большого числа сегментов очередь может значительно превысить предел до следующей проверки.
Этот параметр ограничивает объём WAL, обрабатываемый за один запуск, после чего процесс завершается и вновь запускается следующим вызовом archive-push, который повторно проверяет очередь. Меньшие значения позволяют проверять очередь чаще, но требуют более частого запуска асинхронного процесса. Значение округляется вниз до целого числа сегментов WAL, однако всегда обрабатывается хотя бы один сегмент.
Параметр максимального размера очереди отправки в архив (--archive-push-queue-max)
Максимальный размер очереди архивирования PostgreSQL.
При достижении предела произойдёт следующее:
- pgBackRest сообщит PostgreSQL об успешном архивировании WAL, а затем УДАЛИТ ЕГО.
- В журнал PostgreSQL будет выведено предупреждение.
В этом случае поток архивного журнала прервётся, и PITR за этой точкой станет невозможен. Чтобы вновь обеспечить полные возможности восстановления, потребуется новая резервная копия.
В асинхронном режиме удаляется вся очередь, чтобы отдельные сегменты WAL не успевали попадать в архив до повторного превышения предела очереди.
В асинхронном режиме этот предел проверяется только в начале каждого запуска archive-push, поэтому за один запуск очередь может превысить его. Уменьшите archive-push-batch-size, чтобы проверять очередь чаще.
Эта возможность предотвращает заполнение тома с журналом, при котором PostgreSQL полностью остановится. Лучше потерять резервную копию, чем допустить остановку PostgreSQL.
Устаревшее имя: archive-queue-max
Параметр тайм-аута архивирования (--archive-timeout)
Тайм-аут архивирования.
Задаёт максимальное время в секундах, в течение которого ожидается поступление каждого сегмента WAL в архивный репозиторий pgBackRest. Тайм-аут применяется к командам check и backup, когда они ожидают архивирования сегментов WAL, необходимых для согласованности резервной копии.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды pgBackRest (--cmd)
Команда pgBackRest.
pgBackRest может формировать командную строку, например когда команда restore создаёт настройку restore_command. В этом случае используется команда, которой был запущен процесс pgBackRest, если не задан параметр cmd.
ОСТОРОЖНО:
Использование обёртки для команды pgBackRest может привести к непредсказуемому поведению и не рекомендуется.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр сжатия (--compress)
Сжатие файлов.
Файлы резервных копий совместимы с утилитами сжатия командной строки.
Этот параметр устарел. Вместо него следует использовать compress-type.
Параметр уровня сжатия (--compress-level)
Уровень сжатия файлов.
Задаёт уровень сжатия файлов, когда compress-type не равен none или задано compress=y (устаревший вариант).
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр типа сжатия (--compress-type)
Тип сжатия файлов.
Поддерживаются следующие типы сжатия:
none- без сжатияbz2- формат сжатия bzip2gz- формат сжатия gziplz4- формат сжатия lz4 (доступен не на всех платформах)zst- формат сжатия Zstandard (доступен не на всех платформах)
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр максимального числа процессов (--process-max)
Максимальное число процессов для сжатия и передачи данных.
Каждый процесс выполняет сжатие и передачу, ускоряя выполнение команды, однако не следует задавать process-max настолько большим, чтобы это ухудшало производительность базы данных.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр каталога очереди (--spool-path)
Путь для хранения промежуточных данных.
Этот каталог используется для хранения данных асинхронных команд archive-push и archive-get.
Асинхронная команда archive-push записывает подтверждения в каталог очереди после успешного сохранения WAL в архиве (а при сбое — сообщения об ошибках), чтобы процесс переднего плана мог быстро уведомить PostgreSQL. Файлы подтверждений очень малы: нулевого размера при успехе и несколько сотен байтов при ошибке.
Асинхронная команда archive-get помещает WAL в очередь в каталоге очереди, чтобы быстро передавать его по запросу PostgreSQL. Перемещение файлов в PostgreSQL наиболее эффективно, когда каталог очереди находится в той же файловой системе, что и pg_xlog/pg_wal. Однако не рекомендуется размещать каталог очереди внутри pg_xlog/pg_wal, поскольку это может вызвать проблемы у утилит PostgreSQL, таких как pg_rewind.
Данные в каталоге очереди нельзя считать строго временными: они могут сохраняться после перезагрузки, и их следует сохранять. Однако их потеря не представляет проблемы. pgBackRest просто повторно проверит каждый сегмент WAL, чтобы убедиться в его надёжном архивировании для archive-push, и заново построит очередь для archive-get.
Каталог очереди предназначен для размещения в локальной файловой системе, совместимой с Posix, а не в удалённой файловой системе, такой как NFS или CIFS.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры для сопровождающих
Параметр проверки заголовков WAL (--archive-header-check)
Проверка версии и идентификатора PostgreSQL в заголовках WAL.
Этот параметр включён по умолчанию и проверяет соответствие заголовка WAL версии PostgreSQL и системному идентификатору, чтобы убедиться, что WAL копируется в правильную stanza. Эта проверка дополняет проверку соответствия pg_control stanza и проверку того, что WAL копируется из того же каталога данных PostgreSQL, где находится pg_control.
Поэтому отключение этой проверки достаточно безопасно, но делать это следует только при необходимости, например если WAL зашифрован.
Параметр принудительного задания версии PostgreSQL (--pg-version-force)
Принудительное задание версии PostgreSQL.
Указанная версия PostgreSQL будет использоваться вместо версии, автоматически определённой по pg_control или заголовкам WAL. Это полезно главным образом для форков PostgreSQL или версий в разработке, в которых эти значения отличаются от версии выпуска. Версия, которую PostgreSQL сообщает через server_version_num, должна совпадать с принудительно заданной.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр осторожно: pg_control и заголовки WAL всё равно будут читаться в формате, ожидаемом для указанной версии, то есть в формате официальной версии PostgreSQL с открытым исходным кодом. Если форк или версия в разработке меняет формат полей, от которых зависит pgBackRest, это приведёт к неожиданному поведению. В общем случае параметр будет работать как ожидается только тогда, когда форк добавляет все собственные поля структур после стандартных полей PostgreSQL.
Параметры репозитория
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
Параметры stanza
Параметр пути PostgreSQL (--pg-path)
Каталог данных PostgreSQL.
Следует указать значение data_directory, сообщаемое PostgreSQL. Хотя его можно получить из разных источников, разумно задать его явно на случай, если эти источники будут недоступны при восстановлении или резервном копировании остановленного кластера.
При каждом резервном копировании работающего кластера параметр pg-path сверяется со значением, сообщаемым PostgreSQL, поэтому его следует всегда поддерживать актуальным.
Устаревшее имя: db-path
4 - Команда резервного копирования (backup)
backup.Если настроено несколько репозиториев, pgBackRest создаёт резервную копию в репозитории с наивысшим приоритетом (например, repo1), если не указан параметр --repo.
В pgBackRest нет встроенного планировщика, поэтому лучше запускать его через cron или другой механизм планирования.
Подробности и примеры приведены в разделе Создание резервной копии .
Параметры команды
Параметр аннотации резервной копии (--annotation)
Добавление к резервной копии пользовательских пар «ключ — значение».
Пользователи могут добавлять к резервной копии информационные пары «ключ — значение». Этот параметр можно указывать несколько раз для добавления нескольких аннотаций.
Аннотации включаются в текстовый вывод команды info, если резервная копия указана через --set, и всегда присутствуют в выводе JSON.
Параметр проверки архива (--archive-check)
Проверка наличия сегментов WAL в архиве перед завершением резервного копирования.
Проверяет, что все сегменты WAL, необходимые для согласованности резервной копии, присутствуют в архиве WAL. Рекомендуется оставить значение по умолчанию, если не используется другой способ архивирования.
Этот параметр должен быть включён, если включён archive-copy.
Параметр копирования архива (--archive-copy)
Копирование в резервную копию сегментов WAL, необходимых для согласованности.
Этот параметр обеспечивает дополнительную предосторожность: он защищает от повреждения архива сегментов WAL, сохраняя сегменты, необходимые для согласованности, непосредственно в резервной копии. Сегменты WAL по-прежнему сохраняются и в архиве, поэтому параметр увеличивает расход места.
При использовании этого параметра желательно, чтобы команды archive-push и backup имели одинаковый compress-type (например, lz4). Иначе сегменты WAL потребуется повторно сжать с compress-type, используемым резервной копией, что может потребовать значительных ресурсов в зависимости от объёма WAL, созданного во время резервного копирования.
При восстановлении сегменты WAL будут находиться в pg_xlog/pg_wal, и PostgreSQL предпочтёт использовать их, а не вызывать restore_command.
Параметр archive-check должен быть включён, если включён archive-copy.
Параметр проверки режима архивирования (--archive-mode-check)
Проверка настройки PostgreSQL archive_mode.
Этот параметр включён по умолчанию и запрещает использовать в PostgreSQL archive_mode=always.
Сегменты WAL, отправляемые с резервного сервера, могут логически совпадать с сегментами WAL с первичного сервера, но иметь другие контрольные суммы. Во избежание конфликтов рекомендуется отключить архивирование из нескольких источников.
ОСТОРОЖНО:
Если этот параметр отключён, крайне важно обеспечить, чтобы в репозиторий через команду archive-push писал только один процесс архивирования.
Параметр тайм-аута архивирования (--archive-timeout)
Тайм-аут архивирования.
Задаёт максимальное время в секундах, в течение которого ожидается поступление каждого сегмента WAL в архивный репозиторий pgBackRest. Тайм-аут применяется к командам check и backup, когда они ожидают архивирования сегментов WAL, необходимых для согласованности резервной копии.
Параметр резервного копирования с резервного сервера (--backup-standby)
Резервное копирование с резервного кластера.
Включает резервное копирование с резервного сервера для снижения нагрузки на первичный кластер. Этот параметр требует настройки как первичного, так и резервного сервера.
Поддерживаются следующие режимы:
y- Для резервного копирования необходим резервный сервер.prefer- Копирование с резервного сервера, если он доступен; иначе с первичного.n- Копирование только с первичного сервера.
Параметр контрольных сумм страниц (--checksum-page)
Проверка контрольных сумм страниц данных.
Указывает pgBackRest проверять контрольные суммы всех страниц данных при резервном копировании кластера. Этот параметр включается автоматически, если в кластере включены контрольные суммы страниц данных.
Ошибки проверки контрольных сумм не прерывают резервное копирование. Вместо этого в журнал выводятся предупреждения (а при настройках по умолчанию — и в консоль), а список некорректных страниц сохраняется в манифесте резервной копии.
Параметр исключения путей и файлов (--exclude)
Исключение путей и файлов из резервной копии.
Все исключения задаются относительно $PGDATA. Если исключение заканчивается на /, исключаются только файлы в указанном каталоге: например, --exclude=junk/ исключит все файлы в каталоге $PGDATA/junk, но сохранит сам каталог. Если исключение не заканчивается на /, файл может либо точно совпадать с исключением, либо соответствовать исключению с добавленным /: например, --exclude=junk исключит каталог $PGDATA/junk и все содержащиеся в нём файлы.
Используйте эту возможность осторожно: очень легко исключить важные данные и нарушить согласованность резервной копии. Обязательно проверяйте восстановление!
Все исключённые файлы записываются в журнал на уровне info вместе с правилом исключения. Обязательно проверяйте список исключённых файлов, чтобы убедиться, что ничего не исключено случайно.
ПРИМЕЧАНИЕ: при дельта-восстановлении исключения не учитываются. Все файлы и каталоги, исключённые при резервном копировании, будут удалены при дельта-восстановлении.
Этот параметр не следует использовать для исключения журналов PostgreSQL из резервной копии. Журналы можно вынести за пределы каталога PGDATA с помощью настройки PostgreSQL log_directory; при этом они также сохранятся после восстановления.
В командной строке или файле конфигурации можно задать несколько исключений.
Параметр автоматического удаления устаревших копий (--expire-auto)
Автоматический запуск команды expire после успешного резервного копирования.
Этот параметр включён по умолчанию. Отключать его следует с осторожностью: в этом случае все резервные копии и архивы будут храниться бессрочно, что может привести к исчерпанию места в репозитории. Чтобы избежать этого, необходимо регулярно запускать команду expire.
При автоматическом запуске после успешного резервного копирования expire использует конфигурацию команды backup, поэтому параметры, заданные только в секции команды expire (например, [global:expire]), не применяются. Чтобы применялась конфигурация, специфичная для expire, отключите этот параметр и запускайте команду expire отдельно.
Параметр принудительного выполнения (--force)
Принудительное резервное копирование остановленного кластера.
При использовании с --no-start-stop резервное копирование выполняется, даже если pgBackRest считает PostgreSQL работающим. Этот параметр следует использовать крайне осторожно, поскольку он, скорее всего, приведёт к созданию непригодной резервной копии.
В некоторых ситуациях резервное копирование может быть желательно и при таких условиях. Например, если сервер аварийно завершил работу, а том кластера базы данных можно смонтировать только для чтения, имеет смысл создать резервную копию, даже если присутствует postmaster.pid. В таком случае лучше было бы вернуться к предыдущей копии и воспроизвести WAL, но в сегменте WAL, не попавшем в архив, может находиться очень важная транзакция.
Параметр порога сохранения манифеста (--manifest-save-threshold)
Порог сохранения манифеста при резервном копировании.
Определяет, как часто манифест сохраняется во время резервного копирования. Сохранять его важно, поскольку он содержит контрольные суммы и обеспечивает эффективное возобновление. Фактический порог равен большему из двух значений: 1% размера резервной копии или manifest-save-threshold.
Параметр копирования работающего кластера (--online)
Резервное копирование работающего кластера.
Параметр –no-online запрещает pgBackRest вызывать функции начала и завершения резервного копирования на кластере базы данных. Для этого PostgreSQL следует остановить; если он работает, pgBackRest выдаст ошибку.
Этот параметр позволяет создавать резервные копии остановленного кластера. Каталог pg_xlog/pg_wal копируется как есть, а archive-check автоматически отключается для этой копии.
Параметр возобновления (--resume)
Разрешение возобновления неудавшегося резервного копирования.
Определяет, включена ли возможность возобновления. Она может значительно сократить время резервного копирования после сбоя предыдущей попытки того же типа. Однако она усложняет работу, поэтому в средах, где она не нужна, может быть желательно её отключить.
Параметр быстрого запуска (--start-fast)
Принудительная контрольная точка для быстрого начала резервного копирования.
Принудительно выполняет контрольную точку, передавая y в параметр fast функции начала резервного копирования, чтобы копирование началось немедленно. Иначе резервное копирование начнётся после следующей плановой контрольной точки.
Параметр типа (--type)
Тип резервной копии.
Поддерживаются следующие типы резервных копий:
full- Копируются все файлы кластера базы данных; зависимостей от предыдущих копий нет.incr- Инкрементная копия относительно последней успешной резервной копии.diff- Аналогична инкрементной копии, но всегда основана на последней полной копии.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды pgBackRest (--cmd)
Команда pgBackRest.
pgBackRest может формировать командную строку, например когда команда restore создаёт настройку restore_command. В этом случае используется команда, которой был запущен процесс pgBackRest, если не задан параметр cmd.
ОСТОРОЖНО:
Использование обёртки для команды pgBackRest может привести к непредсказуемому поведению и не рекомендуется.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр сжатия (--compress)
Сжатие файлов.
Файлы резервных копий совместимы с утилитами сжатия командной строки.
Этот параметр устарел. Вместо него следует использовать compress-type.
Параметр уровня сжатия (--compress-level)
Уровень сжатия файлов.
Задаёт уровень сжатия файлов, когда compress-type не равен none или задано compress=y (устаревший вариант).
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр типа сжатия (--compress-type)
Тип сжатия файлов.
Поддерживаются следующие типы сжатия:
none- без сжатияbz2- формат сжатия bzip2gz- формат сжатия gziplz4- формат сжатия lz4 (доступен не на всех платформах)zst- формат сжатия Zstandard (доступен не на всех платформах)
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута базы данных (--db-timeout)
Тайм-аут запроса к базе данных.
Задаёт тайм-аут запросов к базе данных в секундах. Он распространяется и на функции начала и завершения резервного копирования, каждая из которых может выполняться довольно долго. Поэтому следует задавать большой тайм-аут, если нет уверенности, что эти функции завершатся быстро (то есть если задано start-fast=y и известно, что кластер базы данных не создаст много сегментов WAL во время резервного копирования).
ПРИМЕЧАНИЕ: параметр
db-timeoutдолжен быть меньшеprotocol-timeout.
Параметр дельта-восстановления и копирования (--delta)
Восстановление или резервное копирование с использованием контрольных сумм.
При восстановлении по умолчанию предполагается, что каталоги данных и табличных пространств PostgreSQL существуют, но пусты. Этот параметр выполняет дельта-восстановление с использованием контрольных сумм.
При резервном копировании этот параметр использует контрольные суммы вместо временных меток, чтобы определить, нужно ли копировать файлы.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр максимального числа процессов (--process-max)
Максимальное число процессов для сжатия и передачи данных.
Каждый процесс выполняет сжатие и передачу, ускоряя выполнение команды, однако не следует задавать process-max настолько большим, чтобы это ухудшало производительность базы данных.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры для сопровождающих
Параметр проверки заголовков страниц (--page-header-check)
Проверка заголовков страниц PostgreSQL.
Этот параметр включён по умолчанию и добавляет проверки заголовков страниц.
Следует избегать отключения этого параметра, кроме случаев, когда оно необходимо, например если страницы зашифрованы.
Параметр принудительного задания версии PostgreSQL (--pg-version-force)
Принудительное задание версии PostgreSQL.
Указанная версия PostgreSQL будет использоваться вместо версии, автоматически определённой по pg_control или заголовкам WAL. Это полезно главным образом для форков PostgreSQL или версий в разработке, в которых эти значения отличаются от версии выпуска. Версия, которую PostgreSQL сообщает через server_version_num, должна совпадать с принудительно заданной.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр осторожно: pg_control и заголовки WAL всё равно будут читаться в формате, ожидаемом для указанной версии, то есть в формате официальной версии PostgreSQL с открытым исходным кодом. Если форк или версия в разработке меняет формат полей, от которых зависит pgBackRest, это приведёт к неожиданному поведению. В общем случае параметр будет работать как ожидается только тогда, когда форк добавляет все собственные поля структур после стандартных полей PostgreSQL.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр поблочного инкрементного резервного копирования (--repo-block)
Включение поблочного инкрементного резервного копирования.
Поблочное инкрементное копирование позволяет создавать более детальные резервные копии, разбивая файлы на блоки, которые можно копировать независимо. Это экономит место в репозитории и может ускорить дельта-восстановление, поскольку отдельные блоки можно получать без чтения всего файла из репозитория.
ПРИМЕЧАНИЕ: прежде чем включить
repo-block, необходимо включить параметрrepo-bundle.
Размер блока определяется размером и возрастом файла. Как правило, для более старых или крупных файлов выбираются более крупные блоки. Если файл достаточно старый, поблочное инкрементное копирование для него не используется.
Поблочное инкрементное копирование наиболее эффективно, когда включено для всех типов резервных копий, в том числе полных. Полная копия при этом становится немного больше, зато последующие дифференциальные и инкрементные копии могут использовать созданные ею карты блоков для экономии места.
Параметр пакетирования файлов в репозитории (--repo-bundle)
Пакетирование файлов в репозитории.
Объединяет небольшие файлы в пакеты, уменьшая общее число файлов, записываемых в репозиторий. Записывать меньше файлов обычно эффективнее, особенно в объектные хранилища, такие как S3. Кроме того, файлы нулевого размера не сохраняются (кроме записей в манифесте), что экономит время и место.
Параметр предельного размера файла в пакете репозитория (--repo-bundle-limit)
Предельный размер файлов для пакетирования.
Максимальный размер файлов, включаемых в пакеты. Файлы большего размера хранятся отдельно.
Файлы в пакетах нельзя использовать повторно при возобновлении резервного копирования, поэтому этот параметр определяет, какие файлы можно использовать при возобновлении: чем больше значение, тем меньше таких файлов.
Параметр размера пакета репозитория (--repo-bundle-size)
Целевой размер пакета файлов.
Определяет целевой суммарный размер файлов, добавляемых в один пакет. Несжатый пакет может достигать размера repo-bundle-size + repo-bundle-limit, поэтому не следует задавать этому параметру максимальный размер, допустимый файловой системой.
Как правило, слишком большое значение нежелательно: при повторной попытке потребуется заново обработать весь пакет.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр жёстких ссылок в репозитории (--repo-hardlink)
Жёсткие ссылки между файлами резервных копий в репозитории.
Включает создание жёстких ссылок из дифференциальных и инкрементных копий на файлы соответствующих полных копий. На уровне файловой системы каждая копия при этом выглядит полной. Однако следует соблюдать осторожность: изменение файлов с жёсткими ссылками может затронуть все резервные копии в наборе.
Устаревшее имя: hardlink
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр хранения архива (--repo-retention-archive)
Число резервных копий, для которых сохраняется непрерывный WAL.
ПРИМЕЧАНИЕ: сегменты WAL, необходимые для согласованности резервной копии, всегда сохраняются до удаления этой копии независимо от настройки данного параметра.
Если значение не задано, а repo-retention-full-type равен count (по умолчанию), то для удаления архива по умолчанию используется значение repo-retention-full (или repo-retention-diff), соответствующее repo-retention-archive-type, заданному как full (или diff). Это гарантирует, что WAL удаляется только для уже удалённых резервных копий. Если repo-retention-full-type равен time, по умолчанию удаляются архивы, предшествующие самой старой полной копии, оставшейся после применения настройки repo-retention-full.
Этот параметр должен быть задан, если repo-retention-archive-type равен incr. При острой нехватке дискового пространства он вместе с repo-retention-archive-type позволяет агрессивнее удалять сегменты WAL. Однако это исключает возможность PITR из копий с удалённым WAL и потому не рекомендуется.
Устаревшее имя: retention-archive
Параметр типа хранения архива (--repo-retention-archive-type)
Тип резервных копий для хранения WAL.
При значении full pgBackRest сохраняет архивные журналы для числа полных резервных копий, заданного repo-retention-archive. При значении diff (дифференциальные) pgBackRest сохраняет архивные журналы для числа полных и дифференциальных копий, заданного repo-retention-archive: если последняя копия полная, для целей хранения в репозитории она учитывается как дифференциальная. При значении incr (инкрементные) pgBackRest сохраняет архивные журналы для числа полных, дифференциальных и инкрементных копий, заданного repo-retention-archive. Рекомендуется оставить значение по умолчанию, при котором WAL удаляется только вместе с полными резервными копиями.
Устаревшее имя: retention-archive-type
Параметр хранения дифференциальных копий (--repo-retention-diff)
Число сохраняемых дифференциальных резервных копий.
При удалении дифференциальной копии также удаляются все связанные с ней инкрементные копии. Если параметр не задан, все дифференциальные копии сохраняются до удаления полных копий, от которых они зависят.
При определении копий для удаления полные копии учитываются в числе дифференциальных. В большинстве случаев это немного уменьшает число дифференциальных копий, которые необходимо хранить.
Устаревшее имя: retention-diff
Параметр хранения полных копий (--repo-retention-full)
Число или срок хранения полных резервных копий.
При удалении полной копии также удаляются все связанные с ней дифференциальные и инкрементные копии. Если параметр не задан, выводится предупреждение. Для бессрочного хранения задайте максимальное значение.
Устаревшее имя: retention-full
Параметр типа хранения полных копий (--repo-retention-full-type)
Тип срока хранения полных резервных копий.
Определяет, означает ли настройка repo-retention-full период времени (в днях) или число полных копий, которые нужно сохранять.
При значении time полные копии старше repo-retention-full удаляются из репозитория, если существует хотя бы ещё одна копия, возраст которой не меньше значения repo-retention-full. Например, если repo-retention-full равен 30 (дней) и есть 2 полные копии возрастом 25 и 35 дней, ни одна не будет удалена: после удаления копии возрастом 35 дней останется только копия возрастом 25 дней, что нарушит политику хранения за 30 дней. Эта политика требует наличия хотя бы одной копии возрастом 30 дней перед удалением более старой. Архивный WAL, предшествующий самой старой оставшейся полной копии, удаляется автоматически, если repo-retention-archive-type и repo-retention-archive не заданы явно.
При значении count полные копии сверх числа repo-retention-full удаляются. Например, если repo-retention-full равен 4 и завершается пятая полная копия, самая старая полная копия будет удалена, чтобы их число осталось равным 4.
Резервная копия учитывается при применении политики хранения только после успешного завершения. Например, если repo-retention-full-type равен count, а repo-retention-full равен 2, для удаления самой старой копии должны существовать 3 завершённые полные копии.
Параметр хранения истории резервных копий (--repo-retention-history)
Число дней хранения манифестов истории резервных копий.
После завершения резервного копирования копия манифеста сохраняется в каталоге backup.history. По умолчанию эти файлы никогда не удаляются, поскольку полезны для анализа данных, например для измерения роста резервных копий и WAL со временем.
Параметр repo-retention-history задаёт число дней хранения манифестов истории резервных копий. Неудалённые резервные копии всегда сохраняются в истории. Укажите repo-retention-history=0, чтобы хранить историю только для неудалённых резервных копий.
При удалении манифеста истории полной резервной копии также удаляются манифесты истории всех связанных с ней дифференциальных и инкрементных копий.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр символических ссылок в репозитории (--repo-symlink)
Создание символических ссылок внутри репозитория.
Включает создание символических ссылок latest и ссылок табличных пространств. Эти ссылки наиболее полезны при использовании снимков для восстановления непосредственно в репозитории, что встречается редко.
Хотя подавляющему большинству пользователей эта возможность, вероятно, не нужна, она остаётся включённой по умолчанию ради совместимости. Однако для Posix-подобных хранилищ, не поддерживающих символические ссылки, может быть полезно отключить их.
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
Параметры stanza
Параметр базы данных PostgreSQL (--pg-database)
База данных PostgreSQL.
Имя базы данных для соединения с PostgreSQL. Обычно лучше оставить значение по умолчанию, но в некоторых установках такой базы может не быть.
По историческим причинам значение переменной окружения PGDATABASE игнорируется.
Параметр сервера PostgreSQL (--pg-host)
Сервер PostgreSQL для удалённой работы.
Используется при резервном копировании, когда сервер PostgreSQL отличается от сервера репозитория.
Устаревшее имя: db-host
Параметр файла центра сертификации сервера PostgreSQL (--pg-host-ca-file)
Файл центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера PostgreSQL (--pg-host-ca-path)
Каталог центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера PostgreSQL (--pg-host-cert-file)
Файл сертификата для сервера PostgreSQL.
Отправляется серверу PostgreSQL для подтверждения личности клиента.
Параметр команды на сервере PostgreSQL (--pg-host-cmd)
Команда pgBackRest на сервере PostgreSQL.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере PostgreSQL различается. Если параметр не задан, команда на сервере PostgreSQL будет той же, что и локальная команда.
Устаревшее имя: db-cmd
Параметр файла конфигурации сервера PostgreSQL (--pg-host-config)
Файл конфигурации pgBackRest на сервере базы данных.
Задаёт расположение файла конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: db-config
Параметр каталога включаемых конфигураций сервера PostgreSQL (--pg-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере базы данных.
Задаёт расположение каталога включаемых конфигураций на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера PostgreSQL (--pg-host-config-path)
Каталог конфигурации pgBackRest на сервере базы данных.
Задаёт расположение каталога конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера PostgreSQL (--pg-host-key-file)
Файл ключа для сервера PostgreSQL.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера PostgreSQL (--pg-host-port)
Порт сервера PostgreSQL при заданном pg-host.
Позволяет указать нестандартный порт для протокола сервера PostgreSQL.
ПРИМЕЧАНИЕ: при
pg-host-type=sshдляpg-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: db-ssh-port
Параметр типа протокола сервера PostgreSQL (--pg-host-type)
Тип протокола сервера PostgreSQL.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера PostgreSQL (--pg-host-user)
Пользователь для входа на сервер PostgreSQL при заданном pg-host.
Этот пользователь также будет владельцем удалённого процесса pgBackRest и будет устанавливать соединения с PostgreSQL. Для правильной работы следует использовать владельца кластера базы данных PostgreSQL, обычно это пользователь postgres, выбранный по умолчанию.
Устаревшее имя: db-user
Параметр пути PostgreSQL (--pg-path)
Каталог данных PostgreSQL.
Следует указать значение data_directory, сообщаемое PostgreSQL. Хотя его можно получить из разных источников, разумно задать его явно на случай, если эти источники будут недоступны при восстановлении или резервном копировании остановленного кластера.
При каждом резервном копировании работающего кластера параметр pg-path сверяется со значением, сообщаемым PostgreSQL, поэтому его следует всегда поддерживать актуальным.
Устаревшее имя: db-path
Параметр порта PostgreSQL (--pg-port)
Порт PostgreSQL.
Порт, на котором работает PostgreSQL. Обычно его не требуется указывать, поскольку большинство кластеров PostgreSQL работают на порту по умолчанию.
Устаревшее имя: db-port
Параметр каталога сокета PostgreSQL (--pg-socket-path)
Каталог Unix-сокета PostgreSQL.
Каталог Unix-сокета, указанный при запуске PostgreSQL. pgBackRest автоматически проверяет стандартное расположение для используемой ОС, поэтому обычно этот параметр не требуется, если каталог сокета не был явно изменён настройкой unix_socket_directories в postgresql.conf.
Устаревшее имя: db-socket-path
Параметр пользователя базы данных PostgreSQL (--pg-user)
Пользователь базы данных PostgreSQL.
Имя пользователя базы данных для соединения с PostgreSQL. Если оно не указано, pgBackRest использует локального пользователя ОС или PGUSER.
5 - Команда проверки конфигурации (check)
check.Команда check проверяет правильность настройки pgBackRest и archive_command для архивирования и резервного копирования указанной stanza. Она пытается проверить все репозитории и базы данных, настроенные для сервера, на котором запущена. Команда обнаруживает ошибки конфигурации, особенно архивирования, из-за которых резервные копии оказываются неполными, поскольку необходимые сегменты WAL не попали в архив. Её можно запускать на сервере PostgreSQL или сервере репозитория. Также её можно запускать на резервном сервере, однако, поскольку pg_switch_xlog()/pg_switch_wal() нельзя выполнить на резервном сервере, в этом случае проверяется только конфигурация репозитория.
Для принудительного архивирования сегмента WAL в PostgreSQL вызываются pg_create_restore_point('pgBackRest Archive Check') и pg_switch_xlog()/pg_switch_wal().
Параметры команды
Параметр проверки архива (--archive-check)
Проверка наличия сегментов WAL в архиве перед завершением резервного копирования.
Проверяет, что все сегменты WAL, необходимые для согласованности резервной копии, присутствуют в архиве WAL. Рекомендуется оставить значение по умолчанию, если не используется другой способ архивирования.
Этот параметр должен быть включён, если включён archive-copy.
Параметр проверки режима архивирования (--archive-mode-check)
Проверка настройки PostgreSQL archive_mode.
Этот параметр включён по умолчанию и запрещает использовать в PostgreSQL archive_mode=always.
Сегменты WAL, отправляемые с резервного сервера, могут логически совпадать с сегментами WAL с первичного сервера, но иметь другие контрольные суммы. Во избежание конфликтов рекомендуется отключить архивирование из нескольких источников.
ОСТОРОЖНО:
Если этот параметр отключён, крайне важно обеспечить, чтобы в репозиторий через команду archive-push писал только один процесс архивирования.
Параметр тайм-аута архивирования (--archive-timeout)
Тайм-аут архивирования.
Задаёт максимальное время в секундах, в течение которого ожидается поступление каждого сегмента WAL в архивный репозиторий pgBackRest. Тайм-аут применяется к командам check и backup, когда они ожидают архивирования сегментов WAL, необходимых для согласованности резервной копии.
Параметр резервного копирования с резервного сервера (--backup-standby)
Резервное копирование с резервного кластера.
Включает резервное копирование с резервного сервера для снижения нагрузки на первичный кластер. Этот параметр требует настройки как первичного, так и резервного сервера.
Поддерживаются следующие режимы:
y- Для резервного копирования необходим резервный сервер.prefer- Копирование с резервного сервера, если он доступен; иначе с первичного.n- Копирование только с первичного сервера.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута базы данных (--db-timeout)
Тайм-аут запроса к базе данных.
Задаёт тайм-аут запросов к базе данных в секундах. Он распространяется и на функции начала и завершения резервного копирования, каждая из которых может выполняться довольно долго. Поэтому следует задавать большой тайм-аут, если нет уверенности, что эти функции завершатся быстро (то есть если задано start-fast=y и известно, что кластер базы данных не создаст много сегментов WAL во время резервного копирования).
ПРИМЕЧАНИЕ: параметр
db-timeoutдолжен быть меньшеprotocol-timeout.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры для сопровождающих
Параметр принудительного задания версии PostgreSQL (--pg-version-force)
Принудительное задание версии PostgreSQL.
Указанная версия PostgreSQL будет использоваться вместо версии, автоматически определённой по pg_control или заголовкам WAL. Это полезно главным образом для форков PostgreSQL или версий в разработке, в которых эти значения отличаются от версии выпуска. Версия, которую PostgreSQL сообщает через server_version_num, должна совпадать с принудительно заданной.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр осторожно: pg_control и заголовки WAL всё равно будут читаться в формате, ожидаемом для указанной версии, то есть в формате официальной версии PostgreSQL с открытым исходным кодом. Если форк или версия в разработке меняет формат полей, от которых зависит pgBackRest, это приведёт к неожиданному поведению. В общем случае параметр будет работать как ожидается только тогда, когда форк добавляет все собственные поля структур после стандартных полей PostgreSQL.
Параметры репозитория
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
Параметры stanza
Параметр базы данных PostgreSQL (--pg-database)
База данных PostgreSQL.
Имя базы данных для соединения с PostgreSQL. Обычно лучше оставить значение по умолчанию, но в некоторых установках такой базы может не быть.
По историческим причинам значение переменной окружения PGDATABASE игнорируется.
Параметр сервера PostgreSQL (--pg-host)
Сервер PostgreSQL для удалённой работы.
Используется при резервном копировании, когда сервер PostgreSQL отличается от сервера репозитория.
Устаревшее имя: db-host
Параметр файла центра сертификации сервера PostgreSQL (--pg-host-ca-file)
Файл центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера PostgreSQL (--pg-host-ca-path)
Каталог центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера PostgreSQL (--pg-host-cert-file)
Файл сертификата для сервера PostgreSQL.
Отправляется серверу PostgreSQL для подтверждения личности клиента.
Параметр команды на сервере PostgreSQL (--pg-host-cmd)
Команда pgBackRest на сервере PostgreSQL.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере PostgreSQL различается. Если параметр не задан, команда на сервере PostgreSQL будет той же, что и локальная команда.
Устаревшее имя: db-cmd
Параметр файла конфигурации сервера PostgreSQL (--pg-host-config)
Файл конфигурации pgBackRest на сервере базы данных.
Задаёт расположение файла конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: db-config
Параметр каталога включаемых конфигураций сервера PostgreSQL (--pg-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере базы данных.
Задаёт расположение каталога включаемых конфигураций на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера PostgreSQL (--pg-host-config-path)
Каталог конфигурации pgBackRest на сервере базы данных.
Задаёт расположение каталога конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера PostgreSQL (--pg-host-key-file)
Файл ключа для сервера PostgreSQL.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера PostgreSQL (--pg-host-port)
Порт сервера PostgreSQL при заданном pg-host.
Позволяет указать нестандартный порт для протокола сервера PostgreSQL.
ПРИМЕЧАНИЕ: при
pg-host-type=sshдляpg-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: db-ssh-port
Параметр типа протокола сервера PostgreSQL (--pg-host-type)
Тип протокола сервера PostgreSQL.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера PostgreSQL (--pg-host-user)
Пользователь для входа на сервер PostgreSQL при заданном pg-host.
Этот пользователь также будет владельцем удалённого процесса pgBackRest и будет устанавливать соединения с PostgreSQL. Для правильной работы следует использовать владельца кластера базы данных PostgreSQL, обычно это пользователь postgres, выбранный по умолчанию.
Устаревшее имя: db-user
Параметр пути PostgreSQL (--pg-path)
Каталог данных PostgreSQL.
Следует указать значение data_directory, сообщаемое PostgreSQL. Хотя его можно получить из разных источников, разумно задать его явно на случай, если эти источники будут недоступны при восстановлении или резервном копировании остановленного кластера.
При каждом резервном копировании работающего кластера параметр pg-path сверяется со значением, сообщаемым PostgreSQL, поэтому его следует всегда поддерживать актуальным.
Устаревшее имя: db-path
Параметр порта PostgreSQL (--pg-port)
Порт PostgreSQL.
Порт, на котором работает PostgreSQL. Обычно его не требуется указывать, поскольку большинство кластеров PostgreSQL работают на порту по умолчанию.
Устаревшее имя: db-port
Параметр каталога сокета PostgreSQL (--pg-socket-path)
Каталог Unix-сокета PostgreSQL.
Каталог Unix-сокета, указанный при запуске PostgreSQL. pgBackRest автоматически проверяет стандартное расположение для используемой ОС, поэтому обычно этот параметр не требуется, если каталог сокета не был явно изменён настройкой unix_socket_directories в postgresql.conf.
Устаревшее имя: db-socket-path
Параметр пользователя базы данных PostgreSQL (--pg-user)
Пользователь базы данных PostgreSQL.
Имя пользователя базы данных для соединения с PostgreSQL. Если оно не указано, pgBackRest использует локального пользователя ОС или PGUSER.
6 - Команда удаления устаревших копий (expire)
expire.pgBackRest выполняет ротацию полных резервных копий в зависимости от типа срока хранения: по числу копий или по периоду времени. Если задано число, удаление зависит не от времени создания копий, а от количества, которое необходимо сохранить. Дифференциальные копии хранятся по числу, но всегда удаляются вместе с полной копией, от которой зависят. Инкрементные копии не удаляются независимо по сроку хранения: они всегда удаляются вместе со связанной полной или дифференциальной копией. Подробности и примеры приведены в разделах Хранение полных резервных копий и Хранение дифференциальных резервных копий .
По умолчанию архивный WAL сохраняется для ещё не удалённых резервных копий. Хотя это не рекомендуется, правила можно изменить для каждого репозитория параметрами retention-archive. Подробности и примеры приведены в разделе Хранение архива .
Команда expire автоматически запускается после каждого успешного резервного копирования; пользователь также может запустить её вручную. При ручном запуске удаление выполняется согласно настройкам хранения каждого настроенного репозитория. Если указан --repo, удаление выполняется только в этом репозитории. Пользователь также может ограничить удаление конкретным набором резервной копии с помощью --set: если не указан --repo, поиск выполняется во всех репозиториях и удаляются наборы, соответствующие критериям. При каждом запуске expire правила хранения архива также проверяются и применяются.
Параметры команды
Параметр удаления архива до указанного сегмента (--archive-expire-before)
Удаление архива WAL, предшествующего указанному сегменту WAL.
Удаляет сегменты WAL, предшествующие указанному, но только те, которые не нужны сохраняемым резервным копиям: то есть сегменты старше самой ранней сохраняемой копии либо любые сегменты, если в репозитории нет копий. Указанный сегмент и всё после него сохраняются. Это соответствует значению, которое PostgreSQL передаёт archive_cleanup_command как %r.
Этот параметр предназначен прежде всего для репозиториев только с архивом, в которых не хранятся резервные копии. Его также можно использовать для освобождения места за счёт удаления WAL, предшествующего первой резервной копии, когда условия хранения полных копий ещё не выполнены и не запускают удаление архива.
Параметр самой старой копии (--oldest)
Удаление самого старого набора резервной копии, допустимого к удалению.
Удаляет самый старый набор полной резервной копии, который можно удалить (то есть остаётся хотя бы одна более новая полная копия). Это эквивалентно ручному уменьшению числа хранимых копий на одну, но вычисляется автоматически. Все копии, связанные с удаляемым полным набором (дифференциальные и инкрементные), также удаляются.
При использовании этого параметра правила хранения архива также временно корректируются, чтобы WAL удаляемых копий можно было удалить за тот же запуск.
Если хранение полных копий настроено по времени (через --repo-retention-full-type=time), --oldest для этого запуска использует удаление по числу копий.
ПРЕДУПРЕЖДЕНИЕ:
Этот параметр нельзя сочетать с --set.
Параметр набора резервной копии (--set)
Набор резервной копии для удаления.
Указанный набор (то есть копия с заданной меткой и все зависимые от неё копии, если они есть) удаляется независимо от правил хранения, но в репозитории должна остаться хотя бы одна полная резервная копия.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр крайне осторожно: он безвозвратно удаляет из репозитория pgBackRest все копии указанного набора и все архивы, не требуемые для согласованности резервной копии. Это может исключить возможность PITR. Если настроены --repo-retention-full и/или --repo-retention-archive, при таком разовом удалении рекомендуется переопределить их максимальными значениями, чтобы избежать непреднамеренного удаления архивов.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр пробного запуска (--dry-run)
Пробный запуск команды.
Параметр --dry-run доступен только в командной строке. Его можно передать, чтобы определить, какие изменения выполнит команда, без фактического внесения изменений.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр хранения архива (--repo-retention-archive)
Число резервных копий, для которых сохраняется непрерывный WAL.
ПРИМЕЧАНИЕ: сегменты WAL, необходимые для согласованности резервной копии, всегда сохраняются до удаления этой копии независимо от настройки данного параметра.
Если значение не задано, а repo-retention-full-type равен count (по умолчанию), то для удаления архива по умолчанию используется значение repo-retention-full (или repo-retention-diff), соответствующее repo-retention-archive-type, заданному как full (или diff). Это гарантирует, что WAL удаляется только для уже удалённых резервных копий. Если repo-retention-full-type равен time, по умолчанию удаляются архивы, предшествующие самой старой полной копии, оставшейся после применения настройки repo-retention-full.
Этот параметр должен быть задан, если repo-retention-archive-type равен incr. При острой нехватке дискового пространства он вместе с repo-retention-archive-type позволяет агрессивнее удалять сегменты WAL. Однако это исключает возможность PITR из копий с удалённым WAL и потому не рекомендуется.
Устаревшее имя: retention-archive
Параметр типа хранения архива (--repo-retention-archive-type)
Тип резервных копий для хранения WAL.
При значении full pgBackRest сохраняет архивные журналы для числа полных резервных копий, заданного repo-retention-archive. При значении diff (дифференциальные) pgBackRest сохраняет архивные журналы для числа полных и дифференциальных копий, заданного repo-retention-archive: если последняя копия полная, для целей хранения в репозитории она учитывается как дифференциальная. При значении incr (инкрементные) pgBackRest сохраняет архивные журналы для числа полных, дифференциальных и инкрементных копий, заданного repo-retention-archive. Рекомендуется оставить значение по умолчанию, при котором WAL удаляется только вместе с полными резервными копиями.
Устаревшее имя: retention-archive-type
Параметр хранения дифференциальных копий (--repo-retention-diff)
Число сохраняемых дифференциальных резервных копий.
При удалении дифференциальной копии также удаляются все связанные с ней инкрементные копии. Если параметр не задан, все дифференциальные копии сохраняются до удаления полных копий, от которых они зависят.
При определении копий для удаления полные копии учитываются в числе дифференциальных. В большинстве случаев это немного уменьшает число дифференциальных копий, которые необходимо хранить.
Устаревшее имя: retention-diff
Параметр хранения полных копий (--repo-retention-full)
Число или срок хранения полных резервных копий.
При удалении полной копии также удаляются все связанные с ней дифференциальные и инкрементные копии. Если параметр не задан, выводится предупреждение. Для бессрочного хранения задайте максимальное значение.
Устаревшее имя: retention-full
Параметр типа хранения полных копий (--repo-retention-full-type)
Тип срока хранения полных резервных копий.
Определяет, означает ли настройка repo-retention-full период времени (в днях) или число полных копий, которые нужно сохранять.
При значении time полные копии старше repo-retention-full удаляются из репозитория, если существует хотя бы ещё одна копия, возраст которой не меньше значения repo-retention-full. Например, если repo-retention-full равен 30 (дней) и есть 2 полные копии возрастом 25 и 35 дней, ни одна не будет удалена: после удаления копии возрастом 35 дней останется только копия возрастом 25 дней, что нарушит политику хранения за 30 дней. Эта политика требует наличия хотя бы одной копии возрастом 30 дней перед удалением более старой. Архивный WAL, предшествующий самой старой оставшейся полной копии, удаляется автоматически, если repo-retention-archive-type и repo-retention-archive не заданы явно.
При значении count полные копии сверх числа repo-retention-full удаляются. Например, если repo-retention-full равен 4 и завершается пятая полная копия, самая старая полная копия будет удалена, чтобы их число осталось равным 4.
Резервная копия учитывается при применении политики хранения только после успешного завершения. Например, если repo-retention-full-type равен count, а repo-retention-full равен 2, для удаления самой старой копии должны существовать 3 завершённые полные копии.
Параметр хранения истории резервных копий (--repo-retention-history)
Число дней хранения манифестов истории резервных копий.
После завершения резервного копирования копия манифеста сохраняется в каталоге backup.history. По умолчанию эти файлы никогда не удаляются, поскольку полезны для анализа данных, например для измерения роста резервных копий и WAL со временем.
Параметр repo-retention-history задаёт число дней хранения манифестов истории резервных копий. Неудалённые резервные копии всегда сохраняются в истории. Укажите repo-retention-history=0, чтобы хранить историю только для неудалённых резервных копий.
При удалении манифеста истории полной резервной копии также удаляются манифесты истории всех связанных с ней дифференциальных и инкрементных копий.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр символических ссылок в репозитории (--repo-symlink)
Создание символических ссылок внутри репозитория.
Включает создание символических ссылок latest и ссылок табличных пространств. Эти ссылки наиболее полезны при использовании снимков для восстановления непосредственно в репозитории, что встречается редко.
Хотя подавляющему большинству пользователей эта возможность, вероятно, не нужна, она остаётся включённой по умолчанию ради совместимости. Однако для Posix-подобных хранилищ, не поддерживающих символические ссылки, может быть полезно отключить их.
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
7 - Команда справки (help)
help.Предоставляется три уровня справки. Если команда не указана, выводится общая справка. Если указана команда (например, pgbackrest help backup), выводится её полное описание со списком допустимых параметров. Если вместе с командой указан параметр (например, pgbackrest help backup type), выводится полное описание этого параметра применительно к команде.
Параметры команды
Параметр вывода справки (--help)
Вывод справки.
Выводит справку, даже если команда help не указана, и переопределяет параметр --version.
Параметр вывода версии (--version)
Вывод версии.
Отображает версию, даже если не указаны команды version или help.
8 - Команда вывода сведений (info)
info.Команда info работает с одной stanza или со всеми stanza. По умолчанию выводится текстовая сводка резервных копий для запрошенных stanza, предназначенная для чтения человеком. Этот формат может меняться в любом выпуске.
Для машиночитаемого вывода используйте --output=json. Вывод JSON содержит гораздо больше сведений, чем текстовый, и сохраняет стабильный формат, если не обнаружена ошибка.
Чтобы ускорить выполнение, ограничьте вывод сведениями о ходе выполнения, указав --detail-level=progress. При этом пропускаются все проверки, кроме доступности stanza.
Для каждой stanza выводится отдельный раздел; параметром --stanza можно ограничить вывод одной stanza. Поле «status» кратко отражает состояние stanza. Значение «ok» означает, что pgBackRest работает нормально. При нескольких репозиториях состояние «mixed» указывает на проблемы со stanza в одном или нескольких репозиториях; в этом случае её состояние подробно выводится для каждого репозитория. Если в репозитории возникла ошибка, не относящаяся к известным кодам, используется код «other» и приводятся полные сведения об ошибке. Поле «wal archive min/max» показывает минимальный и максимальный WAL, хранящийся в архиве. При нескольких репозиториях значения учитывают все репозитории, если не задан --repo. Возможны пропуски из-за политик хранения архива или по другим причинам.
Если на сервере выполняется какая-либо из этих команд, рядом с «status» появляются сообщения «backup/expire running» и/или «restore running». В текстовом выводе также показывается ход выполнения по каждому репозиторию, а в вывод JSON включается массив «repo».
Резервные копии выводятся от старых к новым. Самая старая копия всегда полная (обозначается F в конце метки), а самая новая может быть полной, дифференциальной (метка заканчивается на D) или инкрементной (на I).
Поле «timestamp start/stop» определяет период выполнения резервного копирования. По «timestamp stop» можно выбрать копию для восстановления на заданный момент времени. Дополнительные сведения приведены в разделе Восстановление на заданный момент времени
.
Поле «wal start/stop» задаёт диапазон WAL, необходимый для приведения базы данных в согласованное состояние при восстановлении. Команда backup перед завершением гарантирует наличие этого диапазона WAL в архиве.
Поле «database size» — полный несжатый размер базы данных, а «database backup size» — объём данных базы, который фактически нужно скопировать (для полных копий они совпадают).
Поле «repo» указывает репозиторий, содержащий копию. Поле «backup set size» включает все файлы этой копии и всех используемых ею копий в репозитории, необходимых для восстановления базы данных из неё, а «backup size» — только файлы этой копии (для полных копий значения также совпадают). Если в pgBackRest включено сжатие, размеры в репозитории отражают размеры сжатых файлов.
Поле «backup reference total» сводит сведения о дополнительных копиях, необходимых для восстановления этой копии. Полный список зависимостей можно вывести параметром --set.
Параметры команды
Параметр уровня детализации (--detail-level)
Уровень детализации вывода.
Поддерживаются следующие уровни:
progress- Только текущий ход резервного копирования или удаления копий. Этот уровень нельзя использовать с параметром--set.full- Полные сведения.
Параметр вывода (--output)
Формат вывода.
Поддерживаются следующие типы вывода:
text- Сводка сведений о резервных копиях для чтения человеком.json- Исчерпывающие машиночитаемые сведения о резервных копиях в формате JSON.
Параметр набора резервной копии (--set)
Набор резервной копии для подробного просмотра.
Подробные сведения включают полный список дополнительных копий, необходимых для восстановления этой копии, список баз данных (с OID) в наборе (кроме шаблонных баз), табличные пространства (с OID) и пути их восстановления по умолчанию, а также символические ссылки с целями, на которые они будут восстановлены при указании --link-all.
Параметр типа (--type)
Фильтрация по типу резервной копии.
Фильтрует вывод по одному из следующих типов резервных копий:
full- Только полные копии.diff- Только дифференциальные копии.incr- Только инкрементные копии.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр целевого времени репозитория (--repo-target-time)
Целевое время репозитория.
Целевое время определяет момент, на который команды читают репозиторий в хранилище с версионированием. Это позволяет прочитать состояние репозитория на определённый момент времени и восстановить данные, удалённые или повреждённые по ошибке пользователя либо вредоносным ПО.
S3, GCS и Azure поддерживают версионирование, но обычно оно отключено по умолчанию. Помимо включения версионирования, может быть полезно включить блокировку объектов в S3 и обратимое удаление в GCS или Azure.
Если указан параметр repo-target-time, необходимо также указать repo. Версионирование, вероятно, поддерживается не всеми типами репозиториев, и в целом при восстановлении разумно обращаться к одному конкретному репозиторию.
Временные метки хранилища сравниваются с указанной по условию <=; миллисекунды, если они указаны, отбрасываются.
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
9 - Команда чтения из репозитория (repo-get)
repo-get.Аналог команды Unix cat, работающий со всеми поддерживаемыми типами репозиториев. Команда требует полного имени файла и предназначена прежде всего для администрирования, исследования и тестирования. Она не является обязательной частью обычной настройки pgBackRest.
Если репозиторий зашифрован, repo-get автоматически расшифрует файл. Автоматическая распаковка не выполняется, но вывод можно передать по конвейеру соответствующей команде распаковки, например gzip -d.
Если настроено несколько репозиториев, по умолчанию команда использует репозиторий с наивысшим приоритетом (например, repo1), если не указан параметр --repo.
Параметры команды
Параметр игнорирования отсутствующего файла (--ignore-missing)
Игнорирование отсутствующего исходного файла.
Если исходный файл отсутствует, завершается с кодом 1, но не выдаёт ошибку.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр необработанных данных (--raw)
Запрет преобразования данных.
Не преобразует данные (то есть не шифрует, не распаковывает и т. п.) для текущей команды.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр целевого времени репозитория (--repo-target-time)
Целевое время репозитория.
Целевое время определяет момент, на который команды читают репозиторий в хранилище с версионированием. Это позволяет прочитать состояние репозитория на определённый момент времени и восстановить данные, удалённые или повреждённые по ошибке пользователя либо вредоносным ПО.
S3, GCS и Azure поддерживают версионирование, но обычно оно отключено по умолчанию. Помимо включения версионирования, может быть полезно включить блокировку объектов в S3 и обратимое удаление в GCS или Azure.
Если указан параметр repo-target-time, необходимо также указать repo. Версионирование, вероятно, поддерживается не всеми типами репозиториев, и в целом при восстановлении разумно обращаться к одному конкретному репозиторию.
Временные метки хранилища сравниваются с указанной по условию <=; миллисекунды, если они указаны, отбрасываются.
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
10 - Команда просмотра репозитория (repo-ls)
repo-ls.Аналог команды Unix ls, работающий со всеми поддерживаемыми типами репозиториев. Команда принимает абсолютный путь либо путь относительно каталога репозитория, заданного параметром --repo-path, и предназначена прежде всего для администрирования, исследования и тестирования. Она не является обязательной частью обычной настройки pgBackRest.
В текстовом выводе по умолчанию каждое имя файла выводится на отдельной строке. Для вывода JSON укажите --output=json.
Если настроено несколько репозиториев, по умолчанию команда использует репозиторий с наивысшим приоритетом (например, repo1), если не указан параметр --repo.
Параметры команды
Параметр фильтрации вывода (--filter)
Фильтрация вывода регулярным выражением.
Фильтр применяется к именам файлов и путей перед их выводом.
Параметр вывода (--output)
Формат вывода.
Поддерживаются следующие типы вывода:
text- Простой список с одним именем файла, ссылки или пути на строку.json- Подробные сведения о файлах, ссылках и путях в формате JSON.
В формате JSON доступны следующие поля:
name- Имя файла, ссылки или пути (при рекурсивном обходе — также часть пути).type-file,pathилиlink.size- Размер в байтах (только для файлов).time- Время последнего изменения (только для файлов).destination- Цель ссылки (только для ссылок).
Параметр рекурсивного обхода (--recurse)
Включение в вывод всех вложенных путей.
В вывод включаются все вложенные пути и их файлы.
Параметр сортировки вывода (--sort)
Сортировка вывода по возрастанию, по убыванию либо без сортировки.
Поддерживаются следующие типы сортировки:
asc- Сортировка по возрастанию.desc- Сортировка по убыванию.none- Без сортировки.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр целевого времени репозитория (--repo-target-time)
Целевое время репозитория.
Целевое время определяет момент, на который команды читают репозиторий в хранилище с версионированием. Это позволяет прочитать состояние репозитория на определённый момент времени и восстановить данные, удалённые или повреждённые по ошибке пользователя либо вредоносным ПО.
S3, GCS и Azure поддерживают версионирование, но обычно оно отключено по умолчанию. Помимо включения версионирования, может быть полезно включить блокировку объектов в S3 и обратимое удаление в GCS или Azure.
Если указан параметр repo-target-time, необходимо также указать repo. Версионирование, вероятно, поддерживается не всеми типами репозиториев, и в целом при восстановлении разумно обращаться к одному конкретному репозиторию.
Временные метки хранилища сравниваются с указанной по условию <=; миллисекунды, если они указаны, отбрасываются.
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
11 - Команда восстановления (restore)
restore.По умолчанию команда восстановления автоматически выбирает последнюю резервную копию из первого репозитория, где есть копии (см. Быстрый старт — восстановление резервной копии
). Порядок проверки репозиториев задаётся в pgbackrest.conf (например, repo1 проверяется раньше repo2). Для выбора конкретного репозитория можно передать --repo (например, --repo=1). Если требуется не последняя копия, можно передать --set.
При PITR с --type=time или --type=lsn целевое время или LSN необходимо указать с помощью параметра --target. Если --set не задан, настроенные репозитории проверяются по порядку: выбирается резервная копия, время завершения которой предшествует целевому времени или LSN завершения которой меньше либо равен целевому LSN. Если подходящая копия не найдена, pgBackRest выдаёт ошибку как для --type=time, так и для --type=lsn; перехода к последней резервной копии не происходит. Для других типов PITR, например xid, необходимо указать параметр --set, если цель предшествует последней резервной копии. Подробнее и с примерами см. Восстановление на заданный момент времени
.
Слоты репликации не включаются согласно рекомендации PostgreSQL. Дополнительные сведения приведены в разделе Резервное копирование каталога данных документации PostgreSQL.
Параметры команды
Параметр режима архивирования (--archive-mode)
Сохранение или отключение архивирования на восстановленном кластере.
Позволяет сохранить или отключить архивирование на восстановленном кластере. Это полезно, когда для выполнения определённой работы кластер необходимо повысить до первичного, но использовать его как новый первичный сервер не планируется. В таком случае отправлять WAL этого кластера в репозиторий нежелательно.
Поддерживаются следующие режимы:
off- Отключает архивирование, задаваяarchive_mode=off.preserve- Сохраняет текущее значениеarchive_mode.
ПРИМЕЧАНИЕ: этот параметр недоступен в PostgreSQL < 12.
Параметр исключения баз данных (--db-exclude)
Восстановление с исключением указанных баз данных.
Исключённые базы данных восстанавливаются в виде разреженных файлов, заполненных нулями: это экономит место, сохраняя возможность восстановления PostgreSQL. После восстановления эти базы будут недоступны, но их можно удалить командой drop database. Параметр --db-exclude можно передать несколько раз, чтобы исключить несколько баз данных.
В сочетании с параметром --db-include параметр --db-exclude применяется только к стандартным системным базам данных (template0, template1 и postgres).
Параметр включения баз данных (--db-include)
Восстановление только указанных баз данных.
Эта возможность позволяет восстановить только выбранные базы данных. Базы, не включённые явно, восстанавливаются в виде разреженных файлов, заполненных нулями: это экономит место, сохраняя возможность восстановления PostgreSQL. После восстановления базы, которые не были включены, будут недоступны, но их можно удалить командой drop database.
ПРИМЕЧАНИЕ: встроенные базы данных (
template0,template1иpostgres) всегда восстанавливаются, если они не исключены явно.
Параметр --db-include можно передать несколько раз, чтобы включить несколько баз данных.
Дополнительные сведения и ограничения приведены в разделе Восстановление выбранных баз данных .
Параметр принудительного выполнения (--force)
Принудительное восстановление.
Сам по себе этот параметр принудительно полностью перезаписывает каталоги данных и табличных пространств PostgreSQL. В сочетании с --delta выполняется дельта-восстановление по временным меткам и размерам вместо контрольных сумм.
Параметр восстановления всех ссылок (--link-all)
Восстановление всех символических ссылок.
По умолчанию каталоги и файлы, на которые указывают символические ссылки, восстанавливаются как обычные каталоги и файлы в $PGDATA. Причина в том, что восстанавливать ссылки на исходные цели в другой системе, отличной от той, где выполнялось резервное копирование, может быть небезопасно. Этот параметр восстанавливает все символические ссылки в том виде, в каком они были в исходной системе при резервном копировании.
Параметр переназначения ссылок (--link-map)
Изменение цели символической ссылки.
Позволяет при восстановлении изменить целевой файл или путь символической ссылки. Это полезно при восстановлении в системах, где организация хранилища отличается от исходной системы, в которой была создана резервная копия.
Параметр настройки восстановления (--recovery-option)
Установка параметра в postgresql.auto.conf или recovery.conf.
Сведения о параметрах postgresql.auto.conf и recovery.conf приведены в разделе Конфигурация сервера
(обязательно выберите свою версию PostgreSQL). Этот параметр можно указывать несколько раз.
Для PostgreSQL >= 12 параметры записываются в postgresql.auto.conf. Для всех остальных версий — в recovery.conf.
ПРИМЕЧАНИЕ: параметр
restore_commandсоздаётся автоматически, но его можно переопределить этим параметром. Собственныйrestore_commandследует задавать осторожно, поскольку pgBackRest рассчитан на автоматическое управление им. Параметры цели восстановления (recovery_target_name, recovery_target_time и т. п.) pgBackRest формирует автоматически, и их не следует задавать таким способом.
Поскольку после записи файла postgresql.auto.conf или recovery.conf pgBackRest не запускает PostgreSQL, перед ручным перезапуском всегда можно проверить или отредактировать postgresql.auto.conf или recovery.conf.
Параметр набора резервной копии (--set)
Набор резервной копии для восстановления.
Набор резервной копии, который требуется восстановить. Значение latest восстанавливает последнюю копию; иначе следует указать имя нужной копии.
Параметр переназначения табличного пространства (--tablespace-map)
Восстановление табличного пространства в указанный каталог.
Перемещает табличное пространство в новое расположение при восстановлении. Это полезно, когда расположения табличных пространств на реплике отличаются или после обновления системы изменились точки монтирования.
Расположения табличных пространств не хранятся в pg_tablespace, поэтому их можно свободно перемещать. Однако переносить табличное пространство в data_directory не рекомендуется: это может вызвать проблемы. Дополнительные сведения о перемещении табличных пространств приведены на http://www.databasesoup.com/2013/11/moving-tablespaces.html
.
Параметр переназначения всех табличных пространств (--tablespace-map-all)
Восстановление всех табличных пространств в указанный каталог.
По умолчанию табличные пространства восстанавливаются в исходные расположения. Для каждого пространства это можно изменить параметром tablespace-map, но иногда удобнее сразу переназначить все пространства в новый каталог. Это особенно полезно в системах разработки или предварительного тестирования, где организация хранилища может отличаться от исходной системы, в которой была создана резервная копия.
Указанный путь будет родительским каталогом, в котором создаются все табличные пространства из резервной копии.
ОСТОРОЖНО:
Табличные пространства, созданные после начала резервного копирования, не переназначаются. Если требуется переназначение, после создания табличного пространства следует сделать новую резервную копию.
Параметр цели (--target)
Цель восстановления.
Определяет цель восстановления при --type, равном lsn, name, xid или time. Если цель предшествует последней копии и --type не равен time или lsn, укажите набор резервной копии параметром --set.
Параметр действия при достижении цели (--target-action)
Действие при достижении цели восстановления.
При hot_standby=on (значение по умолчанию начиная с PostgreSQL 10) этот параметр одинаково управляет поведением кластера при достижении цели или исчерпании WAL в архиве.
При hot_standby=off в PostgreSQL >= 12 значение pause действует как shutdown. При hot_standby=off в PostgreSQL < 12 значение pause действует как promote.
Поддерживаются следующие действия:
pause- Приостановка при достижении цели восстановления.promote- Повышение до первичного сервера и смена временной шкалы при достижении цели восстановления.shutdown- Остановка сервера при достижении цели восстановления. (PostgreSQL >= 9.5)
Параметр исключения цели (--target-exclusive)
Остановка непосредственно перед достижением цели восстановления.
Определяет, исключается ли сама цель из восстановления (по умолчанию включается), и допустим только при --type, равном lsn, time или xid. Например, при --type=xid и --target=1007 параметр --target-exclusive исключит содержимое транзакции 1007. Дополнительные сведения приведены в описании recovery_target_inclusive в документации PostgreSQL.
Параметр целевой временной шкалы (--target-timeline)
Восстановление по временной шкале.
Дополнительные сведения приведены в описании recovery_target_timeline в документации PostgreSQL.
Параметр типа (--type)
Тип восстановления.
Поддерживаются следующие типы восстановления:
default- Восстановление до конца потока архива.immediate- Восстановление только до достижения согласованного состояния базы данных.lsn- Восстановление до LSN (номера позиции в журнале), заданного в--target. Поддерживается только в PostgreSQL >= 10.name- Восстановление до точки восстановления, заданной в--target.xid- Восстановление до идентификатора транзакции, заданного в--target.time- Восстановление до времени, заданного в--target.preserve- Сохранение существующего файлаpostgresql.auto.confилиrecovery.conf.standby- Добавлениеstandby_mode=onв файлpostgresql.auto.confилиrecovery.conf, чтобы кластер запустился в режиме резервного сервера.none- Файлpostgresql.auto.confилиrecovery.confне записывается, поэтому PostgreSQL попытается достичь согласованности с помощью сегментов WAL вpg_xlog/pg_wal. Предоставьте необходимые сегменты WAL или используйте настройкуarchive-copy, чтобы включить их в резервную копию.
ПРЕДУПРЕЖДЕНИЕ:
Следует избегать восстановления с type=none, поскольку по его завершении временная шкала не увеличивается. Это может привести, например, к попытке PostgreSQL архивировать дублирующийся WAL, которая будет отклонена; в результате диск может заполниться, а PostgreSQL — аварийно завершиться с panic. Кроме того, такие средства, как pg_rewind, могут работать некорректно или вызывать повреждение данных.
Для копий остановленного кластера значение type восстановления по умолчанию — none, поскольку при wal_level=minimal восстановление на заданный момент времени невозможно. Если type задан явно, он применяется, так как восстановление на заданный момент времени из копии остановленного кластера возможно при wal_level > minimal.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды pgBackRest (--cmd)
Команда pgBackRest.
pgBackRest может формировать командную строку, например когда команда restore создаёт настройку restore_command. В этом случае используется команда, которой был запущен процесс pgBackRest, если не задан параметр cmd.
ОСТОРОЖНО:
Использование обёртки для команды pgBackRest может привести к непредсказуемому поведению и не рекомендуется.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр дельта-восстановления и копирования (--delta)
Восстановление или резервное копирование с использованием контрольных сумм.
При восстановлении по умолчанию предполагается, что каталоги данных и табличных пространств PostgreSQL существуют, но пусты. Этот параметр выполняет дельта-восстановление с использованием контрольных сумм.
При резервном копировании этот параметр использует контрольные суммы вместо временных меток, чтобы определить, нужно ли копировать файлы.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр максимального числа процессов (--process-max)
Максимальное число процессов для сжатия и передачи данных.
Каждый процесс выполняет сжатие и передачу, ускоряя выполнение команды, однако не следует задавать process-max настолько большим, чтобы это ухудшало производительность базы данных.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры для сопровождающих
Параметр принудительного задания версии PostgreSQL (--pg-version-force)
Принудительное задание версии PostgreSQL.
Указанная версия PostgreSQL будет использоваться вместо версии, автоматически определённой по pg_control или заголовкам WAL. Это полезно главным образом для форков PostgreSQL или версий в разработке, в которых эти значения отличаются от версии выпуска. Версия, которую PostgreSQL сообщает через server_version_num, должна совпадать с принудительно заданной.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр осторожно: pg_control и заголовки WAL всё равно будут читаться в формате, ожидаемом для указанной версии, то есть в формате официальной версии PostgreSQL с открытым исходным кодом. Если форк или версия в разработке меняет формат полей, от которых зависит pgBackRest, это приведёт к неожиданному поведению. В общем случае параметр будет работать как ожидается только тогда, когда форк добавляет все собственные поля структур после стандартных полей PostgreSQL.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр целевого времени репозитория (--repo-target-time)
Целевое время репозитория.
Целевое время определяет момент, на который команды читают репозиторий в хранилище с версионированием. Это позволяет прочитать состояние репозитория на определённый момент времени и восстановить данные, удалённые или повреждённые по ошибке пользователя либо вредоносным ПО.
S3, GCS и Azure поддерживают версионирование, но обычно оно отключено по умолчанию. Помимо включения версионирования, может быть полезно включить блокировку объектов в S3 и обратимое удаление в GCS или Azure.
Если указан параметр repo-target-time, необходимо также указать repo. Версионирование, вероятно, поддерживается не всеми типами репозиториев, и в целом при восстановлении разумно обращаться к одному конкретному репозиторию.
Временные метки хранилища сравниваются с указанной по условию <=; миллисекунды, если они указаны, отбрасываются.
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
Параметры stanza
Параметр пути PostgreSQL (--pg-path)
Каталог данных PostgreSQL.
Следует указать значение data_directory, сообщаемое PostgreSQL. Хотя его можно получить из разных источников, разумно задать его явно на случай, если эти источники будут недоступны при восстановлении или резервном копировании остановленного кластера.
При каждом резервном копировании работающего кластера параметр pg-path сверяется со значением, сообщаемым PostgreSQL, поэтому его следует всегда поддерживать актуальным.
Устаревшее имя: db-path
12 - Команда сервера (server)
server.Сервер pgBackRest обеспечивает доступ к удалённым серверам без использования протокола SSH.
Параметры команды
Параметр адреса TLS-сервера (--tls-server-address)
Адрес TLS-сервера.
IP-адрес, на котором сервер будет слушать запросы клиентов.
Параметр авторизованных клиентов TLS-сервера (--tls-server-auth)
Авторизованные клиенты TLS-сервера.
Сервер авторизует клиентов, проверяя их сертификаты и сверяя CN (общее имя) сертификата со списком, заданным на сервере параметром tls-server-auth.
Клиентский CN можно авторизовать для любого количества stanza, передав в параметре tls-server-auth список через запятую, либо для всех stanza, указав tls-server-auth=client-cn=*. Для клиентского CN нельзя указывать подстановочные символы.
Параметр центров сертификации TLS-сервера (--tls-server-ca-file)
Центры сертификации TLS-сервера.
Проверяет, что сертификаты клиентов подписаны доверенным центром сертификации.
Параметр сертификата TLS-сервера (--tls-server-cert-file)
Файл сертификата TLS-сервера.
Отправляется клиенту для подтверждения личности сервера.
Параметр ключа TLS-сервера (--tls-server-key-file)
Файл ключа TLS-сервера.
Подтверждает, что сертификат сервера отправлен его владельцем.
Параметр порта TLS-сервера (--tls-server-port)
Порт сервера TLS.
Порт, на котором сервер будет слушать запросы клиентов.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
13 - Команда проверки доступности сервера (server-ping)
server-ping.Проверяет, что TLS-сервер pgBackRest принимает соединения. Это только проверка доступности, поскольку попытка аутентификации не выполняется.
Если сервер не указан в командной строке, используется параметр tls-server-host.
Параметры команды
Параметр адреса TLS-сервера (--tls-server-address)
Адрес TLS-сервера.
IP-адрес, на котором сервер будет слушать запросы клиентов.
Параметр порта TLS-сервера (--tls-server-port)
Порт сервера TLS.
Порт, на котором сервер будет слушать запросы клиентов.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
14 - Команда создания stanza (stanza-create)
stanza-create.Команду stanza-create необходимо выполнить после настройки stanza в pgbackrest.conf. Если настроено несколько репозиториев, stanza создаётся в каждом. Уже созданные stanza пропускаются, поэтому stanza-create всегда безопасно запускать, в том числе после настройки нового репозитория.
Дополнительные сведения и пример приведены в разделе Создание stanza .
Параметры команды
Параметр копирования работающего кластера (--online)
Создание на работающем кластере.
Параметр –no-online запрещает pgBackRest соединяться с PostgreSQL при создании stanza.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута базы данных (--db-timeout)
Тайм-аут запроса к базе данных.
Задаёт тайм-аут запросов к базе данных в секундах. Он распространяется и на функции начала и завершения резервного копирования, каждая из которых может выполняться довольно долго. Поэтому следует задавать большой тайм-аут, если нет уверенности, что эти функции завершатся быстро (то есть если задано start-fast=y и известно, что кластер базы данных не создаст много сегментов WAL во время резервного копирования).
ПРИМЕЧАНИЕ: параметр
db-timeoutдолжен быть меньшеprotocol-timeout.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры для сопровождающих
Параметр принудительного задания версии PostgreSQL (--pg-version-force)
Принудительное задание версии PostgreSQL.
Указанная версия PostgreSQL будет использоваться вместо версии, автоматически определённой по pg_control или заголовкам WAL. Это полезно главным образом для форков PostgreSQL или версий в разработке, в которых эти значения отличаются от версии выпуска. Версия, которую PostgreSQL сообщает через server_version_num, должна совпадать с принудительно заданной.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр осторожно: pg_control и заголовки WAL всё равно будут читаться в формате, ожидаемом для указанной версии, то есть в формате официальной версии PostgreSQL с открытым исходным кодом. Если форк или версия в разработке меняет формат полей, от которых зависит pgBackRest, это приведёт к неожиданному поведению. В общем случае параметр будет работать как ожидается только тогда, когда форк добавляет все собственные поля структур после стандартных полей PostgreSQL.
Параметры репозитория
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
Параметры stanza
Параметр базы данных PostgreSQL (--pg-database)
База данных PostgreSQL.
Имя базы данных для соединения с PostgreSQL. Обычно лучше оставить значение по умолчанию, но в некоторых установках такой базы может не быть.
По историческим причинам значение переменной окружения PGDATABASE игнорируется.
Параметр сервера PostgreSQL (--pg-host)
Сервер PostgreSQL для удалённой работы.
Используется при резервном копировании, когда сервер PostgreSQL отличается от сервера репозитория.
Устаревшее имя: db-host
Параметр файла центра сертификации сервера PostgreSQL (--pg-host-ca-file)
Файл центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера PostgreSQL (--pg-host-ca-path)
Каталог центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера PostgreSQL (--pg-host-cert-file)
Файл сертификата для сервера PostgreSQL.
Отправляется серверу PostgreSQL для подтверждения личности клиента.
Параметр команды на сервере PostgreSQL (--pg-host-cmd)
Команда pgBackRest на сервере PostgreSQL.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере PostgreSQL различается. Если параметр не задан, команда на сервере PostgreSQL будет той же, что и локальная команда.
Устаревшее имя: db-cmd
Параметр файла конфигурации сервера PostgreSQL (--pg-host-config)
Файл конфигурации pgBackRest на сервере базы данных.
Задаёт расположение файла конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: db-config
Параметр каталога включаемых конфигураций сервера PostgreSQL (--pg-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере базы данных.
Задаёт расположение каталога включаемых конфигураций на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера PostgreSQL (--pg-host-config-path)
Каталог конфигурации pgBackRest на сервере базы данных.
Задаёт расположение каталога конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера PostgreSQL (--pg-host-key-file)
Файл ключа для сервера PostgreSQL.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера PostgreSQL (--pg-host-port)
Порт сервера PostgreSQL при заданном pg-host.
Позволяет указать нестандартный порт для протокола сервера PostgreSQL.
ПРИМЕЧАНИЕ: при
pg-host-type=sshдляpg-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: db-ssh-port
Параметр типа протокола сервера PostgreSQL (--pg-host-type)
Тип протокола сервера PostgreSQL.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера PostgreSQL (--pg-host-user)
Пользователь для входа на сервер PostgreSQL при заданном pg-host.
Этот пользователь также будет владельцем удалённого процесса pgBackRest и будет устанавливать соединения с PostgreSQL. Для правильной работы следует использовать владельца кластера базы данных PostgreSQL, обычно это пользователь postgres, выбранный по умолчанию.
Устаревшее имя: db-user
Параметр пути PostgreSQL (--pg-path)
Каталог данных PostgreSQL.
Следует указать значение data_directory, сообщаемое PostgreSQL. Хотя его можно получить из разных источников, разумно задать его явно на случай, если эти источники будут недоступны при восстановлении или резервном копировании остановленного кластера.
При каждом резервном копировании работающего кластера параметр pg-path сверяется со значением, сообщаемым PostgreSQL, поэтому его следует всегда поддерживать актуальным.
Устаревшее имя: db-path
Параметр порта PostgreSQL (--pg-port)
Порт PostgreSQL.
Порт, на котором работает PostgreSQL. Обычно его не требуется указывать, поскольку большинство кластеров PostgreSQL работают на порту по умолчанию.
Устаревшее имя: db-port
Параметр каталога сокета PostgreSQL (--pg-socket-path)
Каталог Unix-сокета PostgreSQL.
Каталог Unix-сокета, указанный при запуске PostgreSQL. pgBackRest автоматически проверяет стандартное расположение для используемой ОС, поэтому обычно этот параметр не требуется, если каталог сокета не был явно изменён настройкой unix_socket_directories в postgresql.conf.
Устаревшее имя: db-socket-path
Параметр пользователя базы данных PostgreSQL (--pg-user)
Пользователь базы данных PostgreSQL.
Имя пользователя базы данных для соединения с PostgreSQL. Если оно не указано, pgBackRest использует локального пользователя ОС или PGUSER.
15 - Команда удаления stanza (stanza-delete)
stanza-delete.Команда stanza-delete удаляет из репозитория данные, связанные со stanza.
ПРЕДУПРЕЖДЕНИЕ:
Используйте эту команду осторожно: она безвозвратно удаляет все резервные копии и архивы указанной stanza из репозитория pgBackRest.
Чтобы удалить stanza:
- Остановите кластер PostgreSQL, связанный со stanza (или используйте –force, чтобы обойти это требование).
- Выполните команду
stopна сервере, где будет запущена командаstanza-delete. - Выполните команду
stanza-delete.
После успешного завершения команды пользователь должен самостоятельно удалить stanza из всех файлов конфигурации pgBackRest и/или переменных окружения.
За один раз stanza можно удалить только из одного репозитория. Для удаления из нескольких репозиториев повторите команду stanza-delete для каждого из них, указывая параметр --repo.
Параметры команды
Параметр принудительного выполнения (--force)
Принудительное удаление stanza.
Если PostgreSQL для этой stanza продолжает работать, этот параметр позволяет принудительно удалить stanza из репозитория.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута базы данных (--db-timeout)
Тайм-аут запроса к базе данных.
Задаёт тайм-аут запросов к базе данных в секундах. Он распространяется и на функции начала и завершения резервного копирования, каждая из которых может выполняться довольно долго. Поэтому следует задавать большой тайм-аут, если нет уверенности, что эти функции завершатся быстро (то есть если задано start-fast=y и известно, что кластер базы данных не создаст много сегментов WAL во время резервного копирования).
ПРИМЕЧАНИЕ: параметр
db-timeoutдолжен быть меньшеprotocol-timeout.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры для сопровождающих
Параметр принудительного задания версии PostgreSQL (--pg-version-force)
Принудительное задание версии PostgreSQL.
Указанная версия PostgreSQL будет использоваться вместо версии, автоматически определённой по pg_control или заголовкам WAL. Это полезно главным образом для форков PostgreSQL или версий в разработке, в которых эти значения отличаются от версии выпуска. Версия, которую PostgreSQL сообщает через server_version_num, должна совпадать с принудительно заданной.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр осторожно: pg_control и заголовки WAL всё равно будут читаться в формате, ожидаемом для указанной версии, то есть в формате официальной версии PostgreSQL с открытым исходным кодом. Если форк или версия в разработке меняет формат полей, от которых зависит pgBackRest, это приведёт к неожиданному поведению. В общем случае параметр будет работать как ожидается только тогда, когда форк добавляет все собственные поля структур после стандартных полей PostgreSQL.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
Параметры stanza
Параметр базы данных PostgreSQL (--pg-database)
База данных PostgreSQL.
Имя базы данных для соединения с PostgreSQL. Обычно лучше оставить значение по умолчанию, но в некоторых установках такой базы может не быть.
По историческим причинам значение переменной окружения PGDATABASE игнорируется.
Параметр сервера PostgreSQL (--pg-host)
Сервер PostgreSQL для удалённой работы.
Используется при резервном копировании, когда сервер PostgreSQL отличается от сервера репозитория.
Устаревшее имя: db-host
Параметр файла центра сертификации сервера PostgreSQL (--pg-host-ca-file)
Файл центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера PostgreSQL (--pg-host-ca-path)
Каталог центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера PostgreSQL (--pg-host-cert-file)
Файл сертификата для сервера PostgreSQL.
Отправляется серверу PostgreSQL для подтверждения личности клиента.
Параметр команды на сервере PostgreSQL (--pg-host-cmd)
Команда pgBackRest на сервере PostgreSQL.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере PostgreSQL различается. Если параметр не задан, команда на сервере PostgreSQL будет той же, что и локальная команда.
Устаревшее имя: db-cmd
Параметр файла конфигурации сервера PostgreSQL (--pg-host-config)
Файл конфигурации pgBackRest на сервере базы данных.
Задаёт расположение файла конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: db-config
Параметр каталога включаемых конфигураций сервера PostgreSQL (--pg-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере базы данных.
Задаёт расположение каталога включаемых конфигураций на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера PostgreSQL (--pg-host-config-path)
Каталог конфигурации pgBackRest на сервере базы данных.
Задаёт расположение каталога конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера PostgreSQL (--pg-host-key-file)
Файл ключа для сервера PostgreSQL.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера PostgreSQL (--pg-host-port)
Порт сервера PostgreSQL при заданном pg-host.
Позволяет указать нестандартный порт для протокола сервера PostgreSQL.
ПРИМЕЧАНИЕ: при
pg-host-type=sshдляpg-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: db-ssh-port
Параметр типа протокола сервера PostgreSQL (--pg-host-type)
Тип протокола сервера PostgreSQL.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера PostgreSQL (--pg-host-user)
Пользователь для входа на сервер PostgreSQL при заданном pg-host.
Этот пользователь также будет владельцем удалённого процесса pgBackRest и будет устанавливать соединения с PostgreSQL. Для правильной работы следует использовать владельца кластера базы данных PostgreSQL, обычно это пользователь postgres, выбранный по умолчанию.
Устаревшее имя: db-user
Параметр пути PostgreSQL (--pg-path)
Каталог данных PostgreSQL.
Следует указать значение data_directory, сообщаемое PostgreSQL. Хотя его можно получить из разных источников, разумно задать его явно на случай, если эти источники будут недоступны при восстановлении или резервном копировании остановленного кластера.
При каждом резервном копировании работающего кластера параметр pg-path сверяется со значением, сообщаемым PostgreSQL, поэтому его следует всегда поддерживать актуальным.
Устаревшее имя: db-path
Параметр порта PostgreSQL (--pg-port)
Порт PostgreSQL.
Порт, на котором работает PostgreSQL. Обычно его не требуется указывать, поскольку большинство кластеров PostgreSQL работают на порту по умолчанию.
Устаревшее имя: db-port
Параметр каталога сокета PostgreSQL (--pg-socket-path)
Каталог Unix-сокета PostgreSQL.
Каталог Unix-сокета, указанный при запуске PostgreSQL. pgBackRest автоматически проверяет стандартное расположение для используемой ОС, поэтому обычно этот параметр не требуется, если каталог сокета не был явно изменён настройкой unix_socket_directories в postgresql.conf.
Устаревшее имя: db-socket-path
Параметр пользователя базы данных PostgreSQL (--pg-user)
Пользователь базы данных PostgreSQL.
Имя пользователя базы данных для соединения с PostgreSQL. Если оно не указано, pgBackRest использует локального пользователя ОС или PGUSER.
16 - Команда обновления stanza (stanza-upgrade)
stanza-upgrade.Сразу после обновления PostgreSQL до более новой основной версии необходимо во всех конфигурациях pgBackRest задать pg-path, указывающий новое расположение базы данных, и выполнить команду stanza-upgrade. Если на сервере настроено несколько репозиториев, stanza обновляется в каждом. Если база данных остановлена, используйте параметр --no-online.
Параметры команды
Параметр копирования работающего кластера (--online)
Обновление работающего кластера.
Параметр –no-online запрещает pgBackRest соединяться с PostgreSQL при обновлении stanza.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута базы данных (--db-timeout)
Тайм-аут запроса к базе данных.
Задаёт тайм-аут запросов к базе данных в секундах. Он распространяется и на функции начала и завершения резервного копирования, каждая из которых может выполняться довольно долго. Поэтому следует задавать большой тайм-аут, если нет уверенности, что эти функции завершатся быстро (то есть если задано start-fast=y и известно, что кластер базы данных не создаст много сегментов WAL во время резервного копирования).
ПРИМЕЧАНИЕ: параметр
db-timeoutдолжен быть меньшеprotocol-timeout.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры для сопровождающих
Параметр принудительного задания версии PostgreSQL (--pg-version-force)
Принудительное задание версии PostgreSQL.
Указанная версия PostgreSQL будет использоваться вместо версии, автоматически определённой по pg_control или заголовкам WAL. Это полезно главным образом для форков PostgreSQL или версий в разработке, в которых эти значения отличаются от версии выпуска. Версия, которую PostgreSQL сообщает через server_version_num, должна совпадать с принудительно заданной.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр осторожно: pg_control и заголовки WAL всё равно будут читаться в формате, ожидаемом для указанной версии, то есть в формате официальной версии PostgreSQL с открытым исходным кодом. Если форк или версия в разработке меняет формат полей, от которых зависит pgBackRest, это приведёт к неожиданному поведению. В общем случае параметр будет работать как ожидается только тогда, когда форк добавляет все собственные поля структур после стандартных полей PostgreSQL.
Параметры репозитория
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
Параметры stanza
Параметр базы данных PostgreSQL (--pg-database)
База данных PostgreSQL.
Имя базы данных для соединения с PostgreSQL. Обычно лучше оставить значение по умолчанию, но в некоторых установках такой базы может не быть.
По историческим причинам значение переменной окружения PGDATABASE игнорируется.
Параметр сервера PostgreSQL (--pg-host)
Сервер PostgreSQL для удалённой работы.
Используется при резервном копировании, когда сервер PostgreSQL отличается от сервера репозитория.
Устаревшее имя: db-host
Параметр файла центра сертификации сервера PostgreSQL (--pg-host-ca-file)
Файл центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера PostgreSQL (--pg-host-ca-path)
Каталог центра сертификации сервера PostgreSQL.
Позволяет использовать для соединения с сервером PostgreSQL каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера PostgreSQL (--pg-host-cert-file)
Файл сертификата для сервера PostgreSQL.
Отправляется серверу PostgreSQL для подтверждения личности клиента.
Параметр команды на сервере PostgreSQL (--pg-host-cmd)
Команда pgBackRest на сервере PostgreSQL.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере PostgreSQL различается. Если параметр не задан, команда на сервере PostgreSQL будет той же, что и локальная команда.
Устаревшее имя: db-cmd
Параметр файла конфигурации сервера PostgreSQL (--pg-host-config)
Файл конфигурации pgBackRest на сервере базы данных.
Задаёт расположение файла конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: db-config
Параметр каталога включаемых конфигураций сервера PostgreSQL (--pg-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере базы данных.
Задаёт расположение каталога включаемых конфигураций на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера PostgreSQL (--pg-host-config-path)
Каталог конфигурации pgBackRest на сервере базы данных.
Задаёт расположение каталога конфигурации на сервере PostgreSQL. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера PostgreSQL (--pg-host-key-file)
Файл ключа для сервера PostgreSQL.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера PostgreSQL (--pg-host-port)
Порт сервера PostgreSQL при заданном pg-host.
Позволяет указать нестандартный порт для протокола сервера PostgreSQL.
ПРИМЕЧАНИЕ: при
pg-host-type=sshдляpg-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: db-ssh-port
Параметр типа протокола сервера PostgreSQL (--pg-host-type)
Тип протокола сервера PostgreSQL.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера PostgreSQL (--pg-host-user)
Пользователь для входа на сервер PostgreSQL при заданном pg-host.
Этот пользователь также будет владельцем удалённого процесса pgBackRest и будет устанавливать соединения с PostgreSQL. Для правильной работы следует использовать владельца кластера базы данных PostgreSQL, обычно это пользователь postgres, выбранный по умолчанию.
Устаревшее имя: db-user
Параметр пути PostgreSQL (--pg-path)
Каталог данных PostgreSQL.
Следует указать значение data_directory, сообщаемое PostgreSQL. Хотя его можно получить из разных источников, разумно задать его явно на случай, если эти источники будут недоступны при восстановлении или резервном копировании остановленного кластера.
При каждом резервном копировании работающего кластера параметр pg-path сверяется со значением, сообщаемым PostgreSQL, поэтому его следует всегда поддерживать актуальным.
Устаревшее имя: db-path
Параметр порта PostgreSQL (--pg-port)
Порт PostgreSQL.
Порт, на котором работает PostgreSQL. Обычно его не требуется указывать, поскольку большинство кластеров PostgreSQL работают на порту по умолчанию.
Устаревшее имя: db-port
Параметр каталога сокета PostgreSQL (--pg-socket-path)
Каталог Unix-сокета PostgreSQL.
Каталог Unix-сокета, указанный при запуске PostgreSQL. pgBackRest автоматически проверяет стандартное расположение для используемой ОС, поэтому обычно этот параметр не требуется, если каталог сокета не был явно изменён настройкой unix_socket_directories в postgresql.conf.
Устаревшее имя: db-socket-path
Параметр пользователя базы данных PostgreSQL (--pg-user)
Пользователь базы данных PostgreSQL.
Имя пользователя базы данных для соединения с PostgreSQL. Если оно не указано, pgBackRest использует локального пользователя ОС или PGUSER.
17 - Команда разрешения запуска (start)
start.Если процессы pgBackRest ранее были остановлены командой stop, командой start можно снова разрешить их запуск. Сама команда не запускает процессы pgBackRest немедленно, а лишь разрешает их выполнение. Дополнительные сведения и примеры приведены в разделе Запуск и остановка
.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
18 - Команда остановки (stop)
stop.Запрещает запуск новых процессов pgBackRest. По умолчанию работающим процессам разрешается успешно завершиться. Для завершения работающих процессов используйте параметр --force.
Процессы pgBackRest, запущенные после завершения команды stop, возвращают ошибку. Дополнительные сведения и примеры приведены в разделе Запуск и остановка .
Параметры команды
Параметр принудительного выполнения (--force)
Принудительная остановка всех процессов pgBackRest.
Этот параметр отправляет сигналы TERM всем работающим процессам pgBackRest для корректного, но немедленного завершения. Это также останавливает процессы, запущенные на другой системе, если их удалённые процессы работают на текущей. Например, если резервное копирование запущено на сервере резервного копирования, команда stop --force на сервере базы данных остановит процесс резервного копирования на сервере резервного копирования.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр каталога блокировок (--lock-path)
Путь для хранения файлов блокировок.
В каталоге блокировок pgBackRest создаёт файлы блокировок, предотвращающие одновременное выполнение конфликтующих операций.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
19 - Команда проверки данных (verify)
verify.Команда verify определяет, корректны ли резервные копии и архивы в репозитории.
Параметры команды
Параметр вывода (--output)
Тип вывода.
Поддерживаются следующие типы вывода:
none- Не выводить результаты проверки.text- Выводить сведения о проверке в stdout.
Параметр набора резервной копии (--set)
Набор резервной копии для проверки.
Проверка всех файлов базы данных и архива, связанных с указанным набором резервной копии.
Параметр подробного вывода (--verbose)
Подробный вывод.
По умолчанию verbose равен false: выводится краткий ответ с важными сведениями об ошибках в репозитории. Значение true добавляет сведения о том, что было успешно проверено.
Общие параметры
Параметр разрешения запуска от root (--allow-root)
Разрешение запуска команды от пользователя root.
По умолчанию только команда restore может выполняться от пользователя root, поскольку она предназначена для тщательного управления принадлежностью файлов. Выполнение других команд от пользователя root может привести к созданию файлов (например, в репозитории), принадлежащих root, и, как следствие, недоступных для пользователя PostgreSQL, что вызовет сбой последующих команд.
Включите этот параметр, чтобы запустить команду от имени root. Однако гораздо лучше запускать pgBackRest от пользователя, владеющего репозиторием и кластером PostgreSQL.
Параметр размера буфера (--buffer-size)
Размер буфера для операций ввода-вывода.
Размер буфера, используемый для копирования, сжатия, шифрования и других операций. Количество используемых буферов зависит от параметров, и каждая операция может использовать дополнительную память, например, сжатие gz может потребовать дополнительно 256KiB памяти.
Допустимые значения: 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB и 16MiB.
Параметр команды pgBackRest (--cmd)
Команда pgBackRest.
pgBackRest может формировать командную строку, например когда команда restore создаёт настройку restore_command. В этом случае используется команда, которой был запущен процесс pgBackRest, если не задан параметр cmd.
ОСТОРОЖНО:
Использование обёртки для команды pgBackRest может привести к непредсказуемому поведению и не рекомендуется.
Параметр команды SSH-клиента (--cmd-ssh)
Команда SSH-клиента.
Позволяет задать конкретную команду SSH-клиента, если нужен другой клиент или команда ssh отсутствует в $PATH.
Параметр уровня сжатия для сети (--compress-level-network)
Уровень сжатия для передачи по сети.
Задаёт уровень сетевого сжатия, когда compress-type=none и команда выполняется на другом сервере, чем репозиторий. Сжатие уменьшает сетевой трафик. Когда compress-type не равен none, настройка compress-level-network игнорируется и вместо неё используется compress-level, чтобы файл сжимался только один раз.
Параметр файла конфигурации (--config)
Конфигурационный файл pgBackRest.
Используйте этот параметр для указания другого файла конфигурации, отличного от файла по умолчанию.
Параметр каталога включаемых конфигураций (--config-include-path)
Путь к дополнительным файлам конфигурации pgBackRest.
Файлы конфигурации с расширением .conf, находящиеся в указанном каталоге, объединяются с файлом конфигурации pgBackRest в единый файл конфигурации.
Параметр каталога конфигурации (--config-path)
Базовый путь файлов конфигурации pgBackRest.
Эта настройка переопределяет базовый каталог по умолчанию для параметров --config и --config-include-path, если они не заданы явно в командной строке.
Например, передача только --config-path=/conf/pgbackrest приводит к установке значения по умолчанию для --config в /conf/pgbackrest/pgbackrest.conf и значения по умолчанию для --config-include-path в /conf/pgbackrest/conf.d.
Параметр тайм-аута ввода-вывода (--io-timeout)
Тайм-аут ввода-вывода.
Тайм-аут, в секундах, используемый для соединений и операций чтения/записи.
Операция чтения или записи не обязана полностью завершиться за это время, но какое-то продвижение должно произойти, хотя бы на один байт.
Параметр нейтральной маски umask (--neutral-umask)
Использование нейтральной маски umask.
Устанавливает umask в 0000, чтобы объекты в репозитории создавались с подходящими правами. По умолчанию права каталогов — 0750, файлов — 0640.
Чтобы вместо этого использовать umask пользователя, выполняющего команду, укажите neutral-umask=n в файле конфигурации или --no-neutral-umask в командной строке.
Параметр приоритета процесса (--priority)
Установка приоритета процесса.
Определяет приоритет процесса (то есть значение nice) для планировщика ядра. Положительные значения понижают приоритет, отрицательные — повышают. В большинстве случаев процессы не имеют права повышать свой приоритет.
Параметр максимального числа процессов (--process-max)
Максимальное число процессов для сжатия и передачи данных.
Каждый процесс выполняет сжатие и передачу, ускоряя выполнение команды, однако не следует задавать process-max настолько большим, чтобы это ухудшало производительность базы данных.
Параметр тайм-аута протокола (--protocol-timeout)
Тайм-аут протокола.
Задаёт тайм-аут, в секундах, на который локальный или удалённый процесс будет ждать получения нового сообщения на уровне протокола. Это предотвращает бесконечное ожидание сообщения процессами.
ПРИМЕЧАНИЕ: параметр
protocol-timeoutдолжен быть большеdb-timeout.
Параметр поддержания соединения (--sck-keep-alive)
Включение поддержания соединения.
Включает сообщения keep-alive для сокетных соединений.
Параметр stanza (--stanza)
Определение stanza.
Stanza — конфигурация кластера баз данных PostgreSQL, которая определяет его расположение, способ резервного копирования, параметры архивирования и т. п. Большинство серверов баз данных содержат только один кластер PostgreSQL и, соответственно, одну stanza, тогда как на серверах резервного копирования есть stanza для каждого кластера, требующего резервного копирования.
Может возникнуть желание назвать stanza по имени первичного кластера, но лучше выбрать имя, описывающее базы данных в нём. Поскольку имя stanza используется для первичного сервера и всех реплик, уместнее выбрать имя, отражающее назначение кластера, например app или dw, а не локальное имя кластера, такое как main или prod.
Параметр числа сообщений keep-alive (--tcp-keep-alive-count)
Число сообщений keep-alive.
Задаёт число сообщений TCP keep-alive, которые могут быть потеряны, прежде чем соединение будет считаться неработающим.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPCNT.
Параметр времени простоя keep-alive (--tcp-keep-alive-idle)
Время простоя перед отправкой keep-alive.
Задаёт время отсутствия сетевой активности в секундах, по истечении которого операционной системе следует отправить сообщение TCP keep-alive.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPIDLE.
Параметр интервала keep-alive (--tcp-keep-alive-interval)
Интервал сообщений keep-alive.
Задаёт время в секундах, после которого следует повторно отправить сообщение TCP keep-alive, не получившее подтверждения.
Этот параметр доступен на системах, которые поддерживают опцию сокета TCP_KEEPINTVL.
Параметр наборов шифров TLSv1.2 (--tls-cipher-12)
Допустимые наборы шифров TLSv1.2.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Приведённый пример подходит, если нет особых требований к безопасности. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметр наборов шифров TLSv1.3 (--tls-cipher-13)
Допустимые наборы шифров TLSv1.3.
Все соединения TLS между клиентом pgBackRest и сервером зашифрованы. По умолчанию также зашифрованы соединения с объектными хранилищами (например, S3).
ПРИМЕЧАНИЕ: абсолютный минимальный уровень безопасности для любого транспортного соединения — TLSv1.2.
При необходимости допустимые наборы шифров можно изменить. Если параметр не задан (по умолчанию), применяется значение по умолчанию используемой библиотеки OpenSSL.
Параметры журналирования
Параметр уровня журналирования в консоль (--log-level-console)
Уровень журналирования в консоль.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в файл (--log-level-file)
Уровень журналирования в файл.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр уровня журналирования в стандартный поток ошибок (--log-level-stderr)
Уровень ведения журнала для stderr.
Задаёт уровни журнала, сообщения которых выводятся в stderr, а не в stdout (задаваемый параметром log-level-console). Временная метка и процесс в stderr не выводятся.
Поддерживаются следующие уровни журналирования:
off- Журналирование отключено (не рекомендуется)error- Только ошибкиwarn- Предупреждения и ошибкиinfo- Информационные сообщения, предупреждения и ошибкиdetail- Подробные и информационные сообщения, предупреждения и ошибкиdebug- Отладочные, подробные и информационные сообщения, предупреждения и ошибкиtrace- Трассировка (очень подробная отладка), отладочные и информационные сообщения, предупреждения и ошибки
Параметр каталога журналов (--log-path)
Путь, по которому хранятся файлы журналов.
Путь к журналу задаёт местоположение для хранения файлов журналов pgBackRest. Примечание: если log-level-file=off, то путь к журналу не требуется.
Параметр журналирования подпроцессов (--log-subprocess)
Включение журналирования в подпроцессах.
Включает запись журнала в файл для всех подпроцессов, создаваемых этим процессом, с уровнем, заданным параметром log-level-file.
Параметр временных меток журнала (--log-timestamp)
Включение временных меток в журнале.
Включает временные метки при выводе журнала в консоль и в файл. Этот параметр отключается в особых случаях, например при генерации документации.
Параметры для сопровождающих
Параметр принудительного задания версии PostgreSQL (--pg-version-force)
Принудительное задание версии PostgreSQL.
Указанная версия PostgreSQL будет использоваться вместо версии, автоматически определённой по pg_control или заголовкам WAL. Это полезно главным образом для форков PostgreSQL или версий в разработке, в которых эти значения отличаются от версии выпуска. Версия, которую PostgreSQL сообщает через server_version_num, должна совпадать с принудительно заданной.
ПРЕДУПРЕЖДЕНИЕ:
Используйте этот параметр осторожно: pg_control и заголовки WAL всё равно будут читаться в формате, ожидаемом для указанной версии, то есть в формате официальной версии PostgreSQL с открытым исходным кодом. Если форк или версия в разработке меняет формат полей, от которых зависит pgBackRest, это приведёт к неожиданному поведению. В общем случае параметр будет работать как ожидается только тогда, когда форк добавляет все собственные поля структур после стандартных полей PostgreSQL.
Параметры репозитория
Параметр выбора репозитория (--repo)
Выбор репозитория.
Задаёт репозиторий, с которым работает команда.
Например, позволяет выполнить восстановление из конкретного репозитория, не предоставляя выбор pgBackRest.
Параметр контейнера репозитория Azure (--repo-azure-container)
Контейнер репозитория Azure.
Контейнер Azure для хранения репозитория.
Репозитории pgBackRest можно хранить в корне контейнера, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в контейнере также можно было хранить журналы и другие данные, создаваемые Azure.
Параметр типа ключа репозитория Azure (--repo-azure-key-type)
Тип ключа репозитория Azure.
Для авторизации поддерживаются следующие типы:
shared- Общий ключsas- Подпись общего доступаauto- Автоматическая авторизация с использованием управляемых удостоверений Azure
Параметр стиля URI репозитория Azure (--repo-azure-uri-style)
Стиль URI Azure.
Поддерживаются следующие стили URI:
host- Соединение с узломaccount.endpoint.path- Соединение с узломendpointс добавлением учётной записи в начало URI.
Параметр типа шифрования репозитория (--repo-cipher-type)
Шифр для шифрования репозитория.
Поддерживаются следующие типы шифрования:
none- Репозиторий не зашифрованaes-256-cbc- Advanced Encryption Standard с длиной ключа 256 бит
Шифрование всегда выполняется на стороне клиента, даже если тип репозитория (например, S3) поддерживает шифрование.
Параметр бакета репозитория GCS (--repo-gcs-bucket)
Бакет репозитория GCS.
Бакет GCS для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые GCS.
Параметр конечной точки репозитория GCS (--repo-gcs-endpoint)
Конечная точка репозитория GCS.
Конечная точка для соединения со службой хранения. Её можно изменить для использования локального сервера GCS или другой конечной точки.
Параметр типа ключа репозитория GCS (--repo-gcs-key-type)
Тип ключа репозитория GCS.
Для авторизации поддерживаются следующие типы:
auto- Авторизация с помощью служебной учётной записи экземпляра.service- Служебная учётная запись из локально сохранённого ключа.token- Для локального тестирования, например сfakegcs.
При repo-gcs-key-type=service учётные данные повторно загружаются при обновлении токена аутентификации.
Параметр идентификатора проекта репозитория GCS (--repo-gcs-user-project)
Идентификатор проекта GCS.
Идентификатор проекта GCS, определяющий оплату запросов.
Параметр сервера репозитория (--repo-host)
Сервер репозитория при удалённой работе.
При резервном копировании и архивировании в локально смонтированную файловую систему эта настройка не требуется.
Устаревшее имя: backup-host
Параметр файла центра сертификации сервера репозитория (--repo-host-ca-file)
Файл центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория файл CA, отличный от системного файла по умолчанию.
Параметр каталога центра сертификации сервера репозитория (--repo-host-ca-path)
Каталог центра сертификации сервера репозитория.
Позволяет использовать для соединения с сервером репозитория каталог CA, отличный от системного каталога по умолчанию.
Параметр файла сертификата сервера репозитория (--repo-host-cert-file)
Файл сертификата для сервера репозитория.
Отправляется серверу репозитория для подтверждения личности клиента.
Параметр команды на сервере репозитория (--repo-host-cmd)
Команда pgBackRest на сервере репозитория.
Требуется только тогда, когда путь к команде pgBackRest на локальном сервере и сервере репозитория различается. Если параметр не задан, команда на сервере репозитория будет той же, что и локальная команда.
Устаревшее имя: backup-cmd
Параметр файла конфигурации сервера репозитория (--repo-host-config)
Файл конфигурации pgBackRest на сервере репозитория.
Задаёт расположение файла конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального файла конфигурации.
Устаревшее имя: backup-config
Параметр каталога включаемых конфигураций сервера репозитория (--repo-host-config-include-path)
Каталог включаемых конфигураций pgBackRest на сервере репозитория.
Задаёт расположение каталога включаемых конфигураций на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога включаемых конфигураций.
Параметр каталога конфигурации сервера репозитория (--repo-host-config-path)
Каталог конфигурации pgBackRest на сервере репозитория.
Задаёт расположение каталога конфигурации на сервере репозитория. Требуется только тогда, когда оно отличается от расположения локального каталога конфигурации.
Параметр файла ключа для сервера репозитория (--repo-host-key-file)
Файл ключа для сервера репозитория.
Подтверждает, что сертификат клиента отправлен его владельцем.
Параметр порта сервера репозитория (--repo-host-port)
Порт сервера репозитория при заданном repo-host.
Позволяет указать нестандартный порт для протокола сервера репозитория.
ПРИМЕЧАНИЕ: при
repo-host-type=sshдляrepo-host-portнет значения по умолчанию. В этом случае используется порт, настроенный для команды, указанной вcmd-ssh.
Устаревшее имя: backup-ssh-port
Параметр типа протокола сервера репозитория (--repo-host-type)
Тип протокола сервера репозитория.
Поддерживаются следующие типы протоколов:
ssh- Secure Shell.tls- TLS-сервер pgBackRest.
Параметр пользователя сервера репозитория (--repo-host-user)
Пользователь сервера репозитория при заданном repo-host.
Определяет пользователя, от имени которого выполняются операции на сервере репозитория. Предпочтительно использовать не postgres, а другого пользователя, например pgbackrest. Если PostgreSQL работает на сервере репозитория, пользователя postgres можно включить в группу pgbackrest, чтобы предоставить ему право чтения репозитория без возможности случайно повредить его содержимое.
Устаревшее имя: backup-user
Параметр пути репозитория (--repo-path)
Путь для хранения резервных копий и архива.
В репозитории pgBackRest хранит резервные копии и архивирует сегменты WAL.
Заранее оценить требуемое место бывает сложно. Лучше создать несколько резервных копий, записать размеры копий разных типов (full/incr/diff) и измерить объём WAL, создаваемый за день. Это даст общее представление о необходимом месте, хотя со временем по мере развития базы данных требования, скорее всего, изменятся.
Параметр бакета репозитория S3 (--repo-s3-bucket)
Бакет репозитория S3.
Бакет S3 для хранения репозитория.
Репозитории pgBackRest можно хранить в корне бакета, задав repo-path=/, но обычно лучше указать префикс, например /repo, чтобы в бакете также можно было хранить журналы и другие данные, создаваемые AWS.
Параметр конечной точки репозитория S3 (--repo-s3-endpoint)
Конечная точка репозитория S3.
Следует использовать конечную точку AWS, допустимую для выбранного региона.
Для нестандартных или тестовых конфигураций могут быть полезны параметры repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port и repo-storage-verify-tls.
Параметр типа ключа репозитория S3 (--repo-s3-key-type)
Тип ключа репозитория S3.
Поддерживаются следующие типы:
shared- Общие ключиauto- Автоматическое получение временных учётных данныхweb-id- Автоматическое получение учётных данных веб-идентификацииpod-id- Автоматическое получение учётных данных EKS Pod Identityprocess- Получение учётных данных запуском процесса
Параметр идентификатора ключа KMS репозитория S3 (--repo-s3-kms-key-id)
Ключ KMS репозитория S3.
Включает шифрование на стороне сервера S3 с указанным ключом AWS Key Management Service.
Параметр команды процесса аутентификации S3 (--repo-s3-process-cmd)
Команда процесса аутентификации S3.
Команда (и необязательные аргументы), выполняемая для получения временных учётных данных S3. Первый элемент списка — команда, остальные передаются ей как параметры.
Процесс должен вывести JSON с полями AccessKeyId, SecretAccessKey, SessionToken и Expiration. Учётные данные автоматически обновляются до истечения срока действия. Формат описан в разделе Поставщик учётных данных через процесс
.
Параметр региона репозитория S3 (--repo-s3-region)
Регион репозитория S3.
Регион AWS, в котором создан бакет.
Параметр оплаты запросов отправителем в репозитории S3 (--repo-s3-requester-pays)
Оплата запросов отправителем в репозитории S3.
Включает в S3 оплату запросов отправителем.
Параметр роли репозитория S3 (--repo-s3-role)
Роль репозитория S3.
Имя роли AWS (не полный ARN), используемой для получения временных учётных данных при repo-s3-key-type=auto.
Параметр службы репозитория S3 (--repo-s3-service)
Служба подписывания S3.
Служба подписывания S3, используемая при аутентификации SigV4. Для стандартных конечных точек S3 по умолчанию используется s3. При использовании конечной точки S3 Outposts задайте s3-outposts.
Параметр конечной точки STS репозитория S3 (--repo-s3-sts-host)
Конечная точка STS репозитория S3.
Конечная точка STS для получения временных учётных данных при repo-s3-key-type=web-id. Укажите региональную конечную точку (например, sts.us-east-1.amazonaws.com) для использования регионального STS; это может требоваться для GovCloud, китайских регионов или снижения задержки.
Параметр стиля URI репозитория S3 (--repo-s3-uri-style)
Стиль URI S3.
Поддерживаются следующие стили URI:
host- Соединение с узломbucket.endpoint.path- Соединение с узломendpointс добавлением бакета в начало URI.
Параметр сервера репозитория SFTP (--repo-sftp-host)
Сервер репозитория SFTP.
Сервер SFTP, на котором расположен репозиторий.
Параметр отпечатка сервера репозитория SFTP (--repo-sftp-host-fingerprint)
Отпечаток сервера репозитория SFTP.
Способ формирования отпечатка сервера репозитория SFTP следует выбирать в соответствии с repo-sftp-host-key-hash-type. Отпечаток можно получить командой awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Ключи сервера ssh обычно находятся в каталоге /etc/ssh.
Параметр типа проверки ключа сервера SFTP (--repo-sftp-host-key-check-type)
Тип проверки ключа сервера SFTP.
Поддерживаются следующие типы проверки ключа сервера SFTP:
strict- pgBackRest никогда не добавляет ключи серверов в файл ~/.ssh/known_hosts автоматически и отказывается соединяться с серверами, ключ которых изменился или отсутствует в файлах известных серверов. При этом пользователь должен вручную добавлять все новые серверы.accept-new- pgBackRest автоматически добавляет новые ключи серверов в пользовательский файл известных серверов, но не разрешает соединения с серверами, ключи которых изменились.fingerprint- pgBackRest сравнивает ключ сервера с отпечатком, заданным параметромrepo-sftp-host-fingerprint.none- Ключ сервера не проверяется.
Параметр типа хеша ключа сервера репозитория SFTP (--repo-sftp-host-key-hash-type)
Тип хеша ключа сервера репозитория SFTP.
Тип хеша ключа сервера репозитория SFTP. Задаёт тип хеша для вычисления дайджеста ключа удалённой системы при установлении SSH-соединения. Новые версии libssh2 поддерживают sha256 в дополнение к md5 и sha1.
Параметр порта сервера репозитория SFTP (--repo-sftp-host-port)
Порт сервера репозитория SFTP.
Порт сервера репозитория SFTP.
Параметр пользователя сервера репозитория SFTP (--repo-sftp-host-user)
Пользователь сервера репозитория SFTP.
Пользователь на сервере, используемом для хранения репозитория.
Параметр файла известных серверов SFTP (--repo-sftp-known-host)
Файл известных серверов SFTP.
Файл известных серверов, в котором при аутентификации ищется совпадение с сервером SFTP. Если параметр не задан, pgBackRest по умолчанию проверяет ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts и /etc/ssh/ssh_known_hosts2. Если заданы один или несколько путей к файлам, поиск выполняется в них. Пути должны быть абсолютными или начинаться с тильды. Параметр repo-sftp-known-host можно указывать несколько раз для поиска в нескольких файлах известных серверов. Чтобы использовать проверку по этим файлам, repo-sftp-host-fingerprint не должен быть задан. См. также параметр repo-sftp-host-check-type.
Параметр файла закрытого ключа репозитория SFTP (--repo-sftp-private-key-file)
Файл закрытого ключа SFTP.
Файл закрытого ключа SFTP для аутентификации.
Параметр файла открытого ключа репозитория SFTP (--repo-sftp-public-key-file)
Файл открытого ключа SFTP.
Файл открытого ключа SFTP для аутентификации. Необязателен при сборке с OpenSSL и обязателен при сборке с другой библиотекой.
Параметр файла CA хранилища репозитория (--repo-storage-ca-file)
Файл CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) файл CA, отличный от системного файла по умолчанию.
Устаревшие имена: repo-azure-ca-file, repo-s3-ca-file
Параметр каталога CA для TLS хранилища репозитория (--repo-storage-ca-path)
Каталог CA хранилища репозитория.
Позволяет использовать для сертификатов хранилища (например, S3 или Azure) каталог CA, отличный от системного каталога по умолчанию.
Устаревшие имена: repo-azure-ca-path, repo-s3-ca-path
Параметр сервера хранилища репозитория (--repo-storage-host)
Сервер хранилища репозитория.
Устанавливает соединение с сервером, отличным от конечной точки хранилища (например, S3 или Azure). Обычно используется для тестирования.
Устаревшие имена: repo-azure-host, repo-s3-host
Параметр порта хранилища репозитория (--repo-storage-port)
Порт хранилища репозитория.
Порт для соединения с конечной точкой хранилища (например, S3 или Azure) либо с сервером, если он указан.
Устаревшие имена: repo-azure-port, repo-s3-port
Параметр тегов хранилища репозитория (--repo-storage-tag)
Теги хранилища репозитория.
Задаёт теги, добавляемые к объектам, если репозиторий расположен в объектном хранилище (например, S3). Параметр можно повторять для добавления нескольких тегов.
В pgBackRest нет возможности изменять эти теги, поэтому их следует правильно задать до запуска stanza-create, чтобы теги были одинаковыми во всём репозитории.
Параметр размера части загрузки в хранилище репозитория (--repo-storage-upload-chunk-size)
Размер части загрузки в хранилище репозитория.
Объектные хранилища, такие как S3, позволяют загружать файлы частями, если файл слишком велик для размещения в памяти. Даже если он помещается в память, ограничение объёма памяти для загрузок позволяет использовать её экономнее.
Больший размер части обычно повышает производительность, поскольку уменьшает число запросов загрузки и позволяет загружать больше файлов одним запросом, а не частями. Недостаток — повышенное потребление памяти. Поскольку буфер части выделяется каждому процессу, большие значения process-max увеличивают общий расход памяти.
Допустимые размеры частей зависят от типа хранилища и платформы. Например, минимальный размер части в AWS S3 — 5MiB. Терминология также различается: при поиске минимальных и максимальных значений используйте «part size» для AWS S3, «chunk size» для GCS и «block size» для Azure.
Если файл больше 1GiB (максимального размера, который PostgreSQL создаёт по умолчанию), размер части постепенно увеличивается вплоть до максимально допустимого, чтобы завершить загрузку файла.
Параметр проверки сертификата хранилища репозитория (--repo-storage-verify-tls)
Проверка сертификата хранилища репозитория.
Позволяет включать и отключать проверку TLS-сертификата сервера хранилища (например, S3 или Azure). Отключать проверку следует только при тестировании или в других случаях использования самоподписанного сертификата.
Устаревшие имена: repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls
Параметр целевого времени репозитория (--repo-target-time)
Целевое время репозитория.
Целевое время определяет момент, на который команды читают репозиторий в хранилище с версионированием. Это позволяет прочитать состояние репозитория на определённый момент времени и восстановить данные, удалённые или повреждённые по ошибке пользователя либо вредоносным ПО.
S3, GCS и Azure поддерживают версионирование, но обычно оно отключено по умолчанию. Помимо включения версионирования, может быть полезно включить блокировку объектов в S3 и обратимое удаление в GCS или Azure.
Если указан параметр repo-target-time, необходимо также указать repo. Версионирование, вероятно, поддерживается не всеми типами репозиториев, и в целом при восстановлении разумно обращаться к одному конкретному репозиторию.
Временные метки хранилища сравниваются с указанной по условию <=; миллисекунды, если они указаны, отбрасываются.
Параметр типа репозитория (--repo-type)
Тип хранилища репозитория.
Поддерживаются следующие типы репозиториев:
azure- Azure Blob Storage Servicecifs- Аналогиченposix, но отключает ссылки и fsync каталоговgcs- Google Cloud Storageposix- Файловые системы, совместимые с Posixs3- AWS Simple Storage Servicesftp- Secure File Transfer Protocol
При использовании смонтированной NFS в качестве репозитория posix к pgBackRest применяются те же правила, что описаны в документации PostgreSQL: Создание кластера баз данных — файловые системы
.
20 - Команда версии (version)
version.Отображает установленную версию pgBackRest.
Параметры команды
Параметр вывода (--output)
Тип вывода.
Поддерживаются следующие типы вывода:
text- Отображает установленную версию pgBackRest в виде текста.num- Отображает установленную версию pgBackRest в виде целого числа.