時間:2024-02-13 10:22作者:下載吧人氣:16
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”)));
}
}
網友評論