Возможность исключить файлы в команде 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 вручную, исключив содержимое всех необходимых каталогов.

Другие вопросы по тегам