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 文档: 备份控制函数