本章節介紹了PolarDB MySQL版叢集之間升級的操作步驟。
前置檢查
檢查是否已建立PolarDB服務關聯角色
在升級之前,請先檢查是否已建立PolarDB服務關聯角色,以及是否已授予DTS訪問雲資源的許可權。
刪除源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叢集中多餘系統帳號為例,具體刪除步驟如下:
-
使用高許可權帳號串連資料庫。
-
找到所有的root和aliyun_root系統帳號。
SELECT * FROM mysql.user WHERE `user` IN ('root', 'aliyun_root'); -
刪除多餘的系統帳號。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遷移時,全量資料初始化時將佔用源庫和目標庫一定的讀寫資源,可能會導致資料庫的負載上升,您可按需調整遷移速率。
-
登入PolarDB控制台。
-
在叢集列表頁上方,單擊建立新叢集,進入叢集購買頁面。
-
計費類型選擇訂用帳戶、隨用隨付或Serverless。
-
訂用帳戶:在建立叢集時支付計算節點的費用,而儲存空間會根據實際資料量按小時計費,並從賬戶中按小時扣除。
-
隨用隨付:無需預先支付費用,計算節點和儲存空間(根據實際資料量)均按小時計費,並從賬戶中按小時扣除。
-
Serverless:無需預先支付費用,計算節點、儲存空間、資料庫代理等資源在叢集使用過程中基於實際需求動態彈性擴縮,並根據擴縮的實際用量來計費。
-
-
根據實際使用情境,設定以下參數。
說明以下表格中未詳細介紹的參數, 請參考購買叢集。
參數
說明
创建方式
選擇從PolarDB升級遷移。
地域
選擇源PolarDB MySQL版叢集所在地區。
源PolarDB版本
源PolarDB MySQL版叢集的版本。您可以選擇5.6、5.7或8.0。
源PolarDB叢集
選擇源PolarDB MySQL版叢集。
数据库引擎
目的地組群的資料庫引擎版本。
-
版本之間升級時,您可以選擇與源叢集相同的版本,也可以選擇跨版本。
-
架構之間升級時,必須選擇MySQL 8.0。
說明产品版本
與原叢集的產品版本保持一致,無需選擇。
系列
目的地組群的系列。
說明-
版本之間升級時,選擇叢集版【推薦】。
-
架構之間升級時,選擇多主叢集(Limitless)。
CPU架构
與原叢集的CPU架構保持一致,無需選擇。
节点个数
與原叢集的節點個數保持一致,無需選擇。
當前選擇規格
目的地組群的節點規格。
資料庫代理類型
與原叢集的資料庫代理規格保持一致,無需選擇。
-
-
在右上方檢查叢集配置資訊,設定購買時間長度(針對訂用帳戶叢集)、购买数量和是否自动续费。
-
閱讀並勾選服務合約。單擊立即购买。
-
在支付頁面,確認未支付訂單資訊和支付方式,單擊訂購。
說明-
支付成功後,需要等待10~15分鐘建立叢集,之後您就可以在叢集列表中看到新建立的叢集。
-
當叢集中的節點狀態為建立中時,整個叢集可能仍未建立完成,此時叢集不可用。只有當叢集狀態為運行中時,叢集才可以正常使用。
-
請確認已選中正確的地區,否則無法看到您建立的叢集。
-
-
叢集建立成功後,單擊叢集ID進入叢集基本資料頁。
-
在基本信息頁的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秒時,即可進行升級切換操作。
-
登入PolarDB控制台。
-
找到目的地組群,單擊叢集ID。
-
在基本信息頁面的PolarDB升级功能地區,單擊升级切换。
說明-
一般情況下,升級在5分鐘之內即可完成。
-
該操作將交換源PolarDB叢集和目標PolarDB叢集的讀寫狀態,即將源PolarDB叢集修改為唯讀,將目標PolarDB叢集修改為可讀可寫。同時,DTS會更換資料複製方向,即將目標PolarDB叢集的新增資料同步到源PolarDB叢集。
-
-
在升级切换對話方塊中,選擇帶地址切換(應用程式不用改串連配置)或不帶地址切換(應用程式需要改為新的PolarDB串連配置)。對話方塊中展示了源PolarDB串連地址與目標連結地址的映射關係。
-
若您選擇帶地址切換(應用程式不用改串連配置),操作步驟如下:
-
選中帶地址切換(應用程式不用改串連配置)。系統會自動交換源PolarDB和目標PolarDB上的串連地址,您無需在應用程式端修改任何配置即可自動連接到目標PolarDB叢集。
-
單擊確定。
-
-
若您選擇不帶地址切換(應用程式需要改為新的PolarDB串連配置),操作步驟如下:
-
勾選不帶地址切換(應用程式需要改為新的PolarDB串連配置)。
-
單擊確定。
-
重新整理頁面,當目標PolarDB讀寫狀態顯示為讀寫後,儘快修改應用中的資料庫連接地址。
-
-
-
升級切換完成後,如果您探索資料存在異常等問題,可以進行復原操作,快速恢複至升級前的狀態也可以選擇升級復原。
-
架構升級完成並切換完成後,為避免DTS資料同步任務異常,請務必不要修改目標多主叢集(Limitless)的寫入點。
步驟四:源執行個體DTS任務切換(可選)
若源執行個體存在關聯的DTS鏈路(非一鍵遷移DTS鏈路),您可使用此功能修改(替換)DTS同步或遷移任務的源或目標庫執行個體,平滑切換關聯業務,實現原理和注意事項參考修改DTS任務的源或目標庫執行個體。
-
進入PolarDB控制台。
-
找到目的地組群,單擊叢集的ID。
-
在基本信息頁面的PolarDB遷移功能中,單擊源实例DTS任务切换。
-
在切換業務DTS資料庫對話方塊中,選擇源实例DTS任务(正向切换)或目标实例DTS任务(切换回滚)。
重要切換前,請先檢查源執行個體和目標執行個體同步資料的DTS狀態,詳細DTS狀態查詢,請參見DTS狀態查詢。
源執行個體DTS任務(正向切換)
若您選擇源实例DTS任务(正向切换),操作步驟如下:此時顯示DTS工作清單,包含DTS任務名、同步狀態、源庫執行個體和目標庫執行個體等列。
-
請選擇您需要遷移切換資料庫執行個體的DTS任務。
-
單擊提交正向切换。
目標執行個體DTS任務(切換復原)
若您選擇目标实例DTS任务(切换回滚),操作步驟如下:
操作介面與源執行個體DTS任務(正向切換)頁簽類似,此處顯示需要切換復原的DTS工作清單。
-
請選擇您需要遷移切換資料庫執行個體的DTS任務。
-
單擊提交切换回滚。
-
-
源執行個體DTS任務(正向切換)適用遷移切換後將源執行個體的DTS任務切換到目標執行個體,在遷移切換後,完成遷移前的DTS任務操作。
-
目標執行個體DTS任務(切換復原)適用於切換復原後將目標執行個體的DTS任務切換回源執行個體,在切換復原後,取消遷移前操作。
步驟五:完成升級
完成步驟一:從PolarDB升級後,您需要在30天內完成升級操作。
-
請確保在單擊完成升級前,資料已完成遷移,並且後續不再使用資料同步功能。
-
由於該操作會中斷源PolarDB叢集和目標PolarDB叢集間的資料同步任務,且不再提供升級復原功能,建議您使用一段時間目標PolarDB叢集,確認正常後再執行完成升級操作。
-
登入PolarDB控制台。
-
找到目的地組群,單擊叢集ID。
-
在基本信息頁面的PolarDB升级功能地區,單擊完成升级。
-
在完成升级對話方塊中,您可以選擇是否關閉PolarDB叢集的Binlog,並單擊確定。
說明-
單擊確定後,系統將在2分鐘之內中斷同步關係,升級狀態將顯示為關閉同步。
-
如果您選擇了關閉Binlog,PolarDB叢集會自動重啟使新配置生效。
-
如果不再需要源PolarDB叢集,可以選擇釋放源PolarDB叢集。釋放叢集詳情請參見釋放叢集。
-
如果您執行的是架構升級操作,在完成升級對話方塊中單擊確定後,目的地組群的寫入點將恢複至初始狀態,即資料庫將隨機指定RW節點為寫入點。
-
查看資料同步任務詳情(可選)
在版本升級的過程中,若升級報錯或出現其他異常時,您可以前往對應的DTS資料同步任務詳情頁查看資料同步任務的詳細資料。
-
登入PolarDB控制台。
-
找到目的地組群,單擊叢集ID。
-
在基本信息頁面的PolarDB升级功能地區,單擊DTS数据同步任务的任務名稱,進入DTS控制台的資料同步工作清單。
-
在資料同步工作清單中,找到對應的資料同步任務,您可以查看同步任務詳情和同步任務日誌等。
-
在升級過程中,如果需求有調整(如源PolarDB叢集有新增庫時,需要將新增加的庫也納入同步對象),您可以單擊修改同步對象來重新設定。
升級復原(可選)
在完成升級之前,如果您探索資料存在異常等問題,可以執行升級復原操作,將叢集快速恢複至升級前的狀態(源PolarDB叢集為可讀可寫,目標PolarDB叢集為唯讀,同時會將源PolarDB叢集的資料同步至目標PolarDB叢集)。升級復原完成後,如果需要繼續執行大版本升級操作,您可以直接從步驟三:升級切換操作開始執行。
-
登入PolarDB控制台。
-
找到目的地組群,單擊叢集ID。
-
在基本信息頁面的PolarDB升级功能地區,單擊升级回滚。
-
在開始回切對話方塊中,選擇帶地址回切(應用程式不用改串連配置)或不帶地址回切(應用程式需要改為源執行個體串連配置)。
-
若您選擇帶地址回切(應用程式不用改串連配置),操作步驟如下:
-
選中帶地址回切(應用程式不用改串連配置),系統會自動交換源PolarDB叢集和目標PolarDB叢集上的串連地址,你無需在應用程式端修改任何配置即可自動回切到源PolarDB叢集。
-
單擊確定。
此時,源PolarDB叢集為可讀可寫,目標PolarDB叢集為唯讀,同時會將源PolarDB叢集的資料同步到目標PolarDB叢集。
說明執行架構升級復原操作時,您可以根據需要選擇復原地址。
-
-
若您選擇不帶地址回切(應用程式需要改為源叢集串連配置),操作步驟如下:
-
選中不帶地址回切(應用程式需要改為源叢集串連配置),在升級切換完成後,您需要儘快修改應用程式端的資料庫連接池地址。
-
單擊確定,此時,源PolarDB叢集為可讀可寫,目標PolarDB叢集為唯讀,同時會將源PolarDB叢集的資料同步至目標PolarDB叢集。
-
重新整理頁面,當源PolarDB叢集的狀態顯示為讀寫後,請儘快修改應用程式中的資料庫連接地址為源PolarDB叢集的串連地址。
-
-
取消升級(可選)
-
登入PolarDB控制台。
-
找到目的地組群,單擊叢集ID。
-
在基本信息頁面的PolarDB升级功能地區,單擊取消升级。
-
在取消升级頁面的對話方塊中,單擊确定。對話方塊中說明取消升級將中斷源叢集與目標執行個體間的資料同步,您可根據需要勾選關閉目標執行個體的Binlog選項。