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() 返回最小WAL位置的 LSN,该位置对于PostgreSQL从此时点创建的备份进行恢复是必需的。

注意:用户或客户端应用程序负责确保所需的 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_label, tablespace_map

反馈

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