pg_combinebackup#

pg_combinebackup

pg_combinebackup

pg_combinebackup — восстановить полную резервную копию из инкрементальной резервной копии и зависимых резервных копий

Синтаксис

pg_combinebackup [option...] [backup_directory...]

Описание

pg_combinebackup используется для реконструкции синтетической полной резервной копии из инкрементной резервной копии и более ранних резервных копий, от которых она зависит.

Укажите все необходимые резервные копии в командной строке от самой старой к самой новой. То есть, первый каталог резервной копии должен быть путем к полной резервной копии, а последний должен быть путем к последней инкрементной резервной копии, которую вы хотите восстановить. Восстановленная резервная копия будет записана в выходной каталог, указанный с помощью опции -o.

pg_combinebackup попытается проверить, что указанные вами резервные копии образуют допустимую цепочку резервных копий, из которой можно восстановить правильную полную резервную копию. Однако он не предназначен для того, чтобы помочь вам отслеживать, какие резервные копии зависят от каких других. Если вы удалите одну или несколько предыдущих резервных копий, от которых зависит ваша инкрементная резервная копия, вы не сможете ее восстановить. Более того, pg_combinebackup только пытается проверить, что резервные копии имеют правильное отношение друг к другу, а не что каждая отдельная резервная копия является целостной; для этого используйте pg_verifybackup.

Поскольку вывод pg_combinebackup является синтетической полной резервной копией, она может быть использована в качестве входных данных для будущего вызова pg_combinebackup. Синтетическая полная резервная копия будет указываться в командной строке вместо цепочки резервных копий, из которых она была восстановлена.

Опции

-d
--debug

Выводить много отладочной информации в журнале stderr.

-n
--dry-run

Опция -n/--dry-run инструктирует pg_combinebackup выяснить, что будет сделано, без фактического создания целевого каталога или каких-либо выходных файлов. Это особенно полезно в сочетании с --debug.

-N
--no-sync

По умолчанию, pg_combinebackup будет ожидать, пока все файлы будут безопасно записаны на диск. Эта опция заставляет pg_combinebackup завершить работу без ожидания, что быстрее, но означает, что последующий сбой операционной системы может оставить выходной резервный файл поврежденным. В общем, эта опция полезна для тестирования, но не должна использоваться при создании производственной установки.

-o outputdir
--output=outputdir

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

-T olddir=newdir
--tablespace-mapping=olddir=newdir

Перемещает табличное пространство из каталога olddir в newdir во время резервного копирования. olddir — это абсолютный путь к табличному пространству, как он существует в конечной резервной копии, указанной в командной строке, а newdir — это абсолютный путь, который будет использоваться для табличного пространства в восстановленной резервной копии. Если любой из путей должен содержать знак равенства (=), предшествуйте ему обратной косой чертой. Этот параметр может быть указан несколько раз для нескольких табличных пространств.

--clone

Используйте эффективное клонирование файлов (также известное как reflinks на некоторых системах) вместо копирования файлов в новый каталог данных, что может привести к почти мгновенному копированию файлов данных.

Если манифест резервной копии недоступен или не содержит контрольной суммы нужного типа, для копирования файла будет использовано клонирование файла, но файл также будет прочитан блок за блоком для вычисления контрольной суммы.

Клонирование файлов поддерживается только в некоторых операционных системах и файловых системах. Если оно выбрано, но не поддерживается, выполнение pg_combinebackup завершится ошибкой. В настоящее время оно поддерживается в Linux (ядро 4.5 или более позднее) с Btrfs и XFS (на файловых системах, созданных с поддержкой reflink), а также в macOS с APFS.

--copy

Выполните регулярное копирование файлов. Это значение по умолчанию. (См. также --copy-file-range и --clone.)

--copy-file-range

Используйте системный вызов copy_file_range для эффективного копирования. На некоторых файловых системах это дает результаты, аналогичные --clone, с совместным использованием физических блоков диска, в то время как на других он может все еще копировать блоки, но делать это через оптимизированный путь. В настоящее время поддерживается на Linux и FreeBSD.

Если манифест резервной копии недоступен или не содержит контрольной суммы нужного типа, copy_file_range будет использован для копирования файла, но файл также будет прочитан блок за блоком для вычисления контрольной суммы.

--manifest-checksums=algorithm

Как и pg_basebackup, pg_combinebackup записывает манифест резервной копии в выходной каталог. Этот параметр указывает алгоритм контрольной суммы, который должен быть применен к каждому файлу, включенному в манифест резервной копии. В настоящее время доступны следующие алгоритмы: NONE, CRC32C, SHA224, SHA256, SHA384, и SHA512. По умолчанию используется CRC32C.

--no-manifest

Отключает создание манифеста резервной копии. Если этот параметр не указан, манифест резервной копии для восстановленной резервной копии будет записан в выходной каталог.

--sync-method=method

Когда установлено значение fsync, что является значением по умолчанию, pg_combinebackup рекурсивно откроет и синхронизирует все файлы в каталоге резервной копии. Когда используется простой формат, поиск файлов будет следовать символическим ссылкам для каталога WAL и каждого настроенного табличного пространства.

На Linux вместо этого может быть использован syncfs, чтобы попросить операционную систему синхронизировать всю файловую систему, содержащую каталог резервной копии. Когда используется простой формат, pg_combinebackup также будет синхронизировать файловые системы, содержащие файлы WAL и каждое табличное пространство. См. recovery_init_sync_method для информации о предостережениях, которые следует учитывать при использовании syncfs.

Этот параметр не работает, когда используется --no-sync.

-V
--version

Выводит версию pg_combinebackup и завершает работу.

-?
--help

Показывает справку о командной строке pg_combinebackup и завершает работу.

Ограничения

pg_combinebackup не пересчитывает контрольные суммы страниц при записи выходного каталога. Поэтому, если какие-либо из резервных копий, использованных для восстановления, были сделаны с отключенными контрольными суммами, но окончательная резервная копия была сделана с включенными контрольными суммами, результирующий каталог может содержать страницы с недействительными контрольными суммами.

Чтобы избежать этой проблемы, рекомендуется сделать новую полную резервную копию после изменения состояния контрольной суммы кластера с помощью pg_checksums. В противном случае, вы можете отключить, а затем при необходимости снова включить контрольные суммы в каталоге, созданном pg_combinebackup, чтобы исправить проблему.

Окружение

Эта утилита, как и большинство других утилит Tantor BE, использует переменные среды, поддерживаемые libpq (см. Раздел 30.15).

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

См. также

pg_basebackup