本章節介紹了一鍵複製RDS MySQL至PolarDB MySQL版的方案簡介、兩種複製方式及其優勢和對比、複製前提條件、使用限制、收費規則等。
注意事項
通過一鍵複製方式遷移到PolarDB叢集,源RDS執行個體的增量資料不會同步到PolarDB叢集。
如果需要在建立PolarDB叢集的同時,使源RDS執行個體的增量資料即時同步到PolarDB叢集,即實現平滑遷移(不停機遷移),請參見一鍵升級RDS MySQL至PolarDB MySQL版。
方案概述
PolarDB支援從RDS MySQL一鍵複製資料至新的PolarDB MySQL版叢集。一鍵複製功能將會建立一個與源RDS執行個體的資料相同的PolarDB叢集,PolarDB叢集包含源RDS執行個體的帳號、資料庫、IP白名單和必要的參數。
當前支援一鍵複製的源RDS MySQL的版本和儲存類型,以及目標PolarDB MySQL版的版本情況如下:
支援源RDS MySQL所有版本以及所有儲存類型執行個體的遷移。不管是RDS MySQL 5.6、5.7還是8.0,本地SSD盤還是雲端硬碟儲存,都支援一鍵複製至PolarDB MySQL版。
支援遷移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資料同步)方式實現。
物理遷移和邏輯遷移對比
當前的一鍵複製功能支援通過物理遷移(物理複製)和邏輯遷移(DTS資料同步)兩種方式實現。
物理遷移(物理複製)方式:通過物理複製的方式,從源RDS MySQL執行個體複製全量資料至建立的PolarDB MySQL版叢集中。
邏輯遷移(DTS資料同步)方式:通過Data Transmission Service,建立資料同步任務,將源RDS MySQL執行個體的庫表結構和全量資料同步至建立的PolarDB MySQL版叢集中。
物理遷移(物理複製)和邏輯遷移(DTS資料同步)方式區別如下:
對比項 | 物理遷移(物理複製) | 邏輯遷移(DTS資料同步) |
是否需要DTS工具 | 不需要 | 需要 |
是否支援遷移或同步增量資料 | 不支援 | 不支援 |
是否影響源RDS操作 | 不影響 | 不影響 |
源和目標的MySQL版本能否不同 | 僅支援5.6和5.7本地碟執行個體相同版本複製 | 支援相同版本和跨版本複製 |
複製後是否需要在PolarDB叢集中建立資料庫賬戶 | 不需要,複製後PolarDB叢集包含源RDS執行個體的帳號 | 不需要,複製後PolarDB叢集包含源RDS執行個體的帳號 |
是否支援新增庫的遷移 | 不支援 | 不支援 |
支援複製的RDS MySQL版本和儲存類型如下:
RDS MySQL版本 | 基礎版 | 高可用版 | 叢集版 | 三節點企業版 |
5.6 | 無 | 本地碟 | 無 | 本地碟 |
5.7 | 雲端硬碟 | 本地碟、雲端硬碟 | 雲端硬碟 | 本地碟 |
8.0 | 雲端硬碟 | 本地碟、雲端硬碟 | 雲端硬碟 | 本地碟 |
其中,除RDS MySQL 5.6和5.7高可用版且儲存類型為本地SSD盤的叢集,複製至相同版本的PolarDB MySQL版叢集屬於物理遷移(物理複製)外,其他形態的RDS MySQL叢集複製至相同或不同版本的PolarDB MySQL版叢集均為邏輯遷移(DTS資料同步)。
方案優勢
複製過程資料0丟失。
前提條件
通過物理遷移方式進行一鍵複製,源RDS執行個體版本需滿足如下條件,邏輯遷移無版本限制:
針對RDS MySQL 5.6,核心小版本需為20190815或以上版本。
針對RDS MySQL 5.7,核心小版本需為20200331或以上版本。
說明您可以執行
SHOW VARIABLES LIKE '%rds_release_date%';命令查看源RDS執行個體的核心小版本。如果源RDS執行個體的核心小版本低於上述指定版本,您可以將核心小版本升級到最新版。關於如何升級核心小版本,請參見升級核心小版本。僅表格儲存體引擎類型為InnoDB或X-Engine的源RDS執行個體支援一鍵複製功能。
源RDS執行個體未開啟TDE和SSL。若已開啟,您可以選擇手動建立DTS資料移轉任務將源RDS遷移至PolarDB。更多詳情,請參見RDS MySQL遷移至PolarDB MySQL版。
如果RDS處於高安全模式(資料庫代理模式),需要建立有高許可權帳號(請參見建立帳號),或者切換到高效能模式(參見【產品/功能變更】RDS網路鏈路升級說明),才能進行一鍵複製。

使用限制
僅支援將RDS MySQL一鍵複製至相同版本或更高版本的PolarDB MySQL版,不支援降版本複製。
如:不支援從RDS MySQL 5.7一鍵複製至PolarDB MySQL版 5.6,不支援從RDS MySQL 8.0.2一鍵複製至PolarDB MySQL版 8.0.1。
物理遷移(物理複製)方式的使用限制如下:
暫不支援跨地區遷移。
遷移期間不允許對源RDS執行個體執行參數設定的操作。
邏輯遷移(DTS資料同步)方式的使用限制如下:
暫不支援跨地區遷移。
遷移期間不允許對源RDS執行個體執行參數設定的操作。
對源庫有如下限制:
類型
說明
源庫限制
待同步的表需具備主鍵或唯一約束,且欄位具有唯一性,否則可能會導致目標資料庫中出現重複資料。
如同步對象為表層級,且需進行編輯(如表列名映射),則單次同步任務僅支援同步至多1000張表。當超出數量限制,任務提交後會顯示請求報錯,此時建議您拆分待同步的表,分批配置多個任務,或者配置整庫的同步任務。
Binlog日誌:需開啟Binlog,開啟方法請參見設定執行個體參數,並且binlog_row_image為full。否則預檢查階段提示報錯,且無法成功啟動資料同步任務。
其他限制:
類型
說明
其他限制
執行資料同步前需評估源庫和目標庫的效能,同時建議業務低峰期執行資料同步。否則全量資料初始化時將佔用源庫和目標庫一定的讀寫資源,可能會導致資料庫的負載上升。
全量初始化會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量初始化完成後目標執行個體的資料表空間比源執行個體的資料表空間大。
如同步對象為單個或多個表(非整庫),那麼在資料同步時,勿對源庫的同步對象使用gh-ost或pt-online-schema-change等類似工具執行線上DDL變更,否則會導致同步失敗。
您可以使用Data Management(Data Management Service)來執行線上DDL變更,請參見不鎖表結構變更。
在DTS同步期間,不允許有除DTS外的資料寫入目標庫,否則會導致源庫與目標庫資料不一致。例如,有除DTS外的資料寫入目標庫時,使用DMS執行線上DDL變更,可能引起目標庫資料丟失。
DTS預設同步到目標資料庫中時會取消外鍵約束,因此來源資料庫的級聯、刪除等操作不會同步到目標資料庫。
收費規則
物理遷移(物理複製)方式的收費規則如下:
從RDS遷移到PolarDB操作完全免費,您只需承擔購買PolarDB叢集的費用。關於PolarDB叢集的費用,詳情請參見計費項目概覽。
邏輯遷移(DTS資料同步)方式的收費規則如下:
您除了需承擔購買PolarDB叢集的費用之外,還需承擔DTS所建立的同步任務產生的費用。但現階段該功能處於試用階段,建立的同步任務30天內不收取任何費用(不支援虛商使用者、聚石塔使用者、國際站使用者以及RAM使用者(子帳號)等帳號參加該免費活動)。具體如下:
遷移對象
費用
庫表結構同步和全量資料同步
建立同步任務後,30天內不收取任何費用。
超過30天后,將會取消建立的同步任務。
說明您可以前往新版DTS同步任務的列表頁面查看同步任務的剩餘時間。
接下來將為您介紹如何進行一鍵複製RDS MySQL至PolarDB MySQL版。
前置檢查(僅限邏輯遷移)
檢查是否已建立PolarDB服務關聯角色
在使用邏輯遷移(DTS資料同步)方式進行一鍵複製前,請先檢查是否已建立PolarDB服務關聯角色。具體步驟如下:
使用阿里雲帳號(主帳號)前往RAM控制台的身份管理>角色列表。
檢查角色列表中,是否已存在名為AliyunServiceRoleForPolarDB的服務關聯角色,如下:

若存在,請跳過當前檢查步驟。
若不存在,則繼續執行以下步驟。
單擊建立角色,在開啟的建立角色頁面中,單擊右上方的建立服務關聯角色。

在開啟的建立服務關聯角色頁面中,選擇信任的雲端服務為雲資料庫 PolarDB,並單擊建立服務關聯角色以完成建立。

刪除源RDS執行個體中多餘系統帳號
為了相容RDS MySQL和PolarDB兩者的系統帳號體系,避免複製後目標PolarDB的系統帳號被覆蓋,源RDS執行個體中不允許同時存在root和aliyun_root帳號。因此,在進行複製前,請先刪除源RDS執行個體中多餘的系統帳號。
RDS MySQL各個版本的正確系統帳號名如下:
RDS MySQL版本 | 正確的系統帳號名 |
RDS MySQL 5.6 | root |
RDS MySQL 5.7 | aliyun_root |
RDS MySQL 8.0 | aliyun_root |
在上述版本中,除相應的正確系統帳號外,其他系統帳號均需被刪除。例如,RDS MySQL 5.7執行個體的正確系統帳號為aliyun_root。若您在控制台中手動建立了root帳號,則需將其刪除。在刪除之前,請確保您的業務中未使用root帳號。
系統帳號可能是您手動建立的,也可能是系統建立並因版本升級而遺留的。在某些情況下,該帳號可能不會在控制台中顯示。
樣本
以清理RDS MySQL 5.6執行個體中多餘系統帳號為例,具體刪除步驟如下:
使用高許可權帳號串連執行個體。
找到所有的root和aliyun_root系統帳號。
SELECT * FROM mysql.user WHERE `user` IN ('root', 'aliyun_root');刪除多餘的系統帳號。RDS MySQL 5.6正確的系統帳號是root,因此需要刪除aliyun_root帳號。
DELETE FROM mysql.user WHERE `user` = 'aliyun_root' LIMIT n;
步驟一:從RDS複製
本操作將建立一個與源RDS執行個體資料相同的PolarDB叢集。
登入PolarDB控制台。
在左上方,選擇叢集所在地區。
單擊创建新集群。
選擇計費類型為訂用帳戶、隨用隨付或Serverless。
訂用帳戶:在建立叢集時支付計算節點的費用,而儲存空間會根據實際資料量按小時計費,並從賬戶中按小時扣除。
隨用隨付:無需預先支付費用,計算節點和儲存空間(根據實際資料量)均按小時計費,並從賬戶中按小時扣除。
Serverless:無需預先支付費用,計算節點、儲存空間、資料庫代理等資源在叢集使用過程中基於實際需求動態彈性擴縮,並根據擴縮的實際用量來計費。
設定如下參數。
在右上方檢查叢集配置資訊,設定購買時間長度(針對訂用帳戶叢集)、購買數量和是否自動續約。
閱讀並勾選服務合約。單擊立即購買。
在支付頁面,確認未支付訂單資訊和支付方式,單擊訂購。
說明支付成功後,需要等待10~15分鐘建立叢集,之後您就可以在叢集列表中看到新建立的叢集。
當叢集中的節點狀態為建立中時,整個叢集可能仍未建立完成,此時叢集不可用。只有當叢集狀態為運行中時,叢集才可以正常使用。
請確認已選中正確的地區,否則無法看到您建立的叢集。
登入PolarDB控制台,查看建立的PolarDB叢集的狀態。
說明若您是通過邏輯遷移(DTS資料同步)方式進行一鍵複製,請單擊叢集ID進入叢集基本信息頁,查看遷移狀態。若RDS遷移狀態變為預檢查失敗,請根據錯誤資訊中的提示進行處理。

例如,如果源RDS中建立了觸發器,則預檢查會失敗並報錯“RDS執行個體存在觸發器”。請先刪除源RDS的觸發器,再點擊繼續遷移,或者點擊放棄遷移後手動去DTS控制台頁面建立遷移任務。具體可參見源庫存在觸發器時如何配置同步或遷移作業。
您也可以在此步驟選擇放棄遷移,相關影響請參見常見問題。
步驟二:查看資料同步任務詳情(僅限邏輯遷移)
若您是通過邏輯遷移(DTS資料同步)方式進行一鍵複製,請單擊叢集ID進入叢集基本信息頁,查看遷移狀態。若遇到遷移報錯(如預檢查失敗)或者其他異常狀態(如複寫延遲異常高)時,您可以前往對應的DTS資料同步任務的詳情頁,查看資料同步任務的具體資訊。
進入PolarDB控制台。
找到目的地組群,單擊叢集ID。
在基本信息頁面的RDS迁移功能中,單擊DTS数据同步任务的任務名稱,進入DTS控制台資料同步列表。

找到對應的資料同步任務,您可查看預檢查失敗詳情、查看同步任務詳情、查看同步任務日誌等。


常見問題
Q:一鍵升級RDS MySQL至和一鍵複製RDS MySQL至PolarDB MySQL版兩者有什麼區別?
A:兩者間的區別如下表:
對比項
一鍵複製RDS MySQL至PolarDB MySQL版
是否支援遷移或同步增量資料
支援
不支援
是否影響源RDS操作
不影響
不影響
源和目標的MySQL版本能否不同
可以不同
可以不同
Q:從RDS複製會影響源RDS執行個體嗎?
A:不會影響源RDS執行個體的正常運行,但全量複製期間會消耗源執行個體部分資源。
Q:取消遷移會有什麼影響?
A:取消遷移會有如下影響:
會切斷源叢集到目的地組群的同步鏈路,源叢集和目的地組群不再關聯。
目的地組群恢複可讀可寫狀態,且不會自動釋放。若不再需要使用該叢集,請儘快釋放,避免產生額外費用。
手動取消遷移時可以選擇是否關閉叢集的Binlog,自動取消遷移時不會關閉Binlog。
說明關閉Binlog會帶來少量的寫入效能提升,Binlog關閉後,已有的Binlog檔案會一直保留。您可以先縮短Binlog檔案的儲存時間長度,等待不需要的檔案自動刪除後,再關閉Binlog。關閉Binlog後叢集會自動重啟,重啟任務會在5分鐘之內完成,重啟時服務閃斷時間在40秒左右。具體時間與資料量和表數量相關,建議您在業務低穀期進行操作並確保應用程式具備重連機制。
相關API
API | 描述 |
建立PolarDB叢集。 說明 一鍵複製時,參數CreationOption取值需要為CloneFromRDS。 |
後續步驟
請儘快將應用的資料庫連接地址修改為PolarDB的地址,詳情請參見管理串連地址。