PostgreSQL啟動恢複期間,恢複到的時間軸的確定

來源:互聯網
上載者:User

標籤:rom   style   最大的   時間   ttl   find   ntc   head   start   

1、啟動恢複時,確定恢複到的時間軸recoveryTargetTLI

1)歸檔復原點比checkpoint中記錄的時間軸大,那麼選擇歸檔復原點作為目標時間軸

2)否則,checkpoint記錄中的時間軸作為目標時間軸

StartupXLOG->if (ControlFile->minRecoveryPointTLI >ControlFile->checkPointCopy.ThisTimeLineID)recoveryTargetTLI = ControlFile->minRecoveryPointTLI;elserecoveryTargetTLI = ControlFile->checkPointCopy.ThisTimeLineID;...

2、接著從recovery.conf檔案中讀取

1)若設定了recovery_target_timeline值,並且設為latest,那麼history列表最大的時間軸即為目標時間軸

2)否則是recovery.conf檔案中設定的時間軸值

3)若沒有設定recovery_target_timeline值,則目標時間軸為第一步中的值

StartupXLOG->readRecoveryCommandFile()->for (item = head; item; item = item->next){if (strcmp(item->name, "restore_command") == 0){...}else if ...else if(strcmp(item->name, "recovery_target_timeline") == 0){rtliGiven = true;if (strcmp(item->value, "latest") == 0)rtli = 0;elsertli = (TimeLineID) strtoul(item->value, NULL, 0);}else if...}if (rtliGiven){if (rtli){recoveryTargetTLI = rtli;recoveryTargetIsLatest = false;}else{/* We start the "latest" search from pg_control's timeline */recoveryTargetTLI = findNewestTimeLine(recoveryTargetTLI);recoveryTargetIsLatest = true;}}


PostgreSQL啟動恢複期間,恢複到的時間軸的確定

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.