升級步驟
本章節(jié)介紹了PolarDB MySQL版集群之間升級的操作步驟。
前置檢查
若您已完成升級評估并且無相關(guān)異常,可跳過該前置檢查。
檢查是否已創(chuàng)建PolarDB服務(wù)關(guān)聯(lián)角色
在升級之前,請先檢查是否已創(chuàng)建PolarDB服務(wù)關(guān)聯(lián)角色,以及是否已授予DTS訪問云資源的權(quán)限。
檢查是否已創(chuàng)建PolarDB服務(wù)關(guān)鍵角色的操作步驟如下:
前往RAM控制臺。
在左側(cè)導(dǎo)航欄,選擇身份管理>角色。
在角色列表中,查看是否已存在名為AliyunServiceRoleForPolarDB的服務(wù)關(guān)聯(lián)角色。
若存在,則執(zhí)行步驟一:從PolarDB升級。
若不存在,則繼續(xù)執(zhí)行以下步驟。
單擊創(chuàng)建角色。
在打開的創(chuàng)建角色對話框中,選擇阿里云服務(wù),并單擊下一步。
角色類型選擇服務(wù)關(guān)聯(lián)角色,云服務(wù)選擇云數(shù)據(jù)庫PolarDB。
單擊完成,返回角色列表,確保已創(chuàng)建成功。
刪除源PolarDB MySQL版集群中多余系統(tǒng)賬號
為了避免遷移后目標(biāo)PolarDB MySQL版集群的系統(tǒng)賬號被覆蓋,源PolarDB MySQL版集群中不允許同時存在root和aliyun_root賬號。因此,在進(jìn)行遷移升級前,請先刪除源集群中多余的系統(tǒng)賬號。
PolarDB MySQL版各個版本的正確系統(tǒng)賬號名如下:
PolarDB MySQL版版本 | 正確的系統(tǒng)賬號名 |
PolarDB MySQL版 5.6 | root |
PolarDB MySQL版 5.7 | aliyun_root |
PolarDB MySQL版 8.0 | root |
各個版本除了對應(yīng)的系統(tǒng)賬號之外,其余系統(tǒng)賬號均需刪除。
賬號可能是用戶創(chuàng)建的,也可能是系統(tǒng)創(chuàng)建并因版本升級而遺留的,某些場景下不會在控制臺顯示。
以清理PolarDB MySQL版5.6多余的系統(tǒng)賬號為例,具體刪除步驟如下:
使用高權(quán)限賬號連接數(shù)據(jù)庫集群。
找到所有的root和aliyun_root系統(tǒng)賬號。
select * from mysql.user where user in ('root', 'aliyun_root');
刪除多余的系統(tǒng)賬號。PolarDB MySQL版5.6正確的系統(tǒng)賬號是root,因此需要刪除aliyun_root賬號。
delete from mysql.user where user = 'aliyun_root' limit n;
智能壓測(可選)
在執(zhí)行大版本升級之前,您可以使用該智能壓測功能,模擬演練您的業(yè)務(wù)流量運(yùn)行在目標(biāo)版本的PolarDB集群上的場景,幫助您:
驗(yàn)證您的集群規(guī)格是否需要擴(kuò)容,以有效應(yīng)對業(yè)務(wù)流量高峰;
分析原版本和目標(biāo)版本的PolarDB集群在SQL模板方面的執(zhí)行性能差異等。
智能壓測詳細(xì)操作步驟請參見智能壓測。
步驟一:從PolarDB升級遷移
通過該步驟,您將創(chuàng)建一個與源PolarDB MySQL版集群數(shù)據(jù)相同的集群,源PolarDB MySQL版集群的增量數(shù)據(jù)會實(shí)時同步至該集群。
在開始遷移前,建議您先完成升級評估。
使用DTS遷移時,全量數(shù)據(jù)初始化時將占用源庫和目標(biāo)庫一定的讀寫資源,可能會導(dǎo)致數(shù)據(jù)庫的負(fù)載上升,您可按需調(diào)整遷移速率。
登錄PolarDB控制臺。
進(jìn)入集群購買頁面。您可以通過以下兩種方式中的任意一種方式進(jìn)入購買頁:
單擊創(chuàng)建新集群。
單擊需要執(zhí)行升級操作的集群ID,在左側(cè)導(dǎo)航欄,選擇配置與管理 > 版本管理。在大版本升級頁簽,單擊遷移升級。
計(jì)費(fèi)類型選擇包年包月、按量付費(fèi)或Serverless。
包年包月:在創(chuàng)建集群時支付計(jì)算節(jié)點(diǎn)的費(fèi)用,而存儲空間會根據(jù)實(shí)際數(shù)據(jù)量按小時計(jì)費(fèi),并從賬戶中按小時扣除。
按量付費(fèi):無需預(yù)先支付費(fèi)用,計(jì)算節(jié)點(diǎn)和存儲空間(根據(jù)實(shí)際數(shù)據(jù)量)均按小時計(jì)費(fèi),并從賬戶中按小時扣除。
Serverless:無需預(yù)先支付費(fèi)用,計(jì)算節(jié)點(diǎn)、存儲空間、數(shù)據(jù)庫代理等資源在集群使用過程中基于實(shí)際需求動態(tài)彈性擴(kuò)縮,并根據(jù)擴(kuò)縮的實(shí)際用量來計(jì)費(fèi)。
根據(jù)實(shí)際使用場景,設(shè)置以下參數(shù)。
說明以下表格中未詳細(xì)介紹的參數(shù), 請參考購買集群。
參數(shù)
說明
創(chuàng)建方式
選擇從PolarDB升級遷移。
地域
選擇源PolarDB MySQL版集群所在地域。
源PolarDB版本
源PolarDB MySQL版集群的版本。您可以選擇5.6、5.7或8.0。
源PolarDB集群
選擇源PolarDB MySQL版集群。
數(shù)據(jù)庫引擎
目標(biāo)集群的數(shù)據(jù)庫引擎版本。
版本之間升級時,您可以選擇與源集群相同的版本,也可以選擇跨版本。
架構(gòu)之間升級時,必須選擇MySQL 8.0。
說明產(chǎn)品版本
與原集群的產(chǎn)品版本保持一致,無需選擇。
系列
目標(biāo)集群的系列。
版本之間升級時,選擇集群版【推薦】。
架構(gòu)之間升級時,選擇多主集群(庫表)。
說明CPU架構(gòu)
與原集群的CPU架構(gòu)保持一致,無需選擇。
節(jié)點(diǎn)個數(shù)
與原集群的節(jié)點(diǎn)個數(shù)保持一致,無需選擇。
當(dāng)前選擇規(guī)格
目標(biāo)集群的節(jié)點(diǎn)規(guī)格。
數(shù)據(jù)庫代理類型
與原集群的數(shù)據(jù)庫代理規(guī)格保持一致,無需選擇。
在右上角檢查集群配置信息,設(shè)置購買時長(針對包年包月集群)、購買數(shù)量和是否自動續(xù)費(fèi)。
閱讀并勾選服務(wù)協(xié)議。單擊立即購買。
在支付頁面,確認(rèn)未支付訂單信息和支付方式,單擊訂購。
說明支付成功后,需要等待10~15分鐘創(chuàng)建集群,之后您就可以在集群列表中看到新創(chuàng)建的集群。
當(dāng)集群中的節(jié)點(diǎn)狀態(tài)為創(chuàng)建中時,整個集群可能仍未創(chuàng)建完成,此時集群不可用。只有當(dāng)集群狀態(tài)為運(yùn)行中時,集群才可以正常使用。
請確認(rèn)已選中正確的地域,否則無法看到您創(chuàng)建的集群。
集群創(chuàng)建成功后,單擊集群ID進(jìn)入集群基本信息頁。
在基本信息頁的PolarDB升級功能區(qū)域,確認(rèn)目標(biāo)PolarDB集群的復(fù)制延遲小于60秒即可進(jìn)行操作。
說明已存在DTS雙向同步的集群無法進(jìn)行一鍵升級,可能會出現(xiàn)數(shù)據(jù)不一致問題。
集群創(chuàng)建后,DTS開始從源PolarDB集群同步數(shù)據(jù),您需要在30天內(nèi)完成升級,超過30天將自動關(guān)閉升級功能。
您可以在該區(qū)域選擇放棄升級,放棄升級后的影響請參見常見問題。
若狀態(tài)顯示為預(yù)檢查失敗,請根據(jù)錯誤信息進(jìn)行處理。
例如,如果源PolarDB集群中創(chuàng)建了觸發(fā)器,則預(yù)檢查會失敗并報錯“PolarDB集群存在觸發(fā)器”。請先刪除PolarDB的觸發(fā)器,再單擊繼續(xù)升級,或單擊放棄升級后手動在DTS控制臺頁面創(chuàng)建遷移任務(wù)。具體可參見源庫存在觸發(fā)器時如何配置同步或遷移作業(yè)。
架構(gòu)升級時,目標(biāo)集群默認(rèn)的寫入點(diǎn)為MasterID=1的RW節(jié)點(diǎn),為確保DTS數(shù)據(jù)同步任務(wù)的正常運(yùn)行,在升級完成之前,始終保持在該RW節(jié)點(diǎn)進(jìn)行寫入。
步驟二:地址補(bǔ)齊(可選)
PolarDB大版本升級支持帶地址切換,您可保留數(shù)據(jù)庫原連接地址,無需應(yīng)用程序修改任何連接配置即可切換至新的PolarDB。需要注意,僅當(dāng)源PolarDB和目標(biāo)PolarDB集群同時存在的連接地址才支持相互切換,默認(rèn)情況下目標(biāo)端僅創(chuàng)建私網(wǎng)主地址和私網(wǎng)集群地址,如果源端包含2個以上的連接地址,您需在切換前在目標(biāo)端創(chuàng)建好對應(yīng)的連接地址,否則不會切換。關(guān)于如何為PolarDB集群創(chuàng)建連接地址,請參見管理連接地址。
在目標(biāo)端集群會變成運(yùn)行中后,才可進(jìn)行地址補(bǔ)齊操作。此外您還可以根據(jù)業(yè)務(wù)需要,進(jìn)行地址屬性配置、集群參數(shù)配置、只讀節(jié)點(diǎn)補(bǔ)齊等操作。
使用帶地址切換交換私網(wǎng)地址前,請確保源PolarDB和目標(biāo)端PolarDB集群屬于同一個VPC,否則切換后原有服務(wù)將無法連接。
步驟三:升級切換
目標(biāo)PolarDB集群的復(fù)制延遲小于60秒時,即可進(jìn)行升級切換操作。
登錄PolarDB控制臺。
找到目標(biāo)集群,單擊集群ID。
在基本信息頁面的PolarDB升級功能區(qū)域,單擊升級切換。
說明一般情況下,升級在5分鐘之內(nèi)即可完成。
該操作將交換源PolarDB集群和目標(biāo)PolarDB集群的讀寫狀態(tài),即將源PolarDB集群修改為只讀,將目標(biāo)PolarDB集群修改為可讀可寫。同時,DTS會更換數(shù)據(jù)復(fù)制方向,即將目標(biāo)PolarDB集群的新增數(shù)據(jù)同步到源PolarDB集群。
在升級切換對話框中,選擇帶地址切換(應(yīng)用程序不用改連接配置)或不帶地址切換(應(yīng)用程序需要改為新的PolarDB連接配置)。
若您選擇帶地址切換(應(yīng)用程序不用改連接配置),操作步驟如下:
選中帶地址切換(應(yīng)用程序不用改連接配置)。系統(tǒng)會自動交換源PolarDB和目標(biāo)PolarDB上的連接地址,您無需在應(yīng)用程序端修改任何配置即可自動連接到目標(biāo)PolarDB集群。
重要選擇帶地址切換(應(yīng)用程序不用改連接配置)前,請務(wù)必閱讀帶地址切換注意事項(xiàng)。
如果待升級的PolarDB集群是已有數(shù)據(jù)傳輸服務(wù)(DTS)的源集群或目標(biāo)集群,則升級后需要將該DTS任務(wù)的源或目標(biāo)集群修改為升級后的PolarDB集群。如數(shù)據(jù)同步任務(wù)、數(shù)據(jù)遷移任務(wù)以及數(shù)據(jù)訂閱任務(wù)等。具體請參見修改DTS任務(wù)對象。
單擊確定。
若您選擇不帶地址切換(應(yīng)用程序需要改為新的PolarDB連接配置),操作步驟如下:
勾選不帶地址切換(應(yīng)用程序需要改為新的PolarDB連接配置)。
單擊確定。
刷新頁面,當(dāng)目標(biāo)PolarDB讀寫狀態(tài)顯示為讀寫后,盡快修改應(yīng)用中的數(shù)據(jù)庫連接地址。
升級切換完成后,如果您發(fā)現(xiàn)數(shù)據(jù)存在異常等問題,可以進(jìn)行回滾操作,快速恢復(fù)至升級前的狀態(tài)也可以選擇升級回滾。
架構(gòu)升級完成并切換完成后,為避免DTS數(shù)據(jù)同步任務(wù)異常,請務(wù)必不要修改目標(biāo)多主集群(庫表)的寫入點(diǎn)。
步驟四:源集群DTS任務(wù)切換(可選)
若源實(shí)例存在關(guān)聯(lián)的DTS鏈路(非一鍵遷移DTS鏈路),您可使用此功能修改(替換)DTS同步或遷移任務(wù)的源或目標(biāo)庫實(shí)例,平滑切換關(guān)聯(lián)業(yè)務(wù),實(shí)現(xiàn)原理和注意事項(xiàng)參考修改DTS任務(wù)的源或目標(biāo)庫實(shí)例。
進(jìn)入PolarDB控制臺。
找到目標(biāo)集群,單擊集群的ID。
在基本信息頁面的PolarDB遷移功能中,單擊源實(shí)例DTS任務(wù)切換。
在切換業(yè)務(wù)DTS數(shù)據(jù)庫對話框中,選擇源實(shí)例DTS任務(wù)(正向切換)或目標(biāo)實(shí)例DTS任務(wù)(切換回滾)。
重要切換前,請先檢查源實(shí)例和目標(biāo)實(shí)例同步數(shù)據(jù)的DTS狀態(tài),詳細(xì)DTS狀態(tài)查詢,請參見DTS狀態(tài)查詢。
若您選擇源實(shí)例DTS任務(wù)(正向切換),操作步驟如下:
請選擇您需要遷移切換數(shù)據(jù)庫實(shí)例的DTS任務(wù)。
單擊提交正向切換。
若您選擇目標(biāo)實(shí)例DTS任務(wù)(切換回滾),操作步驟如下:
請選擇您需要遷移切換數(shù)據(jù)庫實(shí)例的DTS任務(wù)。
單擊提交切換回滾。
源實(shí)例DTS任務(wù)(正向切換)適用遷移切換后將源實(shí)例的DTS任務(wù)切換到目標(biāo)實(shí)例,在遷移切換后,完成遷移前的DTS任務(wù)操作。
目標(biāo)實(shí)例DTS任務(wù)(切換回滾)適用于切換回滾后將目標(biāo)實(shí)例的DTS任務(wù)切換回源實(shí)例,在切換回滾后,取消遷移前操作。
步驟五:完成升級
完成步驟一:從PolarDB升級后,您需要在30天內(nèi)完成升級操作。
請確保在單擊完成升級前,數(shù)據(jù)已完成遷移,并且后續(xù)不再使用數(shù)據(jù)同步功能。
由于該操作會中斷源PolarDB集群和目標(biāo)PolarDB集群間的數(shù)據(jù)同步任務(wù),且不再提供升級回滾功能,建議您使用一段時間目標(biāo)PolarDB集群,確認(rèn)正常后再執(zhí)行完成升級操作。
登錄PolarDB控制臺。
找到目標(biāo)集群,單擊集群ID。
在基本信息頁面的PolarDB升級功能區(qū)域,單擊完成升級。
在完成升級對話框中,您可以選擇是否關(guān)閉PolarDB集群的Binlog,并單擊確定。
說明單擊確定后,系統(tǒng)將在2分鐘之內(nèi)中斷同步關(guān)系,升級狀態(tài)將顯示為關(guān)閉同步。
如果您選擇了關(guān)閉Binlog,PolarDB集群會自動重啟使新配置生效。
如果不再需要源PolarDB集群,可以選擇釋放源PolarDB集群。釋放集群詳情請參見釋放集群。
如果您執(zhí)行的是架構(gòu)升級操作,在完成升級對話框中單擊確定后,目標(biāo)集群的寫入點(diǎn)將恢復(fù)至初始狀態(tài),即數(shù)據(jù)庫將隨機(jī)指定RW節(jié)點(diǎn)為寫入點(diǎn)。
查看數(shù)據(jù)同步任務(wù)詳情(可選)
在版本升級的過程中,若升級報錯或出現(xiàn)其他異常時,您可以前往對應(yīng)的DTS數(shù)據(jù)同步任務(wù)詳情頁查看數(shù)據(jù)同步任務(wù)的詳細(xì)信息。
登錄PolarDB控制臺。
找到目標(biāo)集群,單擊集群ID。
在基本信息頁面的PolarDB升級功能區(qū)域,單擊DTS數(shù)據(jù)同步任務(wù)的任務(wù)名稱,進(jìn)入DTS控制臺的數(shù)據(jù)同步任務(wù)列表。
在數(shù)據(jù)同步任務(wù)列表中,找到對應(yīng)的數(shù)據(jù)同步任務(wù),您可以查看同步任務(wù)詳情和同步任務(wù)日志等。
在升級過程中,如果需求有調(diào)整(如源PolarDB集群有新增庫時,需要將新增加的庫也納入同步對象),您可以單擊修改同步對象來重新配置。
升級回滾(可選)
在完成升級之前,如果您發(fā)現(xiàn)數(shù)據(jù)存在異常等問題,可以執(zhí)行升級回滾操作,將集群快速恢復(fù)至升級前的狀態(tài)(源PolarDB集群為可讀可寫,目標(biāo)PolarDB集群為只讀,同時會將源PolarDB集群的數(shù)據(jù)同步至目標(biāo)PolarDB集群)。升級回滾完成后,如果需要繼續(xù)執(zhí)行大版本升級操作,您可以直接從步驟三:升級切換操作開始執(zhí)行。
登錄PolarDB控制臺。
找到目標(biāo)集群,單擊集群ID。
在基本信息頁面的PolarDB升級功能區(qū)域,單擊升級回滾。
在開始回切對話框中,選擇帶地址回切(應(yīng)用程序不用改連接配置)或不帶地址回切(應(yīng)用程序需要改為源集群連接配置)。
若您選擇帶地址回切(應(yīng)用程序不用改連接配置),操作步驟如下:
選中帶地址回切(應(yīng)用程序不用改連接配置),系統(tǒng)會自動交換源PolarDB集群和目標(biāo)PolarDB集群上的連接地址,你無需在應(yīng)用程序端修改任何配置即可自動回切到源PolarDB集群。
單擊確定。
此時,源PolarDB集群為可讀可寫,目標(biāo)PolarDB集群為只讀,同時會將源PolarDB集群的數(shù)據(jù)同步到目標(biāo)PolarDB集群。
說明執(zhí)行架構(gòu)升級回滾操作時,您可以根據(jù)需要選擇回滾地址。
若您選擇不帶地址回切(應(yīng)用程序需要改為源集群連接配置),操作步驟如下:
選中不帶地址回切(應(yīng)用程序需要改為源集群連接配置),在升級切換完成后,您需要盡快修改應(yīng)用程序端的數(shù)據(jù)庫連接池地址。
單擊確定,此時,源PolarDB集群為可讀可寫,目標(biāo)PolarDB集群為只讀,同時會將源PolarDB集群的數(shù)據(jù)同步至目標(biāo)PolarDB集群。
刷新頁面,當(dāng)源PolarDB集群的狀態(tài)顯示為讀寫后,請盡快修改應(yīng)用程序中的數(shù)據(jù)庫連接地址為源PolarDB集群的連接地址。
取消升級(可選)
登錄PolarDB控制臺。
找到目標(biāo)集群,單擊集群ID。
在基本信息頁面的PolarDB升級功能區(qū)域,單擊取消升級。
在取消升級頁面的對話框中,單擊確定。