本章節介紹了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升級功能區域,單擊取消升級。
在取消升級頁面的對話框中,單擊確定。