pg_get_wal_replay_pause_state() 是一个返回恢复暂停状态的系统函数。
pg_get_wal_replay_pause_state() 在 PostgreSQL 14 中添加。
用法
pg_get_wal_replay_pause_state() → text
调用 pg_wal_replay_pause() 可能不会立即暂停 WAL 重放。 pg_get_wal_replay_pause_state() 可以确定当前的恢复暂停状态,并返回以下值之一:
未暂停请求暂停已暂停
变更历史
- PostgreSQL 14
- 添加(提交 32fd2b57)
示例
pg_get_wal_replay_pause_state() 的基本用法
postgres=# SELECT pg_wal_replay_pause(); SELECT pg_get_wal_replay_pause_state(); pg_wal_replay_pause --------------------- (1 row) pg_get_wal_replay_pause_state ------------------------------- pause requested (1 row) postgres=# SELECT pg_get_wal_replay_pause_state(); pg_get_wal_replay_pause_state ------------------------------- paused (1 row)
对应的 PostgreSQL 日志文件条目
[2021-04-06 15:12:24 UTC] psql postgres postgres LOG: 00000: statement: SELECT pg_wal_replay_pause(); [2021-04-06 15:12:24 UTC] psql postgres postgres LOG: 00000: statement: SELECT pg_get_wal_replay_pause_state(); [2021-04-06 15:12:24 UTC] LOG: 00000: recovery has paused [2021-04-06 15:12:24 UTC] HINT: Execute pg_wal_replay_resume() to continue. [2021-04-06 15:12:34 UTC] psql postgres postgres LOG: 00000: statement: SELECT pg_get_wal_replay_pause_state();
参考资料
- PostgreSQL 文档: 恢复控制函数
