PostgreSQL问题分析1:时间线不一致
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,一、问题:requested timeline %u does not contain minimum recovery point %X/%X on timeline %u该日志在代码中的位置如下:
千家信息网最后更新 2025年11月07日PostgreSQL问题分析1:时间线不一致
一、问题:requested timeline %u does not contain minimum recovery point %X/%X on timeline %u
该日志在代码中的位置如下:
StartupXLOG: if (!XLogRecPtrIsInvalid(ControlFile->minRecoveryPoint) && tliOfPointInHistory(ControlFile->minRecoveryPoint - 1, expectedTLEs) != ControlFile->minRecoveryPointTLI) ereport(FATAL, (errmsg("requested timeline %u does not contain minimum recovery point %X/%X on timeline %u", recoveryTargetTLI, (uint32) (ControlFile->minRecoveryPoint >> 32), (uint32) ControlFile->minRecoveryPoint, ControlFile->minRecoveryPointTLI)));二、分析
recoveryTargetTLI这个值是什么呢?
1、改值在启动恢复过程中变化如下:
StartupXLOG: ... if (ControlFile->minRecoveryPointTLI > ControlFile->checkPointCopy.ThisTimeLineID) recoveryTargetTLI = ControlFile->minRecoveryPointTLI; else recoveryTargetTLI = ControlFile->checkPointCopy.ThisTimeLineID; readRecoveryCommandFile(); |-- for (item = head; item; item = item->next){ | ... | else if (strcmp(item->name, "recovery_target_timeline") == 0){ | rtliGiven = true; | if (strcmp(item->value, "latest") == 0) | rtli = 0; | else | rtli = (TimeLineID) strtoul(item->value, NULL, 0); | } | ... | } | ... | if (rtliGiven){ | if (rtli){ | recoveryTargetTLI = rtli; | recoveryTargetIsLatest = false; | }else{ | recoveryTargetTLI = findNewestTimeLine(recoveryTargetTLI); | recoveryTargetIsLatest = true; | } |-- }首先,pg_control文件记录的最小恢复点时间线ControlFile->minRecoveryPointTLI会和pg_control文件记录的checkpoint的的时间线 ControlFile->checkPointCopy.ThisTimeLineID比较,recoveryTargetTLI取两者之间较大值。
然后readRecoveryCommandFile会读取recovery.cnf文件,如果是主机则没有recovery.cnf文件。recovery.cnf文件中recovery_target_timeline的值指定恢复到的时间线,如果是latest则时间线rtli为0否则为其指定值;如果rtli是指定值,则recoveryTargetTLI为指定值,否则从第一步获取的recoveryTargetTLI值+1开始,看是否有其对于的history文件,找到最大时间线对于的history文件,recoveryTargetTLI为该时间线。
文件
时间
问题
分析
最大
最小
较大
主机
之间
代码
位置
过程
变化
一致
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手机连接电脑服务器
华南理工大学数据库停定
数据库正在使用无法复制
dbc数据库修改佩戴位置
2020湘西州网络安全周
2021国家网络安全宣传周图标
威海网络安全等级保护
配电网数据库是什么
路由器连接不上DNS服务器
计算机网络技术项目简介范文
软件开发的出路到底在哪里
计算机网络技术和移动互联网
轻量云服务器有安全组吗
软件开发毕业生找工作经验
基岩版1.18 服务器
福州安卓智能软件开发公司
网络安全威胁的被动攻击
南宁市江南网络安全大队
成都西门软件开发公司太少
局域网怎么保存服务器登录密码
网络安全防护的效能评估
服务器ping延迟高cpu正常
178数据库用不了
网络安全漏洞指什么
数据库服务器时区乱码
中小企业服务器
认识数据库的主要工具
无标题数据库的语言操作
四级网络技术机考有题库吗
软件开发工程师薪资构成