backup_label

一个创建的文件,提供有关备份的元信息

一个backup_label 是在源节点上数据目录的顶层创建的文件,当使用 pg_start_backup() 启动独占备份时,或在目标节点的数据目录中,当通过流复制协议进行备份时创建。它包含有关备份的元信息,特别是备份开始 LSN,以便备份的服务器知道何时开始应用 WAL,在第一次启动时。

当执行 pg_stop_backup() 时,源节点上的 backup_label 文件将被删除,并在服务器成功启动后,目标节点上的文件将重命名为 backup_label.old

backup_label 和独占备份的注意事项

如果独占备份正在进行中,并且发生崩溃情况,则 backup_label 文件的存在意味着 PostgreSQL 无法确定它是在作为备份启动还是否,并且将尝试从文件中记录的 检查点 位置恢复,该位置可能引用不再可用的 WAL 文件。

因此,非独占备份(自 PostgreSQL 9.1 开始由复制协议支持,并且自 PostgreSQL 9.6 开始由 pg_start_backup() 支持)是进行备份的首选方法。

backup_label 和非独占备份

如果备份是通过流复制协议的 BASE_BACKUP 命令(进行非独占备份)进行的,则 backup_label 文件将包含在流式数据中。

如果在非独占备份模式下调用 pg_start_backup(),则不会写入 backup_label 文件;而是由 pg_start_backup() 返回等效内容,并且调用者负责将文件写入目标节点的数据目录。

源代码

备份标签文件名在 src/include/access/xlog.h 中定义

access/xlog.h:#define BACKUP_LABEL_FILE         "backup_label"
access/xlog.h:#define BACKUP_LABEL_OLD          "backup_label.old"

示例

在使用 SELECT pg_start_backup('test backup') 启动独占备份后,将在 $PGDATA/backup_label 中创建以下文件

START WAL LOCATION: 0/2000028 (file 000000010000000000000002)
CHECKPOINT LOCATION: 0/2000098
BACKUP METHOD: pg_start_backup
BACKUP FROM: primary
START TIME: 2020-11-05 11:11:02 UTC
LABEL: test backup
START TIMELINE: 1

类别

备份复制

另请参阅

pg_start_backup()备份历史文件

反馈

提交任何关于 "backup_label" 的评论、建议或更正 此处