升級(jí)步驟
本文中含有需要您注意的重要提示信息,忽略該信息可能對(duì)您的業(yè)務(wù)造成影響,請(qǐng)務(wù)必仔細(xì)閱讀。
本章節(jié)介紹了一鍵升級(jí)RDS MySQL至PolarDB的升級(jí)步驟。
前置檢查
檢查是否已創(chuàng)建PolarDB服務(wù)關(guān)聯(lián)角色(僅限邏輯遷移)
若您已完成遷移評(píng)估并且無相關(guān)異常,可跳過該前置檢查。
在使用邏輯遷移(DTS數(shù)據(jù)同步)方式進(jìn)行一鍵升級(jí)前,請(qǐng)先檢查是否已創(chuàng)建PolarDB服務(wù)關(guān)聯(lián)角色,以及是否已授予DTS訪問云資源的權(quán)限。檢查是否已創(chuàng)建PolarDB服務(wù)關(guān)聯(lián)角色的具體步驟如下:
前往RAM控制臺(tái)的角色列表。
檢查角色列表中,是否已存在名為AliyunServiceRoleForPolarDB的服務(wù)關(guān)聯(lián)角色,如下:
若已存在,則進(jìn)行步驟一:從RDS同步;若不存在,則需創(chuàng)建相關(guān)角色。
單擊左側(cè)創(chuàng)建角色。
在彈出的創(chuàng)建角色對(duì)話框中,選擇阿里云服務(wù),并單擊下一步。
選擇角色類型為服務(wù)關(guān)聯(lián)角色,并選擇云服務(wù)為云數(shù)據(jù)庫PolarDB。
單擊完成,返回角色列表,確保已創(chuàng)建成功。
刪除源RDS實(shí)例中多余系統(tǒng)賬號(hào)(僅限邏輯遷移)
若您已完成遷移評(píng)估并且無相關(guān)異常,可跳過該前置檢查。
為了兼容RDS MySQL和PolarDB兩者的系統(tǒng)賬號(hào)體系,避免遷移后目標(biāo)PolarDB的系統(tǒng)賬號(hào)被覆蓋,源RDS實(shí)例中不允許同時(shí)存在root和aliyun_root賬號(hào)。因此,在進(jìn)行遷移升級(jí)前,請(qǐng)先刪除源RDS實(shí)例中多余的系統(tǒng)賬號(hào)。
RDS MySQL各個(gè)版本的正確系統(tǒng)賬號(hào)名如下:
RDS MySQL版本 | 正確的系統(tǒng)賬號(hào)名 |
RDS MySQL 5.6 | root |
RDS MySQL 5.7 | aliyun_root |
RDS MySQL 8.0 | aliyun_root |
各個(gè)版本除了對(duì)應(yīng)的系統(tǒng)賬號(hào)之外,其余系統(tǒng)賬號(hào)均需刪除。
賬號(hào)可能是用戶創(chuàng)建的,也可能是系統(tǒng)創(chuàng)建并因版本升級(jí)而遺留的,某些場景下不會(huì)在控制臺(tái)顯示。
以清理RDS MySQL 5.6多余的系統(tǒng)賬號(hào)為例,具體刪除步驟如下:
使用高權(quán)限賬號(hào)連接實(shí)例。
找到所有的root和aliyun_root系統(tǒng)賬號(hào)。
select * from mysql.user where user in ('root', 'aliyun_root');
刪除多余的系統(tǒng)賬號(hào)。RDS MySQL 5.6正確的系統(tǒng)賬號(hào)是root,因此需要?jiǎng)h除aliyun_root賬號(hào)。
delete from mysql.user where user = 'aliyun_root' limit n;
白名單檢查(可選)
如果源RDS主實(shí)例和只讀實(shí)例的白名單配置不一致,為了保證只讀節(jié)點(diǎn)的白名單自動(dòng)同步到目標(biāo)PolarDB集群,請(qǐng)?zhí)崆皩⒅蛔x節(jié)點(diǎn)的白名單合入到主節(jié)點(diǎn)的白名單配置中。
步驟一:從RDS同步
本操作將創(chuàng)建一個(gè)與源RDS實(shí)例數(shù)據(jù)相同的PolarDB集群,源RDS實(shí)例的增量數(shù)據(jù)會(huì)實(shí)時(shí)同步到該PolarDB集群。
在開始遷移前,建議您先完成遷移評(píng)估。
使用DTS遷移,全量數(shù)據(jù)初始化時(shí)將占用源庫和目標(biāo)庫一定的讀寫資源,可能會(huì)導(dǎo)致數(shù)據(jù)庫的負(fù)載上升,您可按需調(diào)整同步速率,詳細(xì)操作請(qǐng)參見調(diào)整遷移速率。
登錄PolarDB控制臺(tái),單擊創(chuàng)建新集群,進(jìn)入PolarDB購買頁。
選擇計(jì)費(fèi)類型為包年包月、按量付費(fèi)或Serverless。
包年包月:在創(chuàng)建集群時(shí)支付計(jì)算節(jié)點(diǎn)的費(fèi)用,而存儲(chǔ)空間會(huì)根據(jù)實(shí)際數(shù)據(jù)量按小時(shí)計(jì)費(fèi),并從賬戶中按小時(shí)扣除。
按量付費(fèi):無需預(yù)先支付費(fèi)用,計(jì)算節(jié)點(diǎn)和存儲(chǔ)空間(根據(jù)實(shí)際數(shù)據(jù)量)均按小時(shí)計(jì)費(fèi),并從賬戶中按小時(shí)扣除。
Serverless:無需預(yù)先支付費(fèi)用,計(jì)算節(jié)點(diǎn)、存儲(chǔ)空間、數(shù)據(jù)庫代理等資源在集群使用過程中基于實(shí)際需求動(dòng)態(tài)彈性擴(kuò)縮,并根據(jù)擴(kuò)縮的實(shí)際用量來計(jì)費(fèi)。
設(shè)置如下參數(shù)。
說明下表格中未詳細(xì)介紹的參數(shù),請(qǐng)參考購買集群相關(guān)章節(jié)。
參數(shù)
說明
創(chuàng)建方式
選擇從RDS遷移。
說明在正式遷移切換前PolarDB的讀寫狀態(tài)為只讀,且默認(rèn)開啟Binlog。遷移完成后,若原RDS為包年包月實(shí)例,可申請(qǐng)轉(zhuǎn)單優(yōu)惠退款。
地域
選擇源RDS MySQL實(shí)例所在地域。
說明新建的PolarDB集群也在此地域。
源RDS引擎
源RDS實(shí)例的引擎類型,固定為MySQL,不可變更。
源RDS版本
源RDS實(shí)例的版本。您可以選擇5.6、5.7或8.0。
源RDS實(shí)例
選擇源RDS實(shí)例,不包括只讀實(shí)例。
兼容性
目標(biāo)PolarDB集群的數(shù)據(jù)庫引擎版本。您可以選擇與源RDS實(shí)例一致的版本,也可以選擇跨版本。
節(jié)點(diǎn)規(guī)格
按需選擇,建議不低于源RDS實(shí)例規(guī)格。關(guān)于PolarDB節(jié)點(diǎn)規(guī)格,詳情請(qǐng)參見企業(yè)版計(jì)算節(jié)點(diǎn)規(guī)格。
存儲(chǔ)引擎
PolarDB支持InnoDB和InnoDB & 高壓縮引擎兩種引擎類型。
InnoDB:InnoDB引擎。
InnoDB & 高壓縮引擎::InnoDB和X-Engine混合部署引擎。選擇該選項(xiàng)后,可以設(shè)置高壓縮引擎的比例。關(guān)于高壓縮引擎的更多信息,請(qǐng)參見高壓縮引擎(X-Engine)介紹。
在右上角檢查集群配置信息,設(shè)置購買時(shí)長(針對(duì)包年包月集群)、購買數(shù)量和是否自動(dòng)續(xù)費(fèi)。
閱讀并勾選服務(wù)協(xié)議。單擊立即購買。
在支付頁面,確認(rèn)未支付訂單信息和支付方式,單擊訂購。
說明支付成功后,需要等待10~15分鐘創(chuàng)建集群,之后您就可以在集群列表中看到新創(chuàng)建的集群。
當(dāng)集群中的節(jié)點(diǎn)狀態(tài)為創(chuàng)建中時(shí),整個(gè)集群可能仍未創(chuàng)建完成,此時(shí)集群不可用。只有當(dāng)集群狀態(tài)為運(yùn)行中時(shí),集群才可以正常使用。
請(qǐng)確認(rèn)已選中正確的地域,否則無法看到您創(chuàng)建的集群。
集群創(chuàng)建成功后,登錄PolarDB控制臺(tái),單擊集群ID進(jìn)入集群基本信息頁。
在基本信息頁的RDS遷移功能中,確認(rèn)目標(biāo)PolarDB集群的復(fù)制延遲小于60秒即可進(jìn)行步驟三:遷移切換操作。
說明已存在DTS雙向同步的實(shí)例無法進(jìn)行一鍵遷移/升級(jí),可能會(huì)出現(xiàn)數(shù)據(jù)不一致問題;
集群創(chuàng)建后開始從RDS實(shí)例同步數(shù)據(jù),您需要在30天內(nèi)進(jìn)行步驟五:完成遷移操作,超過30天將自動(dòng)關(guān)閉遷移功能。
若為邏輯遷移(DTS數(shù)據(jù)同步)方式,在PolarDB集群創(chuàng)建完成后,若RDS遷移狀態(tài)變?yōu)?b data-tag="uicontrol" id="uicontrol-fca-7un-kf3" class="uicontrol">預(yù)檢查失敗,請(qǐng)根據(jù)錯(cuò)誤信息中的提示進(jìn)行處理。
例如,如果源RDS中創(chuàng)建了觸發(fā)器,則預(yù)檢查會(huì)失敗并報(bào)錯(cuò)“RDS實(shí)例存在觸發(fā)器”。請(qǐng)先刪除源RDS的觸發(fā)器,再點(diǎn)擊繼續(xù)遷移,或者點(diǎn)擊放棄遷移后手動(dòng)去DTS控制臺(tái)頁面創(chuàng)建遷移任務(wù)。具體可參見源庫存在觸發(fā)器時(shí)如何配置同步或遷移作業(yè)。
您可以在此步驟選擇放棄遷移,相關(guān)影響請(qǐng)參見常見問題。
步驟二:地址補(bǔ)齊(可選)
PolarDB一鍵遷移支持帶地址切換,您可保留數(shù)據(jù)庫原連接地址,無需應(yīng)用程序修改任何連接配置即可切換至PolarDB。需要注意,僅當(dāng)源RDS和目標(biāo)PolarDB集群同時(shí)存在的連接地址才支持相互切換,默認(rèn)情況下目標(biāo)端僅創(chuàng)建私網(wǎng)主地址和私網(wǎng)集群地址,如果源端包含2個(gè)以上的連接地址,您需在切換前在目標(biāo)端創(chuàng)建好對(duì)應(yīng)的連接地址,否則不會(huì)切換。關(guān)于如何為PolarDB集群和RDS實(shí)例創(chuàng)建連接地址,請(qǐng)參見管理連接地址和設(shè)置連接地址。
在目標(biāo)端集群變成運(yùn)行中后,才可進(jìn)行地址補(bǔ)齊操作。此外您還可以根據(jù)業(yè)務(wù)需要,進(jìn)行地址屬性配置、實(shí)例參數(shù)配置、只讀節(jié)點(diǎn)補(bǔ)齊等操作。
使用帶地址切換交換私網(wǎng)地址前,請(qǐng)確保源RDS實(shí)例和目標(biāo)端PolarDB集群屬于同一個(gè)VPC,否則切換后原有服務(wù)將無法連接。
步驟三:遷移切換
當(dāng)目標(biāo)PolarDB集群的復(fù)制延遲小于60秒時(shí),即可進(jìn)行遷移切換操作。
進(jìn)入PolarDB控制臺(tái)。
找到目標(biāo)集群,單擊集群的ID。
在基本信息頁面的RDS遷移功能中,單擊遷移切換。
說明切換過程一般小于5分鐘。
本操作將交換源RDS實(shí)例和目標(biāo)PolarDB集群的讀寫狀態(tài)(即將源RDS實(shí)例修改為只讀,將PolarDB集群修改為可讀可寫),同時(shí)會(huì)更換復(fù)制方向(即將PolarDB集群的新增數(shù)據(jù)同步到RDS實(shí)例)。
單擊確定繼續(xù)進(jìn)行遷移切換,單擊取消返回檢查非升級(jí)DTS任務(wù)。
在切換業(yè)務(wù)到新數(shù)據(jù)庫對(duì)話框中,選擇帶地址切換(應(yīng)用程序不用改連接配置)或不帶地址切換(應(yīng)用程序需要改為新的PolarDB連接配置)。
若您選擇帶地址切換(應(yīng)用程序不用改連接配置),操作步驟如下:
選中帶地址切換(應(yīng)用程序不用改連接配置)。系統(tǒng)會(huì)自動(dòng)交換源RDS實(shí)例和目標(biāo)PolarDB上的連接地址,您無需在應(yīng)用程序端修改任何配置即可自動(dòng)連接到目標(biāo)PolarDB集群。
重要選擇帶地址切換(應(yīng)用程序不用改連接配置)前,請(qǐng)務(wù)必閱讀帶地址切換注意事項(xiàng)。
如果待升級(jí)的RDS MySQL實(shí)例集群是已有數(shù)據(jù)傳輸服務(wù)(DTS)的源集群或目標(biāo)集群,則升級(jí)后需要將該DTS任務(wù)的源或目標(biāo)集群修改為升級(jí)后的PolarDB集群。如數(shù)據(jù)同步任務(wù)、數(shù)據(jù)遷移任務(wù)以及數(shù)據(jù)訂閱任務(wù)等。具體請(qǐng)參見修改DTS任務(wù)對(duì)象。
單擊確定。
若您選擇不帶地址切換(應(yīng)用程序需要改為新的PolarDB連接配置),操作步驟如下:
勾選不帶地址切換(應(yīng)用程序需要改為新的PolarDB連接配置)。
單擊確定。
刷新頁面,當(dāng)目標(biāo)PolarDB讀寫狀態(tài)顯示為讀寫后,盡快修改應(yīng)用中的數(shù)據(jù)庫連接地址。
步驟四:源實(shí)例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)請(qǐng)參見修改DTS任務(wù)的源或目標(biāo)庫實(shí)例。
在庫表結(jié)構(gòu)遷移和全量遷移階段,請(qǐng)勿執(zhí)行庫或表結(jié)構(gòu)變更的DDL操作,否則數(shù)據(jù)遷移任務(wù)會(huì)失敗。
進(jìn)入PolarDB控制臺(tái)。
找到目標(biāo)集群,單擊集群的ID。
在基本信息頁面的RDS遷移功能中,單擊源實(shí)例DTS任務(wù)切換。
在切換業(yè)務(wù)DTS數(shù)據(jù)庫對(duì)話框中,選擇源實(shí)例DTS任務(wù)(正向切換)或目標(biāo)實(shí)例DTS任務(wù)(切換回滾)。
重要切換前,請(qǐng)先檢查源實(shí)例和目標(biāo)實(shí)例同步數(shù)據(jù)的DTS狀態(tài),詳細(xì)DTS狀態(tài)查詢,請(qǐng)參見DTS狀態(tài)查詢。
若您選擇源實(shí)例DTS任務(wù)(正向切換),操作步驟如下:
請(qǐng)選擇您需要遷移切換數(shù)據(jù)庫實(shí)例的DTS任務(wù)。
單擊提交正向切換。
若您選擇目標(biāo)實(shí)例DTS任務(wù)(切換回滾),操作步驟如下:
請(qǐng)選擇您需要遷移切換數(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í)例,在切換回滾后,取消遷移前操作。
步驟五:完成遷移
在完成步驟一:從RDS同步后,您需要在30天內(nèi)進(jìn)行完成遷移操作。
請(qǐng)確保在進(jìn)行完成遷移操作前,數(shù)據(jù)遷移已完成,并且后續(xù)不再使用數(shù)據(jù)同步。物理遷移方式下,會(huì)中斷源RDS到PolarDB集群的數(shù)據(jù)復(fù)制;邏輯遷移方式下,將會(huì)刪除數(shù)據(jù)同步任務(wù)。
由于本操作將中斷PolarDB集群和RDS實(shí)例間的數(shù)據(jù)同步,不再提供取消遷移(可選)功能,建議您使用一段時(shí)間PolarDB集群,確認(rèn)正常后再執(zhí)行本操作。
找到目標(biāo)集群,單擊集群的ID。
在基本信息頁面的RDS遷移功能中,單擊完成遷移,在彈出的對(duì)話框中單擊確定。
說明單擊確定后,系統(tǒng)將在約2分鐘內(nèi)中斷同步關(guān)系,期間遷移狀態(tài)將顯示為關(guān)閉同步,請(qǐng)耐心等待遷移完成。
您可以在完成遷移對(duì)話框內(nèi)選擇是否關(guān)閉PolarDB集群的Binlog。關(guān)閉Binlog會(huì)帶來少量的寫入性能提升,但關(guān)閉Binlog后PolarDB集群會(huì)自動(dòng)重啟使新配置生效。
如果不再需要源RDS實(shí)例,可以手動(dòng)退訂或釋放。詳情請(qǐng)參見退訂或釋放RDS實(shí)例(可選)。
若您需要為源RDS實(shí)例進(jìn)行續(xù)費(fèi)或變配等操作,請(qǐng)先單擊完成遷移。
退訂或釋放RDS實(shí)例(可選)
當(dāng)數(shù)據(jù)從RDS遷移到PolarDB后,若業(yè)務(wù)已在PolarDB上穩(wěn)定運(yùn)行且不再需要源RDS時(shí),可以退訂或釋放源RDS實(shí)例。
對(duì)于包年包月的RDS實(shí)例,您可以申請(qǐng)轉(zhuǎn)單優(yōu)惠退款,避免浪費(fèi)閑置的RDS資源,詳情請(qǐng)參見包年包月RDS遷移至PolarDB后申請(qǐng)轉(zhuǎn)單優(yōu)惠退款。
對(duì)于按量付費(fèi)的RDS實(shí)例,請(qǐng)及時(shí)手動(dòng)釋放實(shí)例,以避免浪費(fèi)閑置的RDS資源。具體可參見釋放實(shí)例。
查看數(shù)據(jù)同步任務(wù)詳情(僅限邏輯遷移)(可選)
在使用邏輯遷移(DTS數(shù)據(jù)同步)方式進(jìn)行一鍵升級(jí)的過程中,若遇到遷移報(bào)錯(cuò)(如預(yù)檢查失敗)或者其他異常狀態(tài)(如復(fù)制延遲異常高)時(shí),您可以前往對(duì)應(yīng)的DTS數(shù)據(jù)同步任務(wù)的詳情頁,查看數(shù)據(jù)同步任務(wù)的具體信息。
進(jìn)入PolarDB控制臺(tái)。
找到目標(biāo)集群,單擊集群ID。
在基本信息頁面的RDS遷移功能中,單擊DTS數(shù)據(jù)同步任務(wù)的任務(wù)名稱,進(jìn)入DTS控制臺(tái)數(shù)據(jù)同步列表。
找到對(duì)應(yīng)的數(shù)據(jù)同步任務(wù),您可查看預(yù)檢查失敗詳情、查看同步任務(wù)詳情、查看同步任務(wù)日志等。
遷移過程中,若需求調(diào)整同步任務(wù)的同步對(duì)象(如源RDS端有新增庫時(shí),需要將新增庫也納入同步對(duì)象),您可單擊修改同步對(duì)象重新配置。