本章節介紹了PolarDB MySQL版叢集之間升級的操作步驟。
前置檢查
若您已完成升級評估並且無相關異常,可跳過該前置檢查。
檢查是否已建立PolarDB服務關聯角色
在升級之前,請先檢查是否已建立PolarDB服務關聯角色,以及是否已授予DTS訪問雲資源的許可權。
檢查是否已建立PolarDB服務關鍵角色的操作步驟如下:
前往RAM控制台。
在左側導覽列,選擇身份管理>角色。
在角色列表中,查看是否已存在名為AliyunServiceRoleForPolarDB的服務關聯角色。
若存在,則執行步驟一:從PolarDB升級。
若不存在,則繼續執行以下步驟。
單擊建立角色。
在開啟的建立角色對話方塊中,選擇阿里雲服務,並單擊下一步。
角色類型選擇服務關聯角色,雲端服務選擇雲資料庫PolarDB。
單擊完成,返回角色列表,確保已建立成功。
刪除源PolarDB MySQL版叢集中多餘系統帳號
為了避免遷移後目標PolarDB MySQL版叢集的系統帳號被覆蓋,源PolarDB MySQL版叢集中不允許同時存在root和aliyun_root帳號。因此,在進行遷移升級前,請先刪除源叢集中多餘的系統帳號。
PolarDB MySQL版各個版本的正確系統帳號名如下:
PolarDB MySQL版版本 | 正確的系統帳號名 |
PolarDB MySQL版 5.6 | root |
PolarDB MySQL版 5.7 | aliyun_root |
PolarDB MySQL版 8.0 | 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版叢集的增量資料會即時同步至該叢集。
在開始遷移前,建議您先完成升級評估。
登入PolarDB控制台。
進入叢集購買頁面。您可以通過以下兩種方式中的任意一種方式進入購買頁:
單擊建立新叢集。
單擊需要執行升級操作的叢集ID,在左側導覽列,選擇配置與管理 > 版本管理。在大版本升級頁簽,單擊遷移升級。
計費類型選擇訂用帳戶、隨用隨付或Serverless。
訂用帳戶:在建立叢集時支付計算節點的費用,而儲存空間會根據實際資料量按小時計費,並從賬戶中按小時扣除。
隨用隨付:無需預先支付費用,計算節點和儲存空間(根據實際資料量)均按小時計費,並從賬戶中按小時扣除。
Serverless:無需預先支付費用,計算節點、儲存空間、資料庫代理等資源在叢集使用過程中基於實際需求動態彈性擴縮,並根據擴縮的實際用量來計費。
根據實際使用情境,設定以下參數。
說明以下表格中未詳細介紹的參數, 請參考購買叢集。
參數
說明
建立方式
選擇從PolarDB升級遷移。
地區
選擇源PolarDB MySQL版叢集所在地區。
源PolarDB版本
源PolarDB MySQL版叢集的版本。您可以選擇5.6、5.7或8.0。
源PolarDB叢集
選擇源PolarDB MySQL版叢集。
資料庫引擎
目的地組群的資料庫引擎版本。
版本之間升級時,您可以選擇與源叢集相同的版本,也可以選擇跨版本。
架構之間升級時,必須選擇MySQL 8.0。
說明產品版本
與原叢集的產品版本保持一致,無需選擇。
系列
目的地組群的系列。
版本之間升級時,選擇叢集版【推薦】。
架構之間升級時,選擇多主叢集(庫表)。
說明CPU架構
與原叢集的CPU架構保持一致,無需選擇。
節點個數
與原叢集的節點個數保持一致,無需選擇。
當前選擇規格
目的地組群的節點規格。
資料庫代理類型
與原叢集的資料庫代理規格保持一致,無需選擇。
在右上方檢查叢集配置資訊,設定購買時間長度(針對訂用帳戶叢集)、購買數量和是否自動續約。
閱讀並勾選服務合約。單擊立即購買。
在支付頁面,確認未支付訂單資訊和支付方式,單擊訂購。
說明支付成功後,需要等待10~15分鐘建立叢集,之後您就可以在叢集列表中看到新建立的叢集。
當叢集中的節點狀態為建立中時,整個叢集可能仍未建立完成,此時叢集不可用。只有當叢集狀態為運行中時,叢集才可以正常使用。
請確認已選中正確的地區,否則無法看到您建立的叢集。
叢集建立成功後,單擊叢集ID進入叢集基本資料頁。
在基本資料頁的PolarDB升級功能地區,確認目標PolarDB叢集的複寫延遲小於60秒即可進行操作。
說明叢集建立後,DTS開始從源PolarDB叢集同步資料,您需要在30天內完成升級,超過30天將自動關閉升級功能。
您可以在該地區選取項目放棄升級,放棄升級後的影響請參見常見問題。
若狀態顯示為預檢查失敗,請根據錯誤資訊進行處理。
例如,如果源PolarDB叢集中建立了觸發器,則預檢查會失敗並報錯“PolarDB叢集存在觸發器”。請先刪除PolarDB的觸發器,再單擊繼續升級,或單擊放棄升級後手動在DTS控制台頁面建立遷移任務。具體可參見源庫存在觸發器時如何配置同步或遷移作業。
架構升級時,目的地組群預設的寫入點為MasterID=1的RW節點,為確保DTS資料同步任務的正常運行,在升級完成之前,始終保持在該RW節點進行寫入。
步驟二:升級切換
目標PolarDB叢集的複寫延遲小於60秒時,即可進行升級切換操作。
登入PolarDB控制台。
找到目的地組群,單擊叢集ID。
在基本資料頁面的PolarDB升級功能地區,單擊升級切換。
說明一般情況下,升級在5分鐘之內即可完成。
該操作將交換源PolarDB叢集和目標PolarDB叢集的讀寫狀態,即將源PolarDB叢集修改為唯讀,將目標PolarDB叢集修改為可讀可寫。同時,DTS會更換資料複製方向,即將目標PolarDB叢集的新增資料同步到源PolarDB叢集。
在升級切換對話方塊中,選擇帶地址切換(應用程式不用改串連配置)或不帶地址切換(應用程式需要改為新的PolarDB串連配置)。
若您選擇帶地址切換(應用程式不用改串連配置),操作步驟如下:
選中帶地址切換(應用程式不用改串連配置)。系統會自動交換源PolarDB和目標PolarDB上的串連地址,您無需在應用程式端修改任何配置即可自動連接到目標PolarDB叢集。
單擊確定。
若您選擇不帶地址切換(應用程式需要改為新的PolarDB串連配置),操作步驟如下:
勾選不帶地址切換(應用程式需要改為新的PolarDB串連配置)。
單擊確定。
重新整理頁面,當目標PolarDB讀寫狀態顯示為讀寫後,儘快修改應用中的資料庫連接地址。
升級切換完成後,如果您探索資料存在異常等問題,可以進行復原操作,快速恢複至升級前的狀態也可以選擇升級復原。
架構升級完成並切換完成後,為避免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升級功能地區,單擊取消升級。
在取消升級頁面的對話方塊中,單擊確定。