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