PostgreSQL问题分析1:时间线不一致
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,一、问题:requested timeline %u does not contain minimum recovery point %X/%X on timeline %u该日志在代码中的位置如下:
千家信息网最后更新 2024年11月22日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安全错误
数据库的锁怎样保障安全
江苏高校党建软件开发哪儿好
e3服务器
长宁区专业网络技术型号
数据库 性能优化
qt 数据库源码编译
学软件开发要学会哪些基础
软件开发工作文案
抖个赞软件开发
福建省电信网络安全保障中心
服务器怎么代理游戏
怎么获取服务器发出来的信息
怎么看数据库主机内存
数据库查询唯一和排序语句
摄影app软件开发
iis服务器的安全配置
朝阳区运营网络技术咨询口碑推荐
获取服务器目录信息失败
应用云数据库和云计算技术
我的世界服务器免费
宜兴口碑好的网络技术创新服务
上海电脑软件开发收费报价表
菏泽微信公众号软件开发推荐
金口碑网络技术服务是什么公司
为什么soul显示连接服务器
第二章数据库宠物商店
金融科技对互联网公司
sql数据库782版本
深圳java软件开发
趣步类软件开发需要多久
网络安全责任分配的原则