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”的评论、建议或更正 在此