PostgreSQL日志号LSN和wal日志文件
Posted 年岁有加,并非垂老
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL日志号LSN和wal日志文件相关的知识,希望对你有一定的参考价值。
日志文件则由24个16进制数字组成,分三部分:时间线、LSN高32位、LSN低32位/(2**24)的值
使用lsn 获取 wal文件名的实例
postgres=# select pg_current_wal_lsn(),pg_walfile_name(pg_current_wal_lsn()),pg_walfile_name_offset(pg_current_wal_lsn()); pg_current_wal_lsn | pg_walfile_name | pg_walfile_name_offset --------------------+--------------------------+------------------------------------ 3FB/AE61A1A0 | 00000001000003FB000000AE | (00000001000003FB000000AE,6398368) (1 row) postgres=# select x\'61A1A0\'::int; int4 --------- 6398368 (1 row)
pg_current_wal_lsn():获得当前wal日志写入位置。
pg_walfile_name():转换wal日志位置为文件名。
pg_walfile_name_offset():返回转换后的wal日志文件名和偏移量。
说明
LSN:3FB/AE61A1A0
3FB:代表wal文件的第二部分
AE:代表wal文件的最后两位
61A1A0:代表偏移量
00000001000003FB000000AE
wal文件由24个字符,三部分组成,每部分由8个字符组成,代表含义如下
00000001:代表数据库运行的时间轴,如果恢复过数据库(主备切换)这个值会增大
000003FB:对LSN的第二部分对应
000000AE:代表walfile文件的最后两位
以上是关于PostgreSQL日志号LSN和wal日志文件的主要内容,如果未能解决你的问题,请参考以下文章