软件下载吧文章资讯

分类分类

PostgreSQL实战之启动恢复读取checkpoint记录失败的条件详解

2024-02-13 10:22作者:下载吧

1、首先读取ControlFile->checkPoint指向的checkpoint

2、如果读取失败,slave直接abort退出,master再次读取ControlFile->prevCheckPoint指向的checkpoint

StartupXLOG->
|–checkPointLoc = ControlFile->checkPoint;
|–record = ReadCheckpointRecord(xlogreader, checkPointLoc, 1, true):
|– if (record != NULL){

}else if (StandbyMode){
ereport(PANIC,(errmsg(“could not locate a valid checkpoint record”)));
}else{
checkPointLoc = ControlFile->prevCheckPoint;
record = ReadCheckpointRecord(xlogreader, checkPointLoc, 2, true);
if (record != NULL){
InRecovery = true;//标记下面进入recovery
}else{
ereport(PANIC,(errmsg(“could not locate a valid checkpoint record”)));
}
}

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消