pg_create_restore_point()

用于创建还原点的函数

pg_create_restore_point() 是用于创建还原点的系统函数,即 WAL 流中恢复将停止的命名点。

pg_create_restore_point()PostgreSQL 9.1 中添加。

用法

pg_create_restore_point ( name TEXT ) → pg_lsn

变更历史

示例

创建还原点

postgres=# SELECT pg_create_restore_point('test_restore_point');
 pg_create_restore_point
-------------------------
 2/BDFE0260
(1 row)

这将在 PostgreSQL 日志文件中生成类似以下的条目

[2021-04-06 13:46:06 UTC] psql postgres postgres LOG:  00000: statement: SELECT pg_create_restore_point('test_restore_point');
[2021-04-06 13:46:06 UTC] psql postgres postgres LOG:  00000: restore point "test_restore_point" created at 2/BDFE0260

相应的 WAL 记录是

rmgr: XLOG        len (rec/tot):     98/    98, tx:          0, lsn: 2/BDFE01F8, prev 2/BDFE01C0, desc: RESTORE_POINT test_restore_point

在备用服务器上,将 recovery_target_name 设置为 test_restore_point 将导致恢复在到达命名还原点时停止

[2021-04-07 14:08:53 UTC]    LOG:  00000: recovery stopping at restore point "test_restore_point", time 2021-04-06 13:46:06.943405+0
[2021-04-07 14:08:53 UTC]    LOG:  00000: pausing at the end of recovery
[2021-04-07 14:08:53 UTC]    HINT:  Execute pg_wal_replay_resume() to promote.

这对应于创建还原点时返回的 LSN,2/BDFE0260

postgres=# SELECT * FROM pg_control_recovery()\gx
-[ RECORD 1 ]-----------------+-----------
min_recovery_end_lsn          | 2/BDFE0260
min_recovery_end_timeline     | 1
backup_start_lsn              | 0/0
backup_end_lsn                | 0/0
end_of_backup_record_required | f

类别

备份复制WAL

另请参见

recovery_target_name

反馈

提交有关 "pg_create_restore_point()" 的任何评论、建议或更正 这里