pg_combinebackup — 从增量备份和依赖备份重建完整备份
pg_combinebackup
[选项
...] [备份目录
...]
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 输出目录
--output=输出目录
指定应将合成完整备份写入的输出目录。目前,此参数是必需的。
-T 旧目录
=新目录
--tablespace-mapping=旧目录
=新目录
在备份期间,将 旧目录
中的表空间重定位到 新目录
。旧目录
是表空间在命令行上指定的最终备份中存在的绝对路径,而 新目录
是在重建的备份中使用的表空间的绝对路径。如果任何路径需要包含等号(=
),请在其前面加上反斜杠。可以多次指定此选项用于多个表空间。
--clone
使用高效的文件克隆(在某些系统上也称为 “reflinks”),而不是将文件复制到新的数据目录,这可以导致数据文件几乎瞬间完成复制。
如果备份清单不可用或不包含正确类型的校验和,则将使用文件克隆来复制文件,但也会逐块读取该文件以进行校验和计算。
文件克隆仅在某些操作系统和文件系统上受支持。如果选择了它但不受支持,则 pg_combinebackup 运行将出错。目前,它在 Linux (kernel 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=算法
与 pg_basebackup 类似,pg_combinebackup 在输出目录中写入备份清单。此选项指定应应用于备份清单中包含的每个文件的校验和算法。目前,可用的算法是 NONE
、CRC32C
、SHA224
、SHA256
、SHA384
和 SHA512
。默认值为 CRC32C
。
--no-manifest
禁用生成备份清单。如果未指定此选项,则会将重建的备份的备份清单写入输出目录。
--sync-method=方法
设置为 fsync
时(这是默认设置),pg_combinebackup
将递归打开并同步备份目录中的所有文件。使用纯文本格式时,对文件的搜索将遵循 WAL 目录和每个配置的表空间的符号链接。
在 Linux 上,可以使用 syncfs
来请求操作系统同步包含备份目录的整个文件系统。使用纯文本格式时,pg_combinebackup
还会同步包含 WAL 文件和每个表空间的文件系统。有关使用 syncfs
时需要注意的注意事项,请参阅 recovery_init_sync_method。
使用 --no-sync
时,此选项无效。
-V
--version
打印 pg_combinebackup 版本并退出。
-?
--help
显示有关 pg_combinebackup 命令行参数的帮助并退出。
pg_combinebackup
在写入输出目录时不会重新计算页面校验和。因此,如果用于重建的任何备份是在禁用校验和的情况下进行的,但最终备份是在启用校验和的情况下进行的,则生成的目录可能包含校验和无效的页面。
为了避免此问题,建议在使用 pg_checksums 更改集群的校验和状态后进行新的完整备份。否则,您可以禁用,然后选择性地重新启用由 pg_combinebackup
生成的目录上的校验和,以纠正此问题。
此实用程序与大多数其他 PostgreSQL 实用程序一样,使用 libpq 支持的环境变量(请参阅 第 32.15 节)。
环境变量 PG_COLOR
指定是否在诊断消息中使用颜色。可能的值为 always
、auto
和 never
。
如果您在文档中发现任何不正确、与您使用特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。