全部產品
Search
文件中心

PolarDB:升級步驟

更新時間:Aug 06, 2026

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

前置檢查

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

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

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

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

    2. 檢查角色列表中,是否已存在名為AliyunServiceRoleForPolarDB的服務關聯角色,如下:在搜尋方塊中輸入角色名稱 AliyunServiceRoleForPolarDB 進行搜尋,確認列表中存在該服務關聯角色。

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

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

    3. 單擊建立角色,在開啟的建立角色頁面中,單擊右上方的创建服务关联角色。

    4. 在開啟的创建服务关联角色頁面中,選擇信任的雲端服務為AliyunServiceRoleForPolarDB,並單擊创建服务关联角色以完成建立。

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

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

    查看授權結果

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

    2. 檢查角色列表中,是否已存在名為AliyunDTSDefaultRole的角色,如下:在搜尋方塊中輸入 AliyunDTSDefaultRole,確認該角色是否存在於角色列表中。

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

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

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

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

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

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

          即信任策略 JSON 中 Principal 的 Service 欄位包含 dts.aliyuncs.com,Action 為 sts:AssumeRole,Effect 為 Allow。

      • 當角色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. 在叢集列表頁上方,單擊建立新叢集,進入叢集購買頁面。

  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分鐘建立叢集,之後您就可以在叢集列表中看到新建立的叢集。

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

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

    • 若預檢查失敗,目標執行個體將保持建立中狀態,升級流程無法自動推進。請根據錯誤資訊處理預檢查失敗項後,單擊繼續升級按鈕以推進流程。此時建立時間長度可能超過 15 分鐘,屬正常現象。

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

  9. 在基本信息頁的PolarDB升级功能地區,確認目標PolarDB叢集的复制延迟小於60秒即可進行操作。

    說明
    • 已存在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升级功能地區,單擊升级切换。

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

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

  4. 在升级切换對話方塊中,選擇帶地址切換(應用程式不用改串連配置)或不帶地址切換(應用程式需要改為新的PolarDB串連配置)。對話方塊中展示了源PolarDB串連地址與目標連結地址的映射關係。

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

      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任务切换。

  4. 在切換業務DTS資料庫對話方塊中,選擇源实例DTS任务(正向切换)或目标实例DTS任务(切换回滚)。

    重要

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

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

    若您選擇源实例DTS任务(正向切换),操作步驟如下:此時顯示DTS工作清單,包含DTS任務名、同步狀態、源庫執行個體和目標庫執行個體等列。

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

    2. 單擊提交正向切换。

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

    若您選擇目标实例DTS任务(切换回滚),操作步驟如下:

    操作介面與源執行個體DTS任務(正向切換)頁簽類似,此處顯示需要切換復原的DTS工作清單。

    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控制台的資料同步工作清單。

  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. 在取消升级頁面的對話方塊中,單擊确定。對話方塊中說明取消升級將中斷源叢集與目標執行個體間的資料同步,您可根據需要勾選關閉目標執行個體的Binlog選項。

說明

取消升級後,建立的目標 PolarDB 叢集不會自動釋放,也不會自動退款。系統僅會切斷源叢集與目的地組群之間的 DTS 同步鏈路,目的地組群將恢複為獨立的正常叢集並繼續計費。您需要手動釋放該叢集以停止計費(隨用隨付叢集),或自行處理訂用帳戶叢集。

常見問題

在進行大版本升級時,如果源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;                      |
+----------------+-------------------------------------------------------------+

PolarDB 大版本升級過程中自動建立的 DTS 全量同步任務是否支援暫停和恢複?

不支援暫停。升級過程中自動建立的 DTS 全量同步任務是升級流程的關鍵組成部分。手動暫停會導致升級流程中斷、資料不一致或任務失敗。

若您擔心 DTS 同步任務對源叢集效能產生影響,可以選擇取消整個升級計劃,但無法實現暫停後恢複繼續同步。

PolarDB MySQL 5.7 標準版能否通過一鍵升級功能直接升級到 8.0 企業版?

不支援。PolarDB MySQL 5.7 標準版無法通過一鍵升級功能直接升級至 8.0 企業版。不同系列(標準版與企業版)之間不支援跨系列升級。

如果您需要從標準版遷移至企業版,請建立一個 8.0 企業版叢集,並通過 DTS 將資料從標準版叢集遷移至新的企業版叢集。具體操作請參見PolarDB MySQL版間遷移。

PolarDB MySQL 叢集是否支援單獨升級唯讀節點的大版本?

不支援。PolarDB MySQL 叢集不支援單獨升級唯讀節點的大版本(例如僅將唯讀節點從 5.7 升級到 8.0,而主節點保持 5.7)。整個叢集(包括主節點和所有隻讀節點)必須運行在同一核心大版本下,否則會導致儲存格式不相容、日誌解析錯誤或複製中斷。

如需升級,請執行整個叢集的大版本升級操作。