Возможность исключить файлы в команде pg_basebackup Postgres
Как клонировать резервный сервер, как я могу предотвратить копирование pg_basebackup postgresql.conf и pg_hba.conf из мастера в каталог /var/lib/pgsql/9.9/data?
В настоящее время я использую эту команду
[root@xyz..]# pg_basebackup -h {master ipAddr} -D /var/lib/pgsql/9.6/data -U postgres -v -P
2 ответа
Резервная копия будет включать все файлы в каталоге данных и табличных пространствах, включая файлы конфигурации и любые дополнительные файлы, размещенные в каталоге сторонними организациями. Но копируются только обычные файлы и каталоги. Символические ссылки (кроме тех, которые используются для табличных пространств) и специальные файлы устройств пропускаются.
Так что нет такой возможности. Если вы все еще хотите форсировать его, переместите файлы конфигурации из каталога данных (и, при необходимости, ln
их в data_dir)
Этот ответ для Postgres 14.
pg_basebackup
делает резервную копию всего каталога данных. https://www.postgresql.org/docs/14/app-pgbasebackup.html указывает, что утилита резервного копирования пропустит все каталоги/файлы, которые являются символическими ссылками. Таким образом, это может быть обходным путем, чтобы получить только желаемый контент в tar ball.
Я сталкивался с подобными ситуациями, когда хотел исключить содержимое нескольких каталогов, таких как
pg_replslot,pg_dynshmem, pg_notify
и т.д. Я сделал смоляной шар обычным способом:
pg_basebackup -D /backup/ -F t -P -v
. После того, как был сделан tar-шар, и перед его восстановлением на другой сервер, я обновил tar вручную, исключив содержимое всех необходимых каталогов.