此条目与一个提议的PostgreSQL功能相关,该功能在公开发布之前已被撤回。
pg_wal_replay_wait_status() 是一个系统函数,用于报告当前会话中先前调用 pg_wal_replay_wait() 过程的状态。
pg_wal_replay_wait_status() 在 PostgreSQL 18 中添加,但随后被撤销。
用法
pg_wal_replay_wait_status () → text
pg_wal_replay_wait_status() 根据先前调用 pg_wal_replay_wait() 的状态,报告以下值之一:
success (成功)timeout (超时)not in recovery (不在恢复模式)
请注意,pg_wal_replay_wait_status() 仅报告当前数据库会话中最近一次调用 pg_wal_replay_wait() 的状态。
变更历史
示例
pg_wal_replay_wait_status() 的基本用法示例
postgres=# CALL pg_wal_replay_wait('0/3031EA8', 1000);
CALL
postgres=# SELECT pg_wal_replay_wait_status();
pg_wal_replay_wait_status
---------------------------
success
(1 row)
postgres=# CALL pg_wal_replay_wait('0/820A21B2', 1000);
ERROR: timed out while waiting for target LSN 0/820A21B2 to be replayed; current replay LSN 0/3031EA8
postgres=# SELECT pg_wal_replay_wait_status();
pg_wal_replay_wait_status
---------------------------
timeout
(1 row)
参考资料
- PostgreSQL 18 文档: 恢复同步过程和函数
