作者:瀚高PG实验室(Highgo PG Lab)-Chrisx # LSN与段文件的关系 @[toc] ## LSN LSN 是一个指向WAL中的位置的指针 在内部,一个 LSN 是一个 64 位整数,表示在预写式日志流中的一个字节位置。它被打印成 两个最高 8 位的十六进制数,中间用斜线分隔,例如16/B374D848。 pg_lsn类型支持标准的比较操作符,如=和 >。两个 LSN 可以用-操作符做减法, 结果将是分隔两个预写式日志位置的字节数。 ## LSN与段文件 1. 通过内置函数可以知道LSN对应的段文件 ```sql postgres=# SELECT pg_current_wal_lsn(),pg_walfile_name( pg_current_wal_lsn() ); pg_current_wal_lsn | pg_walfile_name --------------------+-------------------------- 0/D015DF8 | 00000001000000000000000D (1 row) ``` 当前使用的wal段文件是00000001000000000000000D 2. lsn与段文件关系 LSN 由3部分组成 'X/YYZZZZZZ' * X 表示WAL段文件名的中间部分,一个或两个符号; * YY 表示WAL文件名的最后一部分;一个或两个符号; * ZZZZZZ 是表示文件名内偏移量的六个符号。 如上,LSN 0/D015DF8,我们可以假设WAL文件名的中间部分将是0,最后一部分将是D,两者都是零填充到8个符号,因此分别是00000000和0000000D。它们串联在一起,为我们提供了一个以0000000 00000000D结尾的文件名。文件名的初始部分未知,初始部分代表服务器运行的时间线,在本例中为1,将零填充为其他部分,因此00000001为我们提供了最终名称00000001000000000000000D。 LSN的最后一部分是WAL文件中的偏移量,使用内置函数pg_walfile_name_offset()得到,也可转换成整数查看, ```sql postgres=# SELECT pg_walfile_name_offset('0/D015DF8'),( x'015DF8' )::int AS offset; pg_walfile_name_offset | offset ----------------------------------+-------- (00000001000000000000000D,89592) | 89592 (1 row) ``` 可以得到对应关系 | NAME | 时间线 | 中间部分 | 最后部分 | 偏移量 | | ---- | -------- | -------- | --------- | ------ | | LSN | | 0 | D | 015DF8 | | WAL | 00000001 | 00000000 | 00000000D | 89592 | :warning: 请注意,上面的示例只是展示这个概念,但是最好使用函数pg_walfile_name() 从LSN获取确切的WAL文件名,因为WAL切换可能导致LSN “手动解码” 的错误结果。 总而言之,给定一个特定的LSN,数据库能清楚地知道(而且必须清楚地知道)LSN所指的WAL文件段,以及在该文件中可以找到数据的确切偏移量。
LSN与段文件的关系
来源:这里教程网
时间:2026-03-14 20:16:52
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 2. PostgreSQL 流复制
2. PostgreSQL 流复制
26-03-14 - LSN与段文件的关系
LSN与段文件的关系
26-03-14 - 事务回卷浅析
事务回卷浅析
26-03-14 - 使用PG_STAT_REPLICATION监视复制
使用PG_STAT_REPLICATION监视复制
26-03-14 - Pgbouncer最佳实践:系列三
Pgbouncer最佳实践:系列三
26-03-14 - 【读书笔记】《PostgreSQL指南-内幕探索》-7.堆内元组和仅索引扫描
- Pgbouncer最佳实践:系列二
Pgbouncer最佳实践:系列二
26-03-14 - 云数据库PostgreSQL版重磅升级开年发布会
云数据库PostgreSQL版重磅升级开年发布会
26-03-14 - RockyLinux邮件用户管理(手把手教你配置和管理Rocky Linux邮件用户)
- 技术干货 | 阿里云数据库PostgreSQL 13大版本揭秘
技术干货 | 阿里云数据库PostgreSQL 13大版本揭秘
26-03-14
