方案概述
本章節(jié)介紹了一鍵升級RDS MySQL至PolarDB MySQL版的方案簡介、兩種升級方式及其優(yōu)勢和對比、升級前提條件、使用限制、收費(fèi)規(guī)則等。
升級方案概述
PolarDB支持將RDS MySQL一鍵升級至PolarDB MySQL版,整個(gè)過程中將自動為您創(chuàng)建目標(biāo)端PolarDB集群并同步數(shù)據(jù)。升級后的PolarDB集群包含源RDS實(shí)例的賬號信息、數(shù)據(jù)庫、IP白名單和必要的參數(shù)。
您可以將RDS MySQL遷移至相同或不同版本的PolarDB MySQL版。如RDS MySQL 5.6一鍵升級至PolarDB MySQL版 5.6,RDS MySQL 5.6升級至PolarDB MySQL版 8.0。
說明RDS MySQL 8.0版本、RDS MySQL云盤版本一鍵升級至PolarDB MySQL版,以及RDS MySQL跨版本一鍵升級至PolarDB MySQL版,都是通過邏輯遷移(DTS數(shù)據(jù)同步)方式實(shí)現(xiàn)。具體請參見物理遷移和邏輯遷移對比。
源RDS MySQL實(shí)例的計(jì)費(fèi)類型不管是包年包月還是按量付費(fèi),都可以一鍵升級至PolarDB MySQL版,并且目標(biāo)PolarDB集群的計(jì)費(fèi)方式可以是包年包月、按量付費(fèi)或是Serverless。
物理遷移和邏輯遷移對比
當(dāng)前的一鍵升級功能通過物理遷移(物理復(fù)制)和邏輯遷移(DTS數(shù)據(jù)同步)兩種方式實(shí)現(xiàn)。
物理遷移(物理復(fù)制)方式
先通過物理復(fù)制的方式,先從源RDS MySQL實(shí)例復(fù)制全量數(shù)據(jù),然后保持增量同步至創(chuàng)建的PolarDB MySQL版集群中。
增量同步過程中,所有創(chuàng)建的非InnoDB表都會轉(zhuǎn)成InnoDB表。
邏輯遷移(DTS數(shù)據(jù)同步)方式
通過數(shù)據(jù)傳輸服務(wù)DTS,創(chuàng)建數(shù)據(jù)同步任務(wù),將源RDS MySQL實(shí)例的庫表結(jié)構(gòu)和全量數(shù)據(jù)同步至創(chuàng)建的PolarDB MySQL版集群中,然后保持增量數(shù)據(jù)同步。
對比
物理遷移(物理復(fù)制)和邏輯遷移(DTS數(shù)據(jù)同步)方式區(qū)別如下:
對比項(xiàng) | 物理遷移(物理復(fù)制) | 邏輯遷移(DTS數(shù)據(jù)同步) |
是否需要DTS工具 | 不需要 | 需要 |
是否支持遷移或同步增量數(shù)據(jù) | 支持 | 支持 |
是否影響源RDS操作 | 不影響 | 不影響 |
源和目標(biāo)的MySQL版本能否不同 | 僅支持5.6和5.7本地盤實(shí)例相同版本升級 | 支持相同版本和跨版本升級 |
升級后是否需要在PolarDB集群中創(chuàng)建數(shù)據(jù)庫賬戶 | 不需要,升級后PolarDB集群包含源RDS實(shí)例的賬號 | 不需要,升級后PolarDB集群包含源RDS實(shí)例的賬號 |
是否支持新增庫的遷移 | 支持 | 不支持 如需同步新增庫,請前往DTS控制臺,并修改同步對象,將新增庫配置到正反向同步任務(wù)中。 |
是否支持結(jié)構(gòu)遷移 | 支持 | 支持,但只支持遷移庫、表、視圖、存儲過程、函數(shù)這五類結(jié)構(gòu) |
支持遷移的RDS MySQL版本和存儲類型如下:
RDS MySQL版本 | 基礎(chǔ)系列 | 高可用系列 | 集群系列 |
5.6 | 無 | 本地盤 | 無 |
5.7 | 云盤 | 本地盤、云盤 | 云盤 |
8.0 | 云盤 | 本地盤、云盤 | 云盤 |
其中,除RDS MySQL 5.6和5.7高可用版且存儲類型為本地SSD盤的集群,遷移至相同版本的PolarDB MySQL版集群屬于物理遷移(物理復(fù)制)外,其他形態(tài)的RDS MySQL集群遷移至相同或不同版本的PolarDB MySQL版集群均為邏輯遷移(DTS數(shù)據(jù)同步)。
升級方案優(yōu)勢
一鍵升級功能具有如下優(yōu)勢:
可保留數(shù)據(jù)庫原連接地址,無需應(yīng)用程序修改任何連接配置即可切換至PolarDB。
升級鏈路30天內(nèi)免費(fèi),不支持虛商、RAM用戶(子賬號)等賬號參加該免費(fèi)活動。
遷移過程數(shù)據(jù)0丟失。
支持增量遷移,停機(jī)時(shí)間小于10分鐘。
支持在線熱遷移,遷移過程僅閃斷一次(即當(dāng)業(yè)務(wù)從RDS切換至PolarDB時(shí))。
支持回滾,遷移失敗可以在10分鐘內(nèi)恢復(fù)。
對于包年包月的RDS實(shí)例,數(shù)據(jù)從RDS遷移到PolarDB后,若業(yè)務(wù)已在PolarDB上穩(wěn)定運(yùn)行且不再需要RDS時(shí),您可以申請轉(zhuǎn)單優(yōu)惠退款,避免浪費(fèi)閑置的RDS資源,詳情請參見包年包月RDS遷移至PolarDB后申請轉(zhuǎn)單優(yōu)惠退款。
前提條件
通過物理遷移方式進(jìn)行一鍵升級,源RDS實(shí)例版本需滿足如下條件,邏輯遷移對源RDS實(shí)例版本無限制:
針對RDS MySQL 5.6高可用版,內(nèi)核小版本需為20190815或以上版本。
針對RDS MySQL 5.7高可用版,內(nèi)核小版本需為20200331或以上版本。
說明您可以執(zhí)行
SHOW VARIABLES LIKE '%rds_release_date%';
命令查看源RDS實(shí)例的內(nèi)核小版本。如果源RDS實(shí)例的內(nèi)核小版本低于上述指定版本,您可以將內(nèi)核小版本升級到最新版。關(guān)于如何升級內(nèi)核小版本,請參見升級內(nèi)核小版本。物理遷移時(shí),建議將本地日志(Binlog)的保留時(shí)長設(shè)置為至少24小時(shí)或以上。
僅表存儲引擎類型為InnoDB或X-Engine的源RDS實(shí)例支持一鍵升級功能。
若您是通過邏輯遷移(DTS數(shù)據(jù)同步)方式進(jìn)行一鍵升級,如果源RDS創(chuàng)建了觸發(fā)器,請先刪除RDS的觸發(fā)器,否則會導(dǎo)致遷移中斷。具體可參見源庫存在觸發(fā)器時(shí)如何配置同步或遷移作業(yè)。
如果RDS處于高安全模式(數(shù)據(jù)庫代理模式),需要?jiǎng)?chuàng)建有高權(quán)限賬號(請參見創(chuàng)建賬號),或者切換到高性能模式(參見【產(chǎn)品/功能變更】RDS網(wǎng)絡(luò)鏈路升級說明),才能進(jìn)行一鍵升級。
使用限制
僅支持將RDS MySQL一鍵升級至相同版本或更高版本的PolarDB MySQL版,不支持降版本升級。如不支持從RDS MySQL 5.7一鍵升級至PolarDB MySQL版 5.6,不支持從RDS MySQL 8.0.2一鍵升級至PolarDB MySQL版 8.0.1。
帶地址切換中,當(dāng)前不支持IPv6地址的帶地址切換。
已有DTS雙向同步的集群無法進(jìn)行一鍵遷移。
物理遷移(物理復(fù)制)方式的使用限制如下:
暫不支持跨地域遷移。
遷移期間不允許對源RDS實(shí)例執(zhí)行參數(shù)設(shè)置的操作。
邏輯遷移(DTS數(shù)據(jù)同步)方式的使用限制如下:
說明在庫表結(jié)構(gòu)遷移和全量遷移階段,請勿執(zhí)行庫或表結(jié)構(gòu)變更的DDL操作,否則數(shù)據(jù)遷移任務(wù)會失敗。
暫不支持跨地域遷移。
遷移期間不允許對源RDS實(shí)例執(zhí)行參數(shù)設(shè)置的操作。
僅支持遷移庫、表、視圖、存儲過程、函數(shù)這五類結(jié)構(gòu),不支持遷移event結(jié)構(gòu)。
對源庫有如下限制:
類型
說明
源庫限制
Binlog日志:
需開啟Binlog,開啟方法請參見設(shè)置實(shí)例參數(shù),并且binlog_row_image為full。否則預(yù)檢查階段提示報(bào)錯(cuò),且無法成功啟動數(shù)據(jù)同步任務(wù)。
如為增量同步任務(wù),DTS要求源數(shù)據(jù)庫的本地Binlog日志保存24小時(shí)以上,如為全量同步和增量同步任務(wù),DTS要求源數(shù)據(jù)庫的本地Binlog日志至少保留7天以上(您可在全量同步完成后將Binlog保存時(shí)間設(shè)置為24小時(shí)以上),否則DTS可能因無法獲取Binlog而導(dǎo)致任務(wù)失敗,極端情況下甚至可能會導(dǎo)致數(shù)據(jù)不一致或丟失。由于您所設(shè)置的Binlog日志保存時(shí)間低于DTS要求的時(shí)間進(jìn)而導(dǎo)致的問題,不在DTS的SLA保障范圍內(nèi)。如源為RDS MySQL,具體操作請參見管理本地日志(Binlog)。
SQL語句限制:
操作類型
SQL語句
DML
INSERT、UPDATE、DELETE
DDL
ALTER TABLE、ALTER VIEW
CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、CREATE VIEW
DROP INDEX、DROP TABLE
RENAME TABLE
TRUNCATE TABLE
其他限制:
類型
說明
其他限制
執(zhí)行數(shù)據(jù)同步前需評估源庫和目標(biāo)庫的性能,同時(shí)建議業(yè)務(wù)低峰期執(zhí)行數(shù)據(jù)同步。否則全量數(shù)據(jù)初始化時(shí)將占用源庫和目標(biāo)庫一定的讀寫資源,可能會導(dǎo)致數(shù)據(jù)庫的負(fù)載上升。
全量初始化會并發(fā)執(zhí)行INSERT操作,導(dǎo)致目標(biāo)數(shù)據(jù)庫的表產(chǎn)生碎片,因此全量初始化完成后目標(biāo)實(shí)例的表空間比源實(shí)例的表空間大。
在DTS同步期間,不允許有除DTS外的數(shù)據(jù)寫入目標(biāo)庫,否則會導(dǎo)致源庫與目標(biāo)庫數(shù)據(jù)不一致。例如,有除DTS外的數(shù)據(jù)寫入目標(biāo)庫時(shí),使用DMS執(zhí)行在線DDL變更,可能引起目標(biāo)庫數(shù)據(jù)丟失。
DTS默認(rèn)同步到目標(biāo)數(shù)據(jù)庫中時(shí)會取消外鍵約束,因此源數(shù)據(jù)庫的級聯(lián)、刪除等操作不會同步到目標(biāo)數(shù)據(jù)庫。
注意事項(xiàng)
源RDS和目標(biāo)PolarDB集群對應(yīng)連接地址的SSL開啟狀態(tài)需保持一致:
如果源RDS的連接地址開啟了SSL,并且您選擇帶地址切換并切換該地址,請確保PolarDB集群對應(yīng)的連接地址已開啟SSL。
如果源RDS的連接地址未開啟SSL,則請確保目標(biāo)PolarDB集群對應(yīng)連接地址的SSL功能也保持關(guān)閉。
如果源RDS主實(shí)例和只讀實(shí)例的白名單配置不一致,為了保證只讀節(jié)點(diǎn)的白名單自動同步到目標(biāo)PolarDB集群,請?zhí)崆皩⒅蛔x節(jié)點(diǎn)的白名單合入到主節(jié)點(diǎn)的白名單配置中。
邏輯遷移過程中,全量數(shù)據(jù)初始化時(shí)將占用源庫和目標(biāo)庫一定的讀寫資源,可能會導(dǎo)致數(shù)據(jù)庫的負(fù)載上升。
邏輯遷移過程中,全量數(shù)據(jù)初始化時(shí)會并發(fā)執(zhí)行INSERT操作,導(dǎo)致目標(biāo)數(shù)據(jù)庫的表產(chǎn)生碎片,因此全量初始化完成后目標(biāo)實(shí)例的表空間比源實(shí)例的表空間大。
邏輯遷移過程中,請勿手動釋放DTS任務(wù)。
全量數(shù)據(jù)同步需要一定時(shí)間,耗時(shí)與數(shù)據(jù)量大小有關(guān),在此期間,目標(biāo)端狀態(tài)為創(chuàng)建中,請耐心等待。
收費(fèi)規(guī)則
物理遷移(物理復(fù)制)方式
物理遷移(物理復(fù)制)方式中,整個(gè)遷移過程不收取額外費(fèi)用,僅收取目標(biāo)PolarDB集群的費(fèi)用。
若目標(biāo)PolarDB集群為按量付費(fèi)集群,目標(biāo)集群在整個(gè)遷移過程中不計(jì)費(fèi),而是在如下操作后才開始正常按量計(jì)費(fèi):
若目標(biāo)PolarDB集群為包年包月集群,則在創(chuàng)建目標(biāo)PolarDB集群時(shí)預(yù)支付對應(yīng)的費(fèi)用。
邏輯遷移(DTS數(shù)據(jù)同步)方式
邏輯遷移(DTS數(shù)據(jù)同步)方式中,不收取DTS遷移和同步任務(wù)的費(fèi)用(不支持虛商、RAM用戶(子賬號)等賬號參加該免費(fèi)活動),僅收取目標(biāo)PolarDB集群的費(fèi)用。
若目標(biāo)PolarDB集群為按量付費(fèi)集群,目標(biāo)集群在整個(gè)遷移過程中不計(jì)費(fèi),而是在如下操作后才開始正常按量計(jì)費(fèi):
若目標(biāo)PolarDB集群為Serverless集群,當(dāng)目標(biāo)集群的狀態(tài)變?yōu)?b>運(yùn)行中后,即開始計(jì)費(fèi)。
若目標(biāo)PolarDB集群為包年包月集群,則在創(chuàng)建目標(biāo)PolarDB集群時(shí)預(yù)支付對應(yīng)的費(fèi)用。
申請轉(zhuǎn)單優(yōu)惠退款
對于包年包月的RDS實(shí)例,從RDS遷移到PolarDB完成后,若確定業(yè)務(wù)已在PolarDB上穩(wěn)定運(yùn)行且不再需要RDS時(shí),您可以申請轉(zhuǎn)單優(yōu)惠退款,避免浪費(fèi)閑置的RDS資源。
備份策略說明
PolarDB的常規(guī)備份周期、備份開始時(shí)間與RDS的常規(guī)備份周期、備份開始時(shí)間保持一致。
RDS與PolarDB的備份保留時(shí)長對應(yīng)關(guān)系如下:
如果RDS的備份保留時(shí)長小于或等于14天,則PolarDB的一級備份保留時(shí)長與RDS的備份保留時(shí)長一致。
如果RDS的備份保留時(shí)長大于14天且小于30天,則PolarDB的一級備份保留時(shí)長固定為14天,同時(shí)開啟二級備份,且PolarDB的二級備份同地域保留時(shí)長固定為30天;如果RDS的備份保留時(shí)長大于30天,則PolarDB開啟二級備份且二級備份同地域保留時(shí)長與RDS的備份保留時(shí)長一致。
如果RDS的備份為長期保留,則PolarDB的一級備份保留時(shí)長固定為14天,并開啟二級備份,且備份長期保留。
如果RDS開啟了高頻備份,則PolarDB默認(rèn)開啟高頻備份。RDS與PolarDB高頻備份的對應(yīng)頻率如下:
如果RDS的高頻備份頻率小于或等于120分鐘,則PolarDB的高頻備份頻率固定為120分鐘。
如果RDS高頻備份頻率大于120分鐘且小于或等于180分鐘,則PolarDB高頻備份頻率固定為180分鐘。
如果RDS備份頻率為其他頻率,則PolarDB的高頻備份頻率固定為240分鐘。
遷移完成后,您可以在控制臺上根據(jù)實(shí)際情況來修改備份策略。
帶地址切換
一鍵升級RDS至PolarDB時(shí)支持帶地址切換,系統(tǒng)會自動交換RDS和PolarDB上的連接地址,您無需在應(yīng)用程序端修改任何配置即可自動連接到PolarDB。選擇該切換方式后,RDS連接地址對應(yīng)的PolarDB連接地址如下圖所示。
使用帶地址切換功能時(shí),需注意以下幾點(diǎn):
帶地址切換只會切換RDS和PolarDB的域名,Vswitch、Vip等配置不會切換。
僅當(dāng)源RDS和目標(biāo)PolarDB集群同時(shí)存在的連接地址才支持相互切換,默認(rèn)情況下目標(biāo)端僅創(chuàng)建私網(wǎng)主地址和私網(wǎng)集群地址,如果源端包含2個(gè)以上的連接地址,您需在切換前在目標(biāo)端創(chuàng)建好對應(yīng)的連接地址,否則不會切換。關(guān)于如何為PolarDB集群和RDS實(shí)例創(chuàng)建連接地址,請參見管理連接地址和設(shè)置連接地址。
帶地址切換時(shí),RDS主地址一定會切換,您可以選擇和PolarDB主地址或默認(rèn)集群地址切換。RDS的獨(dú)享代理地址及只讀地址可以和PolarDB的默認(rèn)集群地址及自定義地址切換,可以選擇不切換或切換多組。由于PolarDB最多可以創(chuàng)建7個(gè)集群地址,因此最多只支持7組RDS獨(dú)享代理地址及只讀地址的切換。
在增量同步完成后,目標(biāo)端集群會變成運(yùn)行中,在帶地址切換前,您可以進(jìn)行參數(shù)配置、只讀節(jié)點(diǎn)補(bǔ)齊、地址補(bǔ)齊等操作。
使用帶地址切換交換私網(wǎng)地址前,請確保源RDS實(shí)例和目標(biāo)端PolarDB集群屬于同一個(gè)VPC,否則切換后原有服務(wù)將無法連接。
切換域名后,如果您需要使用DMS登錄PolarDB數(shù)據(jù)庫,請確保配置了正確的集群ID或連接串。
遷移評估
為了保證遷移鏈路的順利和更好的遷移體驗(yàn),PolarDB提供了遷移評估功能,您可以校驗(yàn)在開始遷移前,對實(shí)例狀態(tài)、遷移任務(wù)依賴、源實(shí)例屬性信息等前提條件進(jìn)行預(yù)校驗(yàn),提前發(fā)現(xiàn)影響遷移進(jìn)度的前置條件并處理,以降低遷移過程中的處理成本和資源成本。
具體操作說明,請參見遷移評估。
相關(guān)API
API | 描述 |
創(chuàng)建PolarDB集群。 說明 一鍵升級時(shí),參數(shù)CreationOption取值需要為MigrationFromRDS。 | |
查詢PolarDB集群的遷移狀態(tài)。 | |
修改遷移任務(wù),進(jìn)行任務(wù)切換或回滾。 | |
取消或完成遷移。 |