pg_current_wal_flush_lsn()
是一个系统函数,返回当前 预写日志 刷写位置。
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()