此条目与较新PostgreSQL版本中已重命名的功能相关
pg_current_wal_flush_lsn()
是一个系统函数,它返回当前的 Write-Ahead Log (WAL) flush 位置。
pg_current_wal_flush_lsn()
在 PostgreSQL 9.6 中被添加(作为 pg_current_xlog_flush_location()
)。
用法
pg_current_wal_flush_lsn () → pg_lsn
flush 位置是已知的最后一个写入持久化存储的 WAL 位置。
如果在 PostgreSQL 恢复模式下(即在备用服务器上)执行 pg_current_wal_flush_lsn()
,该函数将无法执行。
变更历史
- PostgreSQL 10
- 重命名为
pg_current_wal_flush_lsn()
(commit 806091c9)
- 重命名为
- PostgreSQL 9.6
- 添加为
pg_current_xlog_flush_location()
(commit 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()