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()" 的评论、建议或更正 此处