pg_current_wal_flush_lsn()
是一个系统函数,返回当前预写日志 (WAL) 的刷写位置。
pg_current_wal_flush_lsn()
在 PostgreSQL 9.6 中添加(名为 pg_current_xlog_flush_location()
)。
用法
pg_current_wal_flush_lsn () → pg_lsn
刷写位置是指已知写入持久存储的最后一个 WAL 位置。
如果 PostgreSQL 处于恢复模式(例如,在备用服务器上),则无法执行 pg_current_wal_flush_lsn()
。
变更历史
- PostgreSQL 10
- 重命名为
pg_current_wal_flush_lsn()
(提交 806091c9)
- 重命名为
- PostgreSQL 9.6
- 添加为
pg_current_xlog_flush_location()
(提交 e63bb454)
- 添加为
示例
pg_current_wal_flush_lsn()
的示例输出
postgres=# SELECT pg_current_wal_flush_lsn(), pg_current_wal_lsn(), pg_current_wal_insert_lsn(); pg_current_wal_flush_lsn | pg_current_wal_lsn | pg_current_wal_insert_lsn --------------------------+--------------------+--------------------------- 4/2F000000 | 4/2F4C6000 | 4/2F8C4E78 (1 row)
在备用服务器上执行
postgres=# SELECT pg_current_wal_flush_lsn(); ERROR: recovery is in progress HINT: WAL control functions cannot be executed during recovery.
参考文献
- PostgreSQL 文档: 备份控制函数
参见
pg_current_wal_lsn(), pg_current_wal_insert_lsn()