本章節介紹了一鍵升級RDS MySQL至PolarDB MySQL版的方案簡介、兩種升級方式及其優勢和對比、升級前提條件、使用限制、收費規則等。
升級方案概述
PolarDB支援將RDS MySQL一鍵升級至PolarDB MySQL版,整個過程中將自動為您建立目標端PolarDB叢集並同步資料。升級後的PolarDB叢集包含源RDS執行個體的帳號資訊、資料庫、IP白名單和必要的參數。
您可以將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資料同步)方式實現。具體請參見物理遷移和邏輯遷移對比。
源RDS MySQL執行個體的計費類型不管是訂用帳戶還是隨用隨付,都可以一鍵升級至PolarDB MySQL版,並且目標PolarDB叢集的計費方式可以是訂用帳戶、隨用隨付或是Serverless。
物理遷移和邏輯遷移對比
當前的一鍵升級功能通過物理遷移(物理複製)和邏輯遷移(DTS資料同步)兩種方式實現。
物理遷移(物理複製)方式
先通過物理複製的方式,先從源RDS MySQL執行個體複製全量資料,然後保持增量同步處理至建立的PolarDB MySQL版叢集中。
增量同步處理過程中,所有建立的非InnoDB表都會轉成InnoDB表。
邏輯遷移(DTS資料同步)方式
通過Data Transmission Service,建立資料同步任務,將源RDS MySQL執行個體的庫表結構和全量資料同步至建立的PolarDB MySQL版叢集中,然後保持增量資料同步。
對比
物理遷移(物理複製)和邏輯遷移(DTS資料同步)方式區別如下:
對比項 | 物理遷移(物理複製) | 邏輯遷移(DTS資料同步) |
是否需要DTS工具 | 不需要 | 需要 |
是否支援遷移或同步增量資料 | 支援 | 支援 |
是否影響源RDS操作 | 不影響 | 不影響 |
源和目標的MySQL版本能否不同 | 僅支援5.6和5.7本地碟執行個體相同版本升級 | 支援相同版本和跨版本升級 |
升級後是否需要在PolarDB叢集中建立資料庫賬戶 | 不需要,升級後PolarDB叢集包含源RDS執行個體的帳號 | 不需要,升級後PolarDB叢集包含源RDS執行個體的帳號 |
是否支援新增庫的遷移 | 支援 | 不支援 如需同步新增庫,請前往DTS控制台,並修改同步對象,將新增庫配置到正反向同步任務中。 |
是否支援結構遷移 | 支援 | 支援,但只支援遷移庫、表、視圖、預存程序、函數這五類結構 |
支援遷移的RDS MySQL版本和儲存類型如下:
RDS MySQL版本 | 基礎系列 | 高可用系列 | 叢集系列 |
5.6 | 無 | 本地碟 | 無 |
5.7 | 雲端硬碟 | 本地碟、雲端硬碟 | 雲端硬碟 |
8.0 | 雲端硬碟 | 本地碟、雲端硬碟 | 雲端硬碟 |
其中,除RDS MySQL 5.6和5.7高可用版且儲存類型為本地SSD盤的叢集,遷移至相同版本的PolarDB MySQL版叢集屬於物理遷移(物理複製)外,其他形態的RDS MySQL叢集遷移至相同或不同版本的PolarDB MySQL版叢集均為邏輯遷移(DTS資料同步)。
升級方案優勢
一鍵升級功能具有如下優勢:
可保留資料庫原串連地址,無需應用程式修改任何串連配置即可切換至PolarDB。
升級鏈路30天內免費,不支援虛商、RAM使用者(子帳號)等帳號參加該免費活動。
遷移過程資料0丟失。
支援增量遷移,停機時間小於10分鐘。
支援線上熱遷移,遷移過程僅閃斷一次(即當業務從RDS切換至PolarDB時)。
支援復原,遷移失敗可以在10分鐘內恢複。
前提條件
通過物理遷移方式進行一鍵升級,源RDS執行個體版本需滿足如下條件,邏輯遷移對源RDS執行個體版本無限制:
針對RDS MySQL 5.6高可用版,核心小版本需為20190815或以上版本。
針對RDS MySQL 5.7高可用版,核心小版本需為20200331或以上版本。
說明您可以執行
SHOW VARIABLES LIKE '%rds_release_date%';
命令查看源RDS執行個體的核心小版本。如果源RDS執行個體的核心小版本低於上述指定版本,您可以將核心小版本升級到最新版。關於如何升級核心小版本,請參見升級核心小版本。物理遷移時,建議將本地日誌(Binlog)的保留時間長度設定為至少24小時或以上。
僅表格儲存體引擎類型為InnoDB或X-Engine的源RDS執行個體支援一鍵升級功能。
若您是通過邏輯遷移(DTS資料同步)方式進行一鍵升級,如果源RDS建立了觸發器,請先刪除RDS的觸發器,否則會導致遷移中斷。具體可參見源庫存在觸發器時如何配置同步或遷移作業。
如果RDS處於高安全模式(資料庫代理模式),需要建立有高許可權帳號(請參見建立帳號),或者切換到高效能模式(參見【產品/功能變更】RDS網路鏈路升級說明),才能進行一鍵升級。
使用限制
僅支援將RDS MySQL一鍵升級至相同版本或更高版本的PolarDB MySQL版,不支援降版本升級。如不支援從RDS MySQL 5.7一鍵升級至PolarDB MySQL版 5.6,不支援從RDS MySQL 8.0.2一鍵升級至PolarDB MySQL版 8.0.1。
帶地址切換中,當前不支援IPv6地址的帶地址切換。
已有DTS雙向同步的叢集無法進行一鍵遷移。
物理遷移(物理複製)方式的使用限制如下:
暫不支援跨地區遷移。
遷移期間不允許對源RDS執行個體執行參數設定的操作。
邏輯遷移(DTS資料同步)方式的使用限制如下:
暫不支援跨地區遷移。
遷移期間不允許對源RDS執行個體執行參數設定的操作。
僅支援遷移庫、表、視圖、預存程序、函數這五類結構,不支援遷移event結構。
對源庫有如下限制:
類型
說明
源庫限制
Binlog日誌:
需開啟Binlog,開啟方法請參見設定執行個體參數,並且binlog_row_image為full。否則預檢查階段提示報錯,且無法成功啟動資料同步任務。
如為增量同步處理任務,DTS要求來源資料庫的本地Binlog日誌儲存24小時以上,如為全量同步和增量同步處理任務,DTS要求來源資料庫的本地Binlog日誌至少保留7天以上(您可在全量同步完成後將Binlog儲存時間設定為24小時以上),否則DTS可能因無法擷取Binlog而導致任務失敗,極端情況下甚至可能會導致資料不一致或丟失。由於您所設定的Binlog日誌儲存時間低於DTS要求的時間進而導致的問題,不在DTS的SLA保障範圍內。如源為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
其他限制:
類型
說明
其他限制
執行資料同步前需評估源庫和目標庫的效能,同時建議業務低峰期執行資料同步。否則全量資料初始化時將佔用源庫和目標庫一定的讀寫資源,可能會導致資料庫的負載上升。
全量初始化會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量初始化完成後目標執行個體的資料表空間比源執行個體的資料表空間大。
在DTS同步期間,不允許有除DTS外的資料寫入目標庫,否則會導致源庫與目標庫資料不一致。例如,有除DTS外的資料寫入目標庫時,使用DMS執行線上DDL變更,可能引起目標庫資料丟失。
DTS預設同步到目標資料庫中時會取消外鍵約束,因此來源資料庫的級聯、刪除等操作不會同步到目標資料庫。
注意事項
源RDS和目標PolarDB叢集對應串連地址的SSL開啟狀態需保持一致:
如果源RDS的串連地址開啟了SSL,並且您選擇帶地址切換並切換該地址,請確保PolarDB叢集對應的串連地址已開啟SSL。
如果源RDS的串連地址未開啟SSL,則請確保目標PolarDB叢集對應串連地址的SSL功能也保持關閉。
如果源RDS主執行個體和唯讀執行個體的白名單配置不一致,為了保證唯讀節點的白名單自動同步到目標PolarDB叢集,請提前將唯讀節點的白名單合入到主節點的白名單配置中。
邏輯遷移過程中,全量資料初始化時將佔用源庫和目標庫一定的讀寫資源,可能會導致資料庫的負載上升。
邏輯遷移過程中,全量資料初始化時會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量初始化完成後目標執行個體的資料表空間比源執行個體的資料表空間大。
邏輯遷移過程中,請勿手動釋放DTS任務。
全量資料同步需要一定時間,耗時與資料量大小有關,在此期間,目標端狀態為建立中,請耐心等待。
收費規則
物理遷移(物理複製)方式
物理遷移(物理複製)方式中,整個遷移過程不收取額外費用,僅收取目標PolarDB叢集的費用。
若目標PolarDB叢集為隨用隨付叢集,目的地組群在整個遷移過程中不計費,而是在如下操作後才開始正常隨用隨付:
若目標PolarDB叢集為訂用帳戶叢集,則在建立目標PolarDB叢集時預支付對應的費用。
邏輯遷移(DTS資料同步)方式
邏輯遷移(DTS資料同步)方式中,不收取DTS遷移和同步任務的費用(不支援虛商、RAM使用者(子帳號)等帳號參加該免費活動),僅收取目標PolarDB叢集的費用。
備份策略說明
PolarDB的常規備份周期、備份開始時間與RDS的常規備份周期、備份開始時間保持一致。
RDS與PolarDB的備份保留時間長度對應關係如下:
如果RDS的備份保留時間長度小於或等於14天,則PolarDB的一級備份保留時間長度與RDS的備份保留時間長度一致。
如果RDS的備份保留時間長度大於14天且小於30天,則PolarDB的一級備份保留時間長度固定為14天,同時開啟二級備份,且PolarDB的二級備份同地區保留時間長度固定為30天;如果RDS的備份保留時間長度大於30天,則PolarDB開啟二級備份且二級備份同地區保留時間長度與RDS的備份保留時間長度一致。
如果RDS的備份為長期保留,則PolarDB的一級備份保留時間長度固定為14天,並開啟二級備份,且備份長期保留。
如果RDS開啟了高頻備份,則PolarDB預設開啟高頻備份。RDS與PolarDB高頻備份的對應頻率如下:
如果RDS的高頻備份頻率小於或等於120分鐘,則PolarDB的高頻備份頻率固定為120分鐘。
如果RDS高頻備份頻率大於120分鐘且小於或等於180分鐘,則PolarDB高頻備份頻率固定為180分鐘。
如果RDS備份頻率為其他頻率,則PolarDB的高頻備份頻率固定為240分鐘。
遷移完成後,您可以在控制台上根據實際情況來修改備份策略。
帶地址切換
一鍵升級RDS至PolarDB時支援帶地址切換,系統會自動交換RDS和PolarDB上的串連地址,您無需在應用程式端修改任何配置即可自動連接到PolarDB。選擇該切換方式後,RDS串連地址對應的PolarDB串連地址如下圖所示。
使用帶地址切換功能時,需注意以下幾點:
帶地址切換隻會切換RDS和PolarDB的網域名稱,Vswitch、Vip等配置不會切換。
僅當源RDS和目標PolarDB叢集同時存在的串連地址才支援相互切換,預設情況下目標端僅建立私網主地址和私網叢集地址,如果源端包含2個以上的串連地址,您需在切換前在目標端建立好對應的串連地址,否則不會切換。關於如何為PolarDB叢集和RDS執行個體建立串連地址,請參見管理串連地址和設定串連地址。
帶地址切換時,RDS主地址一定會切換,您可以選擇和PolarDB主地址或預設叢集地址切換。RDS的獨享Proxy 位址及唯讀地址可以和PolarDB的預設叢集地址及自訂地址切換,可以選擇不切換或切換多組。由於PolarDB最多可以建立7個叢集地址,因此最多隻支援7組RDS獨享Proxy 位址及唯讀地址的切換。
在增量同步處理完成後,目標端叢集會變成運行中,在帶地址切換前,您可以進行參數配置、唯讀節點補齊、地址補齊等操作。
使用帶地址切換交換私網地址前,請確保源RDS執行個體和目標端PolarDB叢集屬於同一個VPC,否則切換後原有服務將無法串連。
切換網域名稱後,如果您需要使用DMS登入PolarDB資料庫,請確保配置了正確的叢集ID或串連串。
遷移評估
為了保證遷移鏈路的順利和更好的遷移體驗,PolarDB提供了遷移評估功能,您可以校正在開始遷移前,對執行個體狀態、遷移任務依賴、源執行個體屬性資訊等前提條件進行預校正,提前發現影響遷移進度的前置條件並處理,以降低遷移過程中的處理成本和資源成本。
具體操作說明,請參見遷移評估。
相關API
API | 描述 |
建立PolarDB叢集。 說明 一鍵升級時,參數CreationOption取值需要為MigrationFromRDS。 | |
查詢PolarDB叢集的遷移狀態。 | |
修改遷移任務,進行任務切換或復原。 | |
取消或完成遷移。 |