pg_start_backup()

一个将PostgreSQL置于适合执行文件系统级备份状态的函数
此条目涉及一个已弃用的PostgreSQL功能,在将来的版本中可能会取消支持。

pg_start_backup() 是一个系统函数,它将 PostgreSQL 置于适合执行文件系统级备份的状态。

pg_start_backup()PostgreSQL 8.0 中添加,并在 PostgreSQL 15 中被 pg_backup_start() 替换。

用法

pg_start_backup ( label text [, fast boolean [, exclusive boolean ]] ) → pg_lsn

pg_start_backup() 返回必须可用于PostgreSQL才能从该点开始备份的最小WAL位置的LSN

注意:用户或客户端应用程序负责确保备份所需的WAL文件可用;通常建议使用诸如pg_basebackup之类的应用程序来管理备份过程。

源代码

处理pg_start_backup()的后端代码位于src/backend/access/transam/xlog.c,函数do_pg_start_backup()

变更历史

示例

独占备份

postgres=# SELECT pg_start_backup('test backup');
 pg_start_backup 
-----------------
 0/2000028
(1 row)

postgres=# SELECT pg_is_in_backup();
 pg_is_in_backup                                                                                                                                                                    
-----------------                                                                                                                                                                   
 t                                                                                                                                                                                  
(1 row)                                                                                                                                                                             
                                                                                                                                                                                    
postgres=# SELECT pg_backup_start_time();                                                                                                                                           
  pg_backup_start_time                                                                                                                                                              
------------------------                                                                                                                                                            
 2018-12-14 19:22:50+09                                                                                                                                                             
(1 row)

此时,数据目录将包含一个backup_label文件,并且可以安全地对文件系统级的数据目录进行备份。

非独占备份

postgres=# SELECT pg_start_backup(label := 'test backup', exclusive := false);
 pg_start_backup 
-----------------
 0/8000028
(1 row)

在非独占备份中,不会创建backup_label文件(而是备份标签的内容将作为记录由pg_stop_backup()返回)。现在可以安全地对文件系统级的数据目录进行备份。

分类

备份已弃用复制

参见

pg_stop_backup()pg_is_in_backup()备份历史文件backup_labeltablespace_map

反馈

提交关于“pg_start_backup()”的任何评论、建议或更正 在此处