当前位置: 首页 > news >正文

网站建设制作优化推广类电商文案

网站建设制作优化,推广类电商文案,网站后台管理器怎么做,东营网站建设优化1. 问题现象:备库升主后查询的WAL文件名时间线不符 某次主备切换后,执行以下操作: 原主库时间线为00000001,备库正常同步。 记录一个lsn和对应的wal日志 select sys_current_wal_lsn(); SELECT sys_walfile_name(0/BD49920);主…
1. 问题现象:备库升主后查询的WAL文件名时间线不符

某次主备切换后,执行以下操作:

  1. 原主库时间线为00000001,备库正常同步。
    记录一个lsn和对应的wal日志
select sys_current_wal_lsn();
SELECT sys_walfile_name('0/BD49920');

在这里插入图片描述
在这里插入图片描述

  1. 主库故障,触发备库升主,新主库时间线变为00000002
  2. 在新主库上,尝试查询旧LSN0/BD49920)对应的WAL文件名:
    SELECT sys_walfile_name('0/BD49920');
    -- 返回结果:00000002000000000000000B
    

在这里插入图片描述

  1. 检查旧主库的WAL日志,发现实际文件名应为00000001000000000000000B
    现象总结
    函数返回的时间线(00000002)与LSN实际所属的时间线(00000001)不符!

2. 问题分析:为什么会时间线对不上?
2.1 时间线的核心作用
  • **时间线(Timeline)**是kingbaseES的“版本分支标识”。
  • 每次主备切换会生成新时间线(如0000000100000002),防止WAL日志覆盖或混淆历史数据分支。
  • 关键规则:新时间线的WAL文件名必须包含新的时间线号,且旧时间线的WAL日志会保留。
2.2 sys_walfile_name()的设计限制
  • 函数逻辑:仅通过数学公式计算LSN对应的文件名,不检查历史时间线!
    文件名 = 时间线(8位) + 逻辑日志号(8位) + 段号(8位)
    
  • 存在的问题:函数输出的时间线部分始终是当前数据库的时间线,而非LSN实际所属的时间线。
  • 本例问题:新主库时间线为00000002,函数强制将任何LSN的时间线部分填充为00000002,导致结果错误。
2.3 时间线切换记录在哪里?
  • 每次时间线切换会生成.history文件(如sys_wal/00000002.history),记录时间线切换点的LSN。
  • 此文件是追踪LSN与时间线映射关系的唯一依据,但sys_walfile_name()未关联此信息!
    在这里插入图片描述

3. 解决方案:如何正确获取历史LSN对应的WAL文件名?
3.1 手动查询时间线历史

定位时间线切换点

-- 查询新时间线对应的.history文件
SELECT * FROM sys_read_file('pg_wal/00000003.history') AS tli_history;

输出示例
在这里插入图片描述

  • 含义:时间线00000002从LSN 0/D0000A0开始生效。
  • 若目标LSN(如0/BD49920)小于0/D0000A0,则属于旧时间线00000001
3.2 使用工具解析WAL元数据

通过sys_waldump直接解析WAL文件,查看LSN与时间线的真实关系:

./sys_waldump ../data/sys_wal/00000001000000000000000B

输出中会明确显示时间线信息:

[kingbase@localhost bin]$ ./sys_waldump ../data/sys_wal/00000001000000000000000B |grep 'BD49920'
rmgr: Heap        len (rec/tot):     56/  2226, tx:       1131, lsn: 0/0BD49920, prev 0/0BD498F0, desc: INSERT off 177 flags 0x00, blkref #0: rel 1663/14731/16467 blk 4424 FPW
rmgr: Heap        len (rec/tot):     59/    59, tx:       1131, lsn: 0/0BD4A1F0, prev 0/0BD49920, desc: INSERT off 178 flags 0x00, blkref #0: rel 1663/14731/16467 blk 4424...
3.3 理解函数的使用场景
  • 适用场景:查询当前时间线下新生成的LSN对应的WAL文件名(例如当前事务的LSN)。
  • 不适用场景:查询历史LSN或跨时间线的WAL文件名。

4. 注意事项
  1. 主备切换后的WAL生成规则
    • 新主库生成的WAL文件名时间线号一定比旧主库大。
    • 旧时间线的WAL文件不会被删除,但新主库不会写入旧时间线文件。
  2. 若使用sys_walfile_name()查询历史LSN需注意
    • 该函数仅用于计算,不关联历史时间线数据。

5. 总结
  • 核心原因sys_walfile_name()函数设计上不关联时间线历史,仅依赖当前时间线生成文件名。
  • 正确姿势
    • 查询历史LSN时,需结合.history文件或工具解析。
    • 将该函数仅用于当前时间线的LSN计算(如监控当前WAL生成状态)。
http://www.dtcms.com/a/602080.html

相关文章:

  • 网站空间购买价格电子商务以后能干什么
  • C语言编译预处理 | 探索C语言编译过程中的预处理环节
  • kubernetes(k8s)-扩缩容(工作负载HPA、节点)
  • 广告设计网站官网北京小程序定制开发
  • 做网站怎样收费的怎样更换网站模板
  • 狸窝转换器将MP4格式视频转换为以下格式后的大小对比:RM、RMVB、AVI、MKV、WMV、VOB、MOV、FLV、ASF、DAT、3GP、MPG、MPEG
  • 【QT/C++】Qt样式设置之CSS知识(系统性概括)
  • 《华为应用市场编程工具上架深度拆解:鸿蒙适配与合规实战指南》
  • 29.删除链表的倒数第 N 个结点
  • 做黑帽需不需要搭建网站o2o的四种营销模式
  • 中英文的网站是怎么做的中国建设官网信息查询
  • 大航母网站建设流程黑龙江网站制作平台
  • C语言编译软件文档 | 如何高效使用C语言编译工具,提升编程效率
  • Android ROOM 数据库
  • 从红军城烽火到无人机时代:两场战争的跨越与现代军事启示
  • 营口网站seo网站开发的相关网站
  • 解决PyQt6安装失败:文件重命名权限错误与缓存清理方法
  • 第五章:MySQL DQL 进阶 —— 动态计算与分类(IF 与 CASE WHEN)多表查询
  • 【SQL server】不同平台相同数据库之间某个平台经常性死锁
  • Ubuntu系统安装.NET SDK 7.0
  • 基于深度学习与MATLAB的脑电信号情绪识别系统
  • 十大旅游电子商务网站wordpress 国内 慢
  • 大连网站制作姚喜运成都网页设计培训班
  • Apache POI
  • 某景区网站建设策划书利用codeing做网站
  • rhce作业
  • 网页网站原型图占位符怎么做定制一个微信小程序要多少钱
  • Python-PLAXIS自动化建模技术与典型岩土工程案例
  • 4-ARM-PEG-Fmoc protected Amine(2),合成设计思路与路线选择
  • 自主可控背景下MCU芯片的替代之路:从ARM到RISC-V的机遇与挑战