重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一、问题: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为该时间线。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。