pg_walfile_name()
是一个系统函数,用于获取与提供的WAL 文件对应的LSN 的文件名。
pg_walfile_name()
在PostgreSQL 8.2 中作为pg_xlogfile_name()
添加。
用法
pg_walfile_name ( lsn
pg_lsn ) → text
pg_walfile_name()
只能在主服务器上执行(即不是只读备机)。
更改历史
- PostgreSQL 17
- 如果 LSN 位于段边界(提交344afc77),则返回当前段号 (segno)
- PostgreSQL 10
- 重命名为
pg_walfile_name()
(提交806091c9)
- 重命名为
- PostgreSQL 9.4
- PostgreSQL 8.2
- 添加为
pg_xlogfile_name()
(提交704ddaaa)
- 添加为
示例
pg_walfile_name()
的基本用法示例
postgres=# SELECT pg_walfile_name('0/01000001'); pg_walfile_name -------------------------- 000000010000000000000001 (1 row)
获取当前 WAL 文件名
postgres=# SELECT pg_walfile_name(pg_current_wal_lsn()); pg_walfile_name -------------------------- 000000010000000000000003 (1 row)
尝试在备机上执行pg_walfile_name()
postgres=# SELECT pg_walfile_name('0/1'); ERROR: recovery is in progress HINT: pg_walfile_name() cannot be executed during recovery.
参考文献
- PostgreSQL 文档: 备份控制函数