pg_wal_replay_pause()

暂停WAL回放的功能

pg_wal_replay_pause() 是一个用于在备用服务器上暂停WAL回放(恢复)的系统函数。

pg_wal_replay_pause()PostgreSQL 9.1 中作为pg_xlog_replay_pause()添加。

用法

pg_wal_replay_pause() → void

pg_wal_replay_pause() 向PostgreSQL发出暂停WAL回放的请求;一旦成功,将不再应用任何更改。执行pg_wal_replay_resume() 以恢复WAL回放。

请注意,尽管pg_wal_replay_pause()会立即返回,但在WAL回放实际暂停之前可能会有延迟。WAL回放暂停的点将在PostgreSQL日志文件中记录,例如:

LOG:  00000: recovery has paused

pg_is_wal_replay_paused() 可用于确定WAL回放是否已暂停。

PostgreSQL 14 开始,pg_get_wal_replay_pause_state() 函数也可用于确定WAL回放暂停请求的状态。

变更历史

示例

pg_wal_replay_pause() 的基本用法

postgres=# SELECT pg_wal_replay_pause();
 pg_wal_replay_pause
---------------------

(1 row)

postgres=# SELECT pg_get_wal_replay_pause_state();
 pg_get_wal_replay_pause_state
-------------------------------
 paused
(1 row)

postgres=# SELECT pg_wal_replay_resume();
 pg_wal_replay_resume
----------------------

(1 row)

这会在PostgreSQL日志文件中生成如下条目:

[2021-04-06 15:14:24 UTC] psql postgres postgres LOG:  00000: statement: SELECT pg_wal_replay_pause();
[2021-04-06 15:14:24 UTC]    LOG:  00000: recovery has paused
[2021-04-06 15:14:24 UTC]    HINT:  Execute pg_wal_replay_resume() to continue.
[2021-04-06 15:14:34 UTC] psql postgres postgres LOG:  00000: statement: SELECT pg_get_wal_replay_pause_state();
[2021-04-06 15:14:58 UTC] psql postgres postgres LOG:  00000: statement: SELECT pg_wal_replay_resume();

分类

复制系统函数WAL

另请参阅

pg_wal_replay_resume()pg_is_wal_replay_paused()pg_get_wal_replay_pause_state()

反馈

请在此提交关于 "pg_wal_replay_pause()" 的任何评论、建议或更正 此处