全部產品
Search
文件中心

PolarDB:升級步驟

更新時間:Nov 26, 2025

本章節介紹了PolarDB MySQL版叢集之間升級的操作步驟。

前置檢查

檢查是否已建立PolarDB服務關聯角色

在升級之前,請先檢查是否已建立PolarDB服務關聯角色,以及是否已授予DTS訪問雲資源的許可權

  • 檢查是否已建立PolarDB服務關鍵角色

    1. 使用阿里雲帳號(主帳號)前往RAM控制台身份管理>角色列表。

    2. 檢查角色列表中,是否已存在名為AliyunServiceRoleForPolarDB的服務關聯角色,如下:image

      • 若存在,請跳過當前檢查步驟。

      • 若不存在,則繼續執行以下步驟。

    3. 單擊建立角色,在開啟的建立角色頁面中,單擊右上方的建立服務關聯角色image

    4. 在開啟的建立服務關聯角色頁面中,選擇信任的雲端服務AliyunServiceRoleForPolarDB,並單擊建立服務關聯角色以完成建立。image

  • 檢查是否已授予DTS訪問雲資源的許可權

    以下為您展示如何查看授權結果以及快速授權的方式。更多資訊,請參見授予DTS訪問雲資源的許可權

    查看授權結果

    1. 使用阿里雲帳號(主帳號)前往RAM控制台身份管理>角色列表。

    2. 檢查角色列表中,是否已存在名為AliyunDTSDefaultRole的角色,如下:image

      1. 若不存在,請前往快速授權

      2. 若存在,則繼續執行以下步驟檢查當前角色許可權。

    3. 單擊角色名稱,查看AliyunDTSDefaultRole的詳細資料。

      • 當角色AliyunDTSDefaultRole同時滿足如下條件時,表示授權成功。

        • 許可權管理中包含系統策略AliyunDTSRolePolicy

          image

        • 信任策略中包含dts.aliyuncs.com

          image

      • 當角色AliyunDTSDefaultRole不滿足上述條件時,表示授權失敗,需要重新授權。您可以刪除角色AliyunDTSDefaultRole,重新授權。

    快速授權

    使用阿里雲帳號(主帳號)訪問AliyunDTSDefaultRole快捷授權頁面,在存取控制快速授權頁面中,單擊確認授權

    說明

刪除源PolarDB MySQL版叢集中多餘系統帳號

避免遷移後目標PolarDB MySQL版叢集的系統帳號被覆蓋,源PolarDB MySQL版叢集中不允許同時存在root和aliyun_root帳號。因此,在進行升級前,請先刪除源PolarDB MySQL版叢集中多餘的系統帳號。

PolarDB MySQL版各個版本的正確系統帳號名如下:

資料庫引擎版本

正確的系統帳號名

MySQL 5.6

root

MySQL 5.7

aliyun_root

MySQL 8.0

root

在上述版本中,除相應的正確系統帳號外,其他系統帳號均需被刪除。例如,PolarDB MySQL 5.7叢集的正確系統帳號為aliyun_root。若您在控制台中手動建立了root帳號,則需將其刪除。在刪除之前,請確保您的業務中未使用root帳號。

說明

系統帳號可能是您手動建立的,也可能是系統建立並因版本升級而遺留的。在某些情況下,該帳號可能不會在控制台中顯示。

樣本

以清理PolarDB MySQL 5.6叢集中多餘系統帳號為例,具體刪除步驟如下:

  1. 使用高許可權帳號串連資料庫

  2. 找到所有的root和aliyun_root系統帳號。

    SELECT * FROM mysql.user WHERE `user` IN ('root', 'aliyun_root');
  3. 刪除多餘的系統帳號。PolarDB MySQL 5.6叢集正確的系統帳號是root,因此需要刪除aliyun_root帳號。

    DELETE FROM mysql.user WHERE `user` = 'aliyun_root' LIMIT n;

(可選)智能壓測

在執行大版本升級之前,您可以使用該智能壓測功能,類比演練您的業務流量運行在目標版本的PolarDB叢集上的情境,協助您:

  • 驗證您的叢集規格是否需要擴容,以有效應對業務流量高峰;

  • 分析原版本和目標版本的PolarDB叢集在SQL模板方面的執行效能差異等。

智能壓測詳細操作步驟請參見流量回放與壓測

步驟一:從PolarDB升級遷移

通過該步驟,您將建立一個與源PolarDB MySQL版叢集資料相同的叢集,源PolarDB MySQL版叢集的增量資料會即時同步至該叢集。

說明
  • 使用DTS遷移時,全量資料初始化時將佔用源庫和目標庫一定的讀寫資源,可能會導致資料庫的負載上升,您可按需調整遷移速率

  1. 登入PolarDB控制台

  2. 進入叢集購買頁面。您可以通過以下兩種方式中的任意一種方式進入購買頁:

    • 單擊建立新叢集

    • 單擊需要執行升級操作的叢集ID,在左側導覽列,選擇配置與管理 > 版本管理。在大版本升級頁簽,單擊遷移升級

  3. 計費類型選擇訂用帳戶隨用隨付Serverless

    • 訂用帳戶:在建立叢集時支付計算節點的費用,而儲存空間會根據實際資料量按小時計費,並從賬戶中按小時扣除。

    • 隨用隨付:無需預先支付費用,計算節點和儲存空間(根據實際資料量)均按小時計費,並從賬戶中按小時扣除。

    • Serverless:無需預先支付費用,計算節點、儲存空間、資料庫代理等資源在叢集使用過程中基於實際需求動態彈性擴縮,並根據擴縮的實際用量來計費。

  4. 根據實際使用情境,設定以下參數。

    說明

    以下表格中未詳細介紹的參數, 請參考購買叢集

    參數

    說明

    建立方式

    選擇PolarDB升級遷移

    地區

    選擇源PolarDB MySQL版叢集所在地區。

    PolarDB版本

    PolarDB MySQL版叢集的版本。您可以選擇5.6、5.7或8.0。

    PolarDB叢集

    選擇源PolarDB MySQL版叢集。

    資料庫引擎

    目的地組群的資料庫引擎版本。

      說明
      • 版本之間升級時,您可以選擇與源叢集相同的版本,也可以選擇跨版本。

      • 架構之間升級時,必須選擇MySQL 8.0

    產品版本

    與原叢集的產品版本保持一致,無需選擇。

    系列

    目的地組群的系列。

    說明
    • 版本之間升級時,選擇叢集版【推薦】

    • 架構之間升級時,選擇多主叢集(Limitless)

    CPU架構

    與原叢集的CPU架構保持一致,無需選擇。

    節點個數

    與原叢集的節點個數保持一致,無需選擇。

    當前選擇規格

    目的地組群的節點規格。

    資料庫代理類型

    與原叢集的資料庫代理規格保持一致,無需選擇。

  5. 在右上方檢查叢集配置資訊,設定購買時間長度(針對訂用帳戶叢集)、購買數量是否自動續約

  6. 閱讀並勾選服務合約。單擊立即購買

  7. 支付頁面,確認未支付訂單資訊和支付方式,單擊訂購

    說明
    • 支付成功後,需要等待10~15分鐘建立叢集,之後您就可以在叢集列表中看到新建立的叢集。

    • 當叢集中的節點狀態為建立中時,整個叢集可能仍未建立完成,此時叢集不可用。只有當叢集狀態為運行中時,叢集才可以正常使用。

    • 請確認已選中正確的地區,否則無法看到您建立的叢集。

  8. 叢集建立成功後,單擊叢集ID進入叢集基本資料頁。

  9. 基本資料頁的PolarDB升級功能地區,確認目標PolarDB叢集的複寫延遲小於60秒即可進行操作。image

    說明
    • 已存在DTS雙向同步的叢集無法進行一鍵升級,可能會出現資料不一致問題

    • 叢集建立後,DTS開始從源PolarDB叢集同步資料,您需要在30天內完成升級,超過30天將自動關閉升級功能。

    • 您可以在該地區選取項目放棄升級,放棄升級後的影響請參見常見問題

    • 若狀態顯示為預檢查失敗,請根據錯誤資訊進行處理。預檢查失敗

      例如,如果源PolarDB叢集中建立了觸發器,則預檢查會失敗並報錯“PolarDB叢集存在觸發器”。請先刪除PolarDB的觸發器,再單擊繼續升級,或單擊放棄升級後手動在DTS控制台頁面建立遷移任務。具體可參見源庫存在觸發器時如何配置同步或遷移作業

    • 架構升級時,目的地組群預設的寫入點為MasterID=1的RW節點,為確保DTS資料同步任務的正常運行,在升級完成之前,始終保持在該RW節點進行寫入。

步驟二:地址補齊(可選)

PolarDB大版本升級支援帶地址切換,您可保留資料庫原串連地址,無需應用程式修改任何串連配置即可切換至新的PolarDB。需要注意,僅當源PolarDB和目標PolarDB叢集同時存在的串連地址才支援相互切換,預設情況下目標端僅建立私網主地址和私網叢集地址,如果源端包含2個以上的串連地址,您需在切換前在目標端建立好對應的串連地址,否則不會切換。關於如何為PolarDB叢集建立串連地址,請參見管理串連地址

說明
  • 在目標端叢集會變成運行中後,才可進行地址補齊操作。此外您還可以根據業務需要,進行地址屬性配置、叢集參數配置、唯讀節點補齊等操作。

  • 使用帶地址切換交換私網地址前,請確保源PolarDB和目標端PolarDB叢集屬於同一個VPC,否則切換後原有服務將無法串連。

步驟三:升級切換

目標PolarDB叢集的複寫延遲小於60秒時,即可進行升級切換操作。

  1. 登入PolarDB控制台

  2. 找到目的地組群,單擊叢集ID。

  3. 基本資料頁面的PolarDB升級功能地區,單擊升級切換image

    說明
    • 一般情況下,升級在5分鐘之內即可完成。

    • 該操作將交換源PolarDB叢集和目標PolarDB叢集的讀寫狀態,即將源PolarDB叢集修改為唯讀,將目標PolarDB叢集修改為可讀可寫。同時,DTS會更換資料複製方向,即將目標PolarDB叢集的新增資料同步到源PolarDB叢集。

  4. 升級切換對話方塊中,選擇帶地址切換(應用程式不用改串連配置)不帶地址切換(應用程式需要改為新的PolarDB串連配置)image

    • 若您選擇帶地址切換(應用程式不用改串連配置),操作步驟如下:

      1. 選中帶地址切換(應用程式不用改串連配置)。系統會自動交換源PolarDB和目標PolarDB上的串連地址,您無需在應用程式端修改任何配置即可自動連接到目標PolarDB叢集。

        重要
        • 選擇帶地址切換(應用程式不用改串連配置)前,請務必閱讀帶地址切換注意事項

        • 如果待升級的PolarDB叢集是已有Data Transmission Service(DTS)的源叢集或目的地組群,則升級後需要將該DTS任務的源或目的地組群修改為升級後的PolarDB叢集。如資料同步任務、資料移轉任務以及資料訂閱任務等。具體請參見修改DTS任務對象

      2. 單擊確定。

    • 若您選擇不帶地址切換(應用程式需要改為新的PolarDB串連配置),操作步驟如下:

      1. 勾選不帶地址切換(應用程式需要改為新的PolarDB串連配置)。

      2. 單擊確定。

      3. 重新整理頁面,當目標PolarDB讀寫狀態顯示為讀寫後,儘快修改應用中的資料庫連接地址。

說明
  • 升級切換完成後,如果您探索資料存在異常等問題,可以進行復原操作,快速恢複至升級前的狀態也可以選擇升級復原

  • 架構升級完成並切換完成後,為避免DTS資料同步任務異常,請務必不要修改目標多主叢集(Limitless)的寫入點。

步驟四:源執行個體DTS任務切換(可選)

說明

若源執行個體存在關聯的DTS鏈路(非一鍵遷移DTS鏈路),您可使用此功能修改(替換)DTS同步或遷移任務的源或目標庫執行個體,平滑切換關聯業務,實現原理和注意事項參考修改DTS任務的源或目標庫執行個體

  1. 進入PolarDB控制台

  2. 找到目的地組群,單擊叢集的ID。

  3. 基本信息頁面的PolarDB遷移功能中,單擊源執行個體DTS任務切換image

  4. 切換業務DTS資料庫對話方塊中,選擇源執行個體DTS任務(正向切換)目標執行個體DTS任務(切換復原)

    重要

    切換前,請先檢查源執行個體和目標執行個體同步資料的DTS狀態,詳細DTS狀態查詢,請參見DTS狀態查詢

    源執行個體DTS任務(正向切換)

    若您選擇源執行個體DTS任務(正向切換),操作步驟如下:image

    1. 請選擇您需要遷移切換資料庫執行個體的DTS任務。

    2. 單擊提交正向切換

    目標執行個體DTS任務(切換復原)

    若您選擇目標執行個體DTS任務(切換復原),操作步驟如下:

    image

    1. 請選擇您需要遷移切換資料庫執行個體的DTS任務。

    2. 單擊提交切換復原

說明
  • 源執行個體DTS任務(正向切換)適用遷移切換後將源執行個體的DTS任務切換到目標執行個體,在遷移切換後,完成遷移前的DTS任務操作。

  • 目標執行個體DTS任務(切換復原)適用於切換復原後將目標執行個體的DTS任務切換回源執行個體,在切換復原後,取消遷移前操作。

步驟五:完成升級

完成步驟一:從PolarDB升級後,您需要在30天內完成升級操作。

重要
  • 請確保在單擊完成升級前,資料已完成遷移,並且後續不再使用資料同步功能。

  • 由於該操作會中斷源PolarDB叢集和目標PolarDB叢集間的資料同步任務,且不再提供升級復原功能,建議您使用一段時間目標PolarDB叢集,確認正常後再執行完成升級操作。

  1. 登入PolarDB控制台

  2. 找到目的地組群,單擊叢集ID。

  3. 基本資料頁面的PolarDB升級功能地區,單擊完成升級

  4. 完成升級對話方塊中,您可以選擇是否關閉PolarDB叢集的Binlog,並單擊確定

    說明
    • 單擊確定後,系統將在2分鐘之內中斷同步關係,升級狀態將顯示為關閉同步

    • 如果您選擇了關閉Binlog,PolarDB叢集會自動重啟使新配置生效。

    • 如果不再需要源PolarDB叢集,可以選擇釋放源PolarDB叢集。釋放叢集詳情請參見釋放叢集

    • 如果您執行的是架構升級操作,在完成升級對話方塊中單擊確定後,目的地組群的寫入點將恢複至初始狀態,即資料庫將隨機指定RW節點為寫入點。

查看資料同步任務詳情(可選)

在版本升級的過程中,若升級報錯或出現其他異常時,您可以前往對應的DTS資料同步任務詳情頁查看資料同步任務的詳細資料。

  1. 登入PolarDB控制台

  2. 找到目的地組群,單擊叢集ID。

  3. 基本資料頁面的PolarDB升級功能地區,單擊DTS資料同步任務的任務名稱,進入DTS控制台的資料同步工作清單。image

  4. 在資料同步工作清單中,找到對應的資料同步任務,您可以查看同步任務詳情和同步任務日誌等。

  5. 在升級過程中,如果需求有調整(如源PolarDB叢集有新增庫時,需要將新增加的庫也納入同步對象),您可以單擊修改同步對象來重新設定。

升級復原(可選)

在完成升級之前,如果您探索資料存在異常等問題,可以執行升級復原操作,將叢集快速恢複至升級前的狀態(源PolarDB叢集為可讀可寫,目標PolarDB叢集為唯讀,同時會將源PolarDB叢集的資料同步至目標PolarDB叢集)。升級復原完成後,如果需要繼續執行大版本升級操作,您可以直接從步驟三:升級切換操作開始執行。

  1. 登入PolarDB控制台

  2. 找到目的地組群,單擊叢集ID。

  3. 基本資料頁面的PolarDB升級功能地區,單擊升級復原

  4. 在開始回切對話方塊中,選擇帶地址回切(應用程式不用改串連配置)不帶地址回切(應用程式需要改為源執行個體串連配置)

    • 若您選擇帶地址回切(應用程式不用改串連配置),操作步驟如下:

      1. 選中帶地址回切(應用程式不用改串連配置),系統會自動交換源PolarDB叢集和目標PolarDB叢集上的串連地址,你無需在應用程式端修改任何配置即可自動回切到源PolarDB叢集。

      2. 單擊確定

        此時,源PolarDB叢集為可讀可寫,目標PolarDB叢集為唯讀,同時會將源PolarDB叢集的資料同步到目標PolarDB叢集。

        說明

        執行架構升級復原操作時,您可以根據需要選擇復原地址。

    • 若您選擇不帶地址回切(應用程式需要改為源叢集串連配置),操作步驟如下:

      1. 選中不帶地址回切(應用程式需要改為源叢集串連配置),在升級切換完成後,您需要儘快修改應用程式端的資料庫連接池地址。

      2. 單擊確定,此時,源PolarDB叢集為可讀可寫,目標PolarDB叢集為唯讀,同時會將源PolarDB叢集的資料同步至目標PolarDB叢集。

      3. 重新整理頁面,當源PolarDB叢集的狀態顯示為讀寫後,請儘快修改應用程式中的資料庫連接地址為源PolarDB叢集的串連地址。

取消升級(可選)

  1. 登入PolarDB控制台

  2. 找到目的地組群,單擊叢集ID。

  3. 基本資料頁面的PolarDB升級功能地區,單擊取消升級

  4. 取消升級頁面的對話方塊中,單擊確定image

常見問題

在進行大版本升級時,如果源PolarDB叢集中已建立觸發器,這是否會對升級任務產生影響?

會。如果源PolarDB叢集中建立了觸發器,則在升級步驟一(從PolarDB升級遷移)中出現预检查失败狀態。您需要先刪除觸發器,在進行大版本升級。升級完成後,可在目標PolarDB叢集中手動建立觸發器。

如何查詢源PolarDB叢集中的觸發器?

您可以查詢information_schema.triggers表來查看源PolarDB叢集中的觸發器。

SELECT * FROM information_schema.triggers;

如何刪除源PolarDB叢集中的觸發器?

您可以通過以下SQL語句產生刪除觸發器的相關SQL語句。

重要

在釋放觸發器之前,請仔細核對觸發器對您業務的潛在影響,並對相關觸發器進行備份。在完成大版本升級後,在目標PolarDB叢集中手動建立相應的觸發器。

SELECT TRIGGER_SCHEMA,concat('DROP TRIGGER ',TRIGGER_SCHEMA,'.',TRIGGER_NAME,';') FROM information_schema.triggers;

返回樣本如下,您可以複製並執行以下SQL語句以刪除相應的觸發器。其中,TRIGGER_SCHEMA為觸發器所屬庫名。

+----------------+-------------------------------------------------------------+
| TRIGGER_SCHEMA | concat('DROP TRIGGER ',TRIGGER_SCHEMA,'.',TRIGGER_NAME,';') |
+----------------+-------------------------------------------------------------+
| test_triggers  | DROP TRIGGER test_triggers.xxx_insert;                      |
| test_triggers  | DROP TRIGGER test_triggers.xxx_update;                      |
| test_triggers  | DROP TRIGGER test_triggers.xxx_delete;                      |
+----------------+-------------------------------------------------------------+