全部產品
Search
文件中心

ApsaraDB RDS:零停機資料庫大版本升級最佳實務

更新時間:Jul 09, 2025

本文介紹如何以零停機的方式對RDS PostgreSQL資料庫進行大版本升級。

升級流程

  1. 升級前檢查

  2. 建立零停機升級任務

  3. 切換到高版本執行個體

不同升級階段對執行個體的影響

升級階段

影響

開始大版本升級

禁止進行任何DDL操作。

建立複製槽和發布

  • 禁止進行任何DDL操作。

  • 出現WAL日誌堆積。

訂閱端啟動並建立邏輯複製關係

  • 禁止進行任何DDL操作。

  • WAL日誌開始被消費,不再堆積。

  • 邏輯複製將產生一定的資源負載(與資料庫數量及流量密切相關)。

開始切換

  • 禁止進行任何DDL操作。

  • 邏輯複製將產生一定的資源負載(與資料庫數量及流量密切相關)。

  • 執行個體唯讀(唯讀時間與Sequence數量相關)。

完成切換(升級完成)

  • 邏輯複製槽被刪除,邏輯複製所產生的資源負載被消除。

  • 執行個體恢複正常讀寫。

升級任務開始後,在升级历史頁簽,單擊目標升級任務升級日誌列的查看資訊,即可查看詳細的升級過程。

步驟一:升級前檢查

  1. 訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在左側導覽列單擊大版本升級

    說明

    如果左側導覽列中沒有大版本升級,請檢查RDS PostgreSQL執行個體版本及配置,具體請參見前提條件

  3. 升级检查頁簽中,單擊创建升级检查报告

  4. 擇選升級版本,且升级模式選擇零停機後,單擊確定

    此時,執行個體狀態變為實例維護中,待升級檢查完成後,執行個體狀態會變為執行中

    當升級檢查報告結果為成功警告時,可以進行後續的大版本升級步驟;若結果為失败,則需單擊查看資訊,根據報告內容修複異常檢查項後,再次進行升級前檢查。常見的報錯及原因請參見解讀RDS PostgreSQL大版本升級檢查報告

    重要
    • 為確保升級順利完成,當升級檢查報告的檢查結果為警告時,建議根據報告內容修複異常檢查項後,再次進行升級前檢查,直至檢查結果為成功

    • 升級檢查成功後,如果在主執行個體中建立了外掛程式,需重新執行檢查。

步驟二:升級大版本

  1. 單擊升级实例頁簽,閱讀警告內容,然後選擇升級版本,並單擊建立升級任務

  2. 在彈出的視窗中,閱讀提示內容,然後單擊確定

  3. 建立大版本升級任務地區,選擇升级模式零停機

  4. 單擊立即建立

    當執行個體狀態變為遷移中時,表示升級任務已正式啟動。

    升級所需時間與執行個體中的資料庫物件數量密切相關,資料庫物件數量越多,升級所需時間越長。在進行大版本升級時,您可以在工作中樞查看升級進度。

    重要
    • 升級任務建立後不支援修改或刪除

    • 原執行個體狀態為遷移中時,該執行個體不支援修改參數、重啟、釋放等營運操作。

監控執行個體負載

在升級過程中,您可以監控執行個體的負載情況和磁碟使用率,以瞭解執行個體的效能狀態。

  • 在WAL日誌堆積期間,執行個體的磁碟使用率會暫時上升。建立邏輯複製後,磁碟佔用將會降低。

  • 在邏輯複製階段,流量和資料庫數量會對源執行個體的負載產生影響。可以通過觀察各類資源下wal_sender的資源佔用率來評估邏輯複製的影響。

步驟三:切換到高版本

  1. 驗證高版本執行個體。

    當執行個體狀態將從遷移中轉變為遷出資料中時,表示邏輯複製已搭建完成,建立升級任務的過程將結束,您可以驗證高版本執行個體的資料。

    進入升级历史頁簽,使用目標升級記錄的高版本驗證地址串連至高版本執行個體,以驗證升級後的資料。

    說明

    高版本執行個體為唯讀模式,無法進行寫入操作。

  2. 切換到高版本執行個體。

    確定高版本執行個體的資料符合預期後,且升級結果同步中時,單擊升級日誌列的切換,將業務切換到高版本執行個體。

    說明
    • 如果升級結果為其他狀態,請參見升級結果說明進行處理。

    • 如果您決定放棄本次升級,可以單擊升級日誌列的取消。這將刪除邏輯複製槽,取消邏輯複製對源執行個體的影響,並允許其執行DDL操作。

  3. 切換彈窗中設定容忍停寫時間(單位:秒),並單擊確定

    升級結果變為唯讀時,表示進行中切換,此時執行個體狀態為遷移中時。在大版本升級升级历史頁簽,單擊升級日誌列的中斷按鈕,取消此次切換操作。

    說明

    可以通過在切換時設定容忍停寫時間,主動等待覆制延遲消除,保障資料一致性。在此過程中,升級結果將變為唯讀。如果超出此時間,則系統將返回到同步中狀態,並解除唯讀限制。

  4. 查看切換結果。

    升級結果變為成功時,表示切換成功,當執行個體狀態為執行中時。

    在執行個體基本資料頁,可以查看執行個體當前的版本資訊。

    說明

    升級完成後,在升级历史頁簽,單擊目標升級任務升級日誌列的查看資訊,即可查看升級過程中執行個體的唯讀時間及詳細的升級過程。其中唯讀時間為切換時間切換完成時間之間的時段,此時間段不包括因DNS緩衝未重新整理而導致無法串連的時間。

復原

切換後,如需復原至低版本執行個體,可通過切換前的最後一次低版本備份複製新的執行個體,並將該執行個體的串連地址修改改為舊執行個體的串連地址,以實現復原至低版本。

說明

切換前,系統會對低版本執行個體進行備份。

升級結果說明

升級過程中,升级历史頁簽的升級記錄中,包含以下升級結果

升級結果

執行個體狀態

含義

可執行動作

運行中

遷移中

升級任務正在運行。

無。

同步中

遷出資料中

邏輯複製狀態正常。

  • 切換:切換到高版本執行個體。

  • 取消:放棄本次升級。

複製斷開

遷出資料中

邏輯複製狀態異常。

  • 查看升級日誌確定複製異常原因。

  • 取消:放棄本次升級。

唯讀

遷移中

正在切換,執行個體為唯讀模式,並且正在同步Sequence。

中斷:取消此次切換操作。

切換

遷移中

Sequence同步已完成,現正進行收尾工作。

無。

取消

執行中

升級任務取消。

無。

成功

執行中

升級任務成功。

無。

相關文檔