pg_backup_stop() 是一个系统函数,用于完成由 pg_backup_start() 发起的在线备份。
pg_backup_stop() 在 PostgreSQL 15 中添加,取代了 pg_stop_backup()。
用法
pg_backup_stop ( [wait_for_archiveboolean] ) →
record (lsnpg_lsn,labelfiletext,spcmapfiletext)
在执行 pg_backup_start() 启动在线备份后,应通过可靠的方法(例如 rsync)将数据目录复制到另一个位置。完成此过程后,调用 pg_backup_stop(),它将返回一个 backup label 文件和一个 tablespace map 文件,这些文件必须放置在复制的目标位置。
请注意,通常更倾向于使用 Barman 或 pgBackRest 等备份工具来管理 PostgreSQL 实例的备份过程,并使用 repmgr 等工具来克隆 PostgreSQL 实例。
变更历史
- PostgreSQL 15
- 添加于 (commit 58c41712)
示例
示例用法:
postgres=# SELECT pg_backup_start('foo');
pg_backup_start
-----------------
0/4000028
(1 row)
postgres=# SELECT * FROM pg_backup_stop();
NOTICE: WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup
lsn | labelfile | spcmapfile
-----------+---------------------------------------------------------------+------------
0/7D37068 | START WAL LOCATION: 0/4000028 (file 000000010000000000000004)+|
| CHECKPOINT LOCATION: 0/4000060 +|
| BACKUP METHOD: streamed +|
| BACKUP FROM: primary +|
| START TIME: 2022-05-28 09:52:22 JST +|
| LABEL: foo +|
| START TIMELINE: 1 +|
| |
(1 row)
在此示例中,未返回 tablespace map 文件。
参考资料
- PostgreSQL 文档: 备份控制函数
