Redrock Postgres 搜索 英文
版本: 17

pg_combinebackup

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 outputdir
--output=outputdir

指定应将合成完整备份写入到的输出目录。当前,此参数是必需的。

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

在备份期间将目录 olddir 中的表空间移动到 newdirolddir 是命令行上指定的最终备份中表空间的绝对路径,newdir 是在重建的备份中用于表空间的绝对路径。如果任一路径需要包含等号 (=),请在其之前加上反斜杠。可以多次指定此选项用于多个表空间。

--clone

使用高效文件克隆(在某些系统上也称为 reflinks)来代替将文件复制到新数据目录,这可以实现近乎即时的数据文件复制。

如果备份清单不可用或不包含正确类型的校验和,文件克隆将用于复制文件,但文件也将以逐块方式读取用于校验和计算。

文件克隆仅在某些操作系统和文件系统上受支持。如果已选择但不受支持,则 pg_combinebackup 运行将出错。目前,它在具有 Btrfs 和 XFS(在创建了具有 reflink 支持的文件系统上)的 Linux(内核 4.5 或更高版本)以及具有 APFS 的 macOS 上受支持。

--copy

执行常规文件复制。这是默认值。(同时参见 --copy-file-range--clone。)

--copy-file-range

对于高效复制,使用 copy_file_range 的系统调用。在一些文件系统上,它给出的结果类似于 --clone,即共享物理磁盘区块,而其他文件系统上可能仍然复制区块,不过通过优化的路径进行复制。当前,在 Linux 和 FreeBSD 上提供对它的支持。

如果备用清单不可用或不包含正确类型的校验和,则 copy_file_range 将用于复制文件,但也块对块地读取文件以计算校验和。

--manifest-checksums=algorithm

类似于 pg_basebackuppg_combinebackup 在输出目录中写入备用清单。此选项指定应该应用于备用清单中包含的每个文件的校验和算法。当前,可用的算法有 NONECRC32CSHA224SHA256SHA384SHA512。默认值为 CRC32C

--no-manifest

禁用生成备用清单。如果未指定此选项,将为重建的备用写入备用清单到输出目录。

--sync-method=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 指定是否在诊断消息中使用颜色。可能的值为 alwaysautonever

另请参阅

pg_basebackup