Команда отправки в архив (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