克隆备用数据库时,如何防止 pg_basebackup 将 postgresql.conf 和 pg_hba.conf 从 master 复制到 /var/lib/pgsql/9.9/data 目录?
目前我正在使用这个命令
[root@xyz..]# pg_basebackup -h {master ipAddr} -D /var/lib/pgsql/9.6/data -U postgres -v -P
克隆备用数据库时,如何防止 pg_basebackup 将 postgresql.conf 和 pg_hba.conf 从 master 复制到 /var/lib/pgsql/9.9/data 目录?
目前我正在使用这个命令
[root@xyz..]# pg_basebackup -h {master ipAddr} -D /var/lib/pgsql/9.6/data -U postgres -v -P
根据文档:
备份将包括数据目录和表空间中的所有文件,包括配置文件和第三方放置在目录中的任何附加文件。但只复制常规文件和目录。跳过符号链接(除了用于表空间的链接)和特殊设备文件。
所以没有这样的选择。如果您仍然想强制它,请将配置文件从数据目录移开(并且可以选择ln
将它们移到 data_dir)
此答案适用于 Postgres 14。pg_basebackup
备份整个数据目录。https://www.postgresql.org/docs/14/app-pgbasebackup.html指出备份实用程序将跳过所有作为符号链接的目录/文件。因此,这可能是一种仅将所需内容放入 tar 球的解决方法。
我遇到过类似的情况,我想排除多个目录的内容等pg_replslot,pg_dynshmem, pg_notify
。我用通常的方式制作了 tar 球:pg_basebackup -D /backup/ -F t -P -v
. 制作 tar 球后,在将其还原到另一台服务器之前,我通过排除所有必需目录的内容手动更新了 tar。