diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index a02eebc..eaee05c 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -4939,7 +4939,8 @@ StartupXLOG(void) ereport(LOG, (errmsg("starting archive recovery"))); } - else if (ControlFile->minRecoveryPointTLI > 0) + else if (ControlFile->minRecoveryPointTLI > 0 && + ControlFile->state != DB_SHUTDOWNED_IN_RECOVERY) { /* * If the minRecoveryPointTLI is set when not in Archive Recovery @@ -6833,7 +6834,7 @@ CreateCheckPoint(int flags) XLogRecPtr curInsert; INSERT_RECPTR(curInsert, Insert, Insert->curridx); - if (curInsert == ControlFile->checkPoint + + if (curInsert == ControlFile->checkPoint + MAXALIGN(SizeOfXLogRecord + sizeof(CheckPoint)) && ControlFile->checkPoint == ControlFile->checkPointCopy.redo) {