PolarDB支援將RDS MySQL執行個體一鍵升級至PolarDB MySQL版叢集。在升級流程中,將自動同步RDS執行個體的帳號、資料庫、IP白名單及必要的參數配置。此外,您還可以選擇保留原有資料庫連接地址,從而使應用程式無需修改任何串連配置即可順利切換至PolarDB叢集。這一流程顯著降低了遷移難度,支援業務平滑過渡。
您能夠將RDS執行個體一鍵升級至相同或更高版本的PolarDB叢集,例如:
RDS MySQL 5.6執行個體一鍵升級至PolarDB MySQL版5.6、5.7、8.0.1或8.0.2。
RDS MySQL 5.7執行個體一鍵升級至PolarDB MySQL版5.7、8.0.1或8.0.2。
RDS MySQL 8.0執行個體一鍵升級至PolarDB MySQL版8.0.1或8.0.2。
說明PolarDB MySQL版8.0.1完全相容社區MySQL-8.0.13及更低的版本,8.0.2完全相容社區MySQL-8.0.18及更低的版本。
PolarDB MySQL版8.0.1與8.0.2所支援的產品功能有所差異,具體資訊請參見核心版本功能對比。
遷移方式
在一鍵升級流程中,遷移方式分為物理遷移(物理複製)和邏輯遷移(DTS資料同步)。系統將根據RDS執行個體的MySQL版本、產品系列及儲存類型自動選擇適用的遷移方式,且不支援手動修改。具體區分如下:
對比項 | 物理遷移(物理複製) | 邏輯遷移(DTS資料同步) |
適用執行個體 | RDS MySQL 5.6和5.7高可用版且儲存類型為本地SSD盤的執行個體,升級至相同版本的PolarDB MySQL版叢集。 說明 執行個體存在核心小版本限制:
| 除屬於物理遷移(物理複製)方式外,其餘形態的RDS MySQL執行個體升級至相同或不同版本的PolarDB MySQL版叢集。 說明 無核心小版本限制。 |
實現方式 | 通過物理複製的方式,先從RDS執行個體複製全量資料,然後保持增量同步處理至PolarDB叢集。 重要 增量同步處理過程中,所有建立的非InnoDB表都會被轉成InnoDB表。 | 通過Data Transmission Service建立資料同步任務,先同步RDS執行個體的庫表結構和全量資料至PolarDB叢集,再保持增量資料同步。 說明
|
是否需要DTS工具 | 不需要。 | 需要。 |
遷移MySQL版本 | 僅支援遷移至相同版本。 | 支援遷移至相同版本或更高版本,但不支援降低版本。 |
升級流程時間長度限制 | 需在30天內完成。到期後,將關閉遷移功能。 | 需在30天內完成。到期後,將關閉遷移功能。 |
是否支援跨地區遷移 | 不支援。 | 不支援。 |
是否支援增量同步處理 | 支援。 | 支援。 |
是否支援新增庫的遷移 | 支援。 | 不支援。 說明 如需同步新增庫,請前往DTS控制台修改同步對象,將新增庫配置到正向和反向任務中。 |
是否支援結構遷移 | 支援。 | 僅支援遷移庫、表、視圖、預存程序、函數這五類結構。 |
方案優勢
RDS執行個體影響
在一鍵升級流程中,RDS執行個體的某些操作將受到限制,且部分操作可能會導致RDS執行個體出現閃斷或負載上升的情況。具體情況如下所示:
一鍵升級流程中,不可修改執行個體參數。
一鍵升級流程中,RDS執行個體無法進行退訂(釋放)或變更可用性區域等操作。
在進行業務切換操作時,若您選擇使用帶地址切換,切換過程中業務可能會中斷1~5分鐘。若您選擇使用不帶地址切換,則需儘快修改應用程式的串連配置,以便將其串連到PolarDB叢集。
根據遷移方式,若您是通過邏輯遷移(DTS資料同步)進行一鍵升級,則會存在以下影響:
若已建立觸發器(Trigger),需先刪除RDS執行個體中的觸發器,否則會導致遷移中斷。
全量資料初始化時,請勿執行庫或表結構變更的DDL操作,否則會導致資料同步任務失敗。
全量資料初始化時,會佔用RDS執行個體和PolarDB叢集的讀寫資源(如CPU和IOPS),可能導致RDS執行個體的負載上升。
使用須知
前提條件
您的RDS執行個體需滿足以下條件:
執行個體基本資料:
MySQL版本
基礎系列
高可用系列
叢集系列
5.6
-
本地SSD盤
-
5.7
雲端硬碟
本地SSD盤、雲端硬碟
雲端硬碟
8.0
雲端硬碟
本地SSD盤、雲端硬碟
雲端硬碟
資料表的儲存引擎類型需為InnoDB或X-Engine。
若您的執行個體不滿足物理遷移(物理複製)的要求,系統將自動選擇邏輯遷移(DTS資料同步)的方式進行升級。在這種情況下,為避免一鍵升級失敗,RDS執行個體還需滿足以下條件:
不存在DTS雙向同步任務。若存在DTS雙向同步任務,在進行一鍵升級時可能會導致資料不一致的情況,請勿進行一鍵升級操作。
若已建立觸發器(Trigger),需先刪除RDS執行個體中的觸發器,否則會導致遷移中斷。
RDS執行個體預設已開啟Binlog,您需確保參數binlog_row_image的值為full,否則預檢查階段會提示錯誤,且無法成功啟動資料同步任務。
DTS要求RDS執行個體的本地日誌(Binlog)至少保留7天以上,否則DTS可能因無法擷取本地日誌Binlog而導致任務失敗,極端情況下甚至可能會導致資料不一致或丟失。由於您所設定的本地日誌Binlog儲存時間低於DTS要求的時間進而導致的問題,不在DTS的SLA保障範圍內。
若您的執行個體不滿足物理遷移(物理複製)的要求,但您希望通過該方式進行一鍵升級,您可以參考以下操作,使您的RDS執行個體符合物理遷移(物理複製)的要求,隨後再進行一鍵升級:
針對RDS MySQL 5.6高可用版,核心小版本需為20190815或以上版本。
針對RDS MySQL 5.7高可用版,核心小版本需為20200331或以上版本。
說明您可以前往頁面,在配置資訊地區查看RDS執行個體的小版本資訊。如果低於上述指定版本,您可以將核心小版本升級至最新版本。
物理遷移(物理複製)時,建議將本地日誌(Binlog)的保留時間長度設定為至少24小時或以上。
使用限制
若您的執行個體不滿足物理遷移(物理複製)的要求,系統將自動選擇邏輯遷移(DTS資料同步)的方式進行升級。該遷移方式存在以下使用限制:
在DTS同步期間,不允許有除DTS外的資料寫入目標庫,否則會導致源庫與目標庫資料不一致。例如,有除DTS外的資料寫入目標庫時,使用DMS執行線上DDL變更,可能引起目標庫資料丟失。
DTS預設同步到目標資料庫中時會取消外鍵約束,因此來源資料庫的級聯、刪除等操作不會同步到目標資料庫。
支援增量同步處理的SQL語句:
操作類型
SQL語句
DML
INSERT、UPDATE、DELETEDDL
ALTER TABLE、ALTER VIEWCREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、CREATE VIEWDROP INDEX、DROP TABLERENAME TABLETRUNCATE TABLE
注意事項
遷移階段 | 說明 |
遷移前 |
|
遷移時 |
|
費用說明
邏輯遷移(DTS資料同步)方式
邏輯遷移(DTS資料同步)方式中,會收取DTS資料同步任務以及目標PolarDB叢集的費用。
DTS資料同步任務:
在升級流程中,系統將自動建立RDS執行個體和PolarDB叢集之間的DTS資料同步任務。費用資訊,請參見DTS計費概述。
目標PolarDB叢集:
計費類型為隨用隨付時,則叢集在整個升級流程中不計費,而是在如下操作後才開始正常隨用隨付:
計費類型為Serverless時,則在叢集的狀態變為運行中後,即開始計費。
計費類型為訂用帳戶時,則在建立叢集時需預支付對應的費用。
物理遷移(物理複製)方式
物理遷移(物理複製)方式中,整個升級流程不收取額外費用,僅收取目標PolarDB叢集的費用。
計費類型為隨用隨付時,則叢集在整個升級流程中不計費,而是在如下操作後才開始正常隨用隨付:
計費類型為Serverless時,則在叢集的狀態變為運行中後,即開始計費。
計費類型為訂用帳戶時,則在建立叢集時需預支付對應的費用。
如何使用
1. 遷移評估
為了保證遷移鏈路的順利進行和更好的遷移體驗,PolarDB提供了遷移評估功能,您可以在開始遷移前,對執行個體狀態、遷移任務依賴、執行個體屬性資訊等前提條件進行預校正,從而提前識別並處理可能影響遷移進度的前置條件,降低一鍵升級流程中的處理成本和資源成本。
2. 升級步驟
【推薦】控制台操作
以下為您簡要說明一鍵升級操作流程。詳細操作步驟說明,請參見升級步驟。
若您的RDS執行個體存在唯讀執行個體,且唯讀執行個體的白名單配置與主執行個體不一致。為確保唯讀執行個體的白名單能夠自動同步至PolarDB叢集,您需將唯讀執行個體的白名單合并至主執行個體的白名單配置中。
請前往PolarDB叢集購買頁面,選擇建立方式為從RDS遷移,並指定源RDS的版本與執行個體,以購買一個PolarDB叢集。購買完成後,系統將進行初始化、預檢查及全量資料同步等操作。在此期間,叢集的狀態為建立中,請您耐心等待。
說明邏輯遷移(DTS資料同步)時,可能會出現預檢查失敗等錯誤情況,您需要根據錯誤資訊進行相應的處理。處理完成後,可以單擊繼續遷移以繼續一鍵升級流程。如果當前錯誤資訊的處理會影響您的線上業務,您可以選擇單擊放棄遷移以中止一鍵升級流程。
帶地址切換功能可以保留原有資料庫連接地址,使得應用程式無需修改任何串連配置即可切換至PolarDB叢集。但僅能切換RDS執行個體與PolarDB叢集同時存在的串連地址。
您可以根據實際情況選擇是否在PolarDB叢集上補齊相關串連地址。
檢查串連地址的SSL加密狀態,RDS執行個體與PolarDB叢集串連地址的SSL加密狀態需保持一致。
當PolarDB叢集的複寫延遲小於60秒時,您可以進行業務切換。單擊遷移切換,交換RDS執行個體和PolarDB叢集的讀寫狀態(即將RDS執行個體修改為唯讀,將PolarDB叢集修改為可讀可寫),同時更換資料複製方向(即將PolarDB叢集的新增資料同步到RDS執行個體)。
若RDS執行個體存在關聯的DTS鏈路(非一鍵升級流程中邏輯遷移的DTS資料同步鏈路),您可使用此功能修改(替換)DTS同步或遷移任務的源或目標庫執行個體,平滑切換關聯業務。
當業務資料移轉已完成,並且在PolarDB叢集上穩定運行後,若後續不再需要使用資料同步,您可以單擊完成遷移以結束一鍵升級流程。
當業務已在PolarDB叢集上穩定運行且不再需要RDS執行個體時,可以進行退訂或釋放RDS執行個體。
API操作
以下為您簡要說明一鍵升級操作流程。詳細操作步驟說明,請參見升級步驟以及相關API文檔。
若您的RDS執行個體存在唯讀執行個體,且唯讀執行個體的白名單配置與主執行個體不一致。為確保唯讀執行個體的白名單能夠自動同步至PolarDB叢集,您需將唯讀執行個體的白名單合并至主執行個體的白名單配置中。
調用建立叢集API時,請求參數SourceResourceId需為源RDS執行個體所在地區,CreationOption需為MigrationFromRDS,且SourceResourceId需為源RDS執行個體ID。調用完成後,系統將進行初始化、預檢查及全量資料同步等操作。在此期間,叢集的狀態為建立中,請您耐心等待。
當返回參數MigrationStatus為RDS2POLARDB_SYNCING時,表示系統已完成全量資料的同步,進行中增量同步處理。
說明邏輯遷移(DTS資料同步)時,可能會出現預檢查失敗(參數MigrationStatus為PRE_CHECK_FAIL)等錯誤情況,您需要根據錯誤資訊(參數Comment)進行相應的處理。處理完成後,可以在控制台單擊繼續遷移暫時沒有繼續遷移API以繼續一鍵升級流程。如果當前錯誤資訊的處理會影響您的線上業務,可以在控制台單擊放棄遷移以中止一鍵升級流程。
ModifyDBClusterMigration - 切換遷移任務
當DescribeDBClusterMigration的返回參數DelayedSeconds小於60秒時,您可以進行業務切換。交換RDS執行個體和PolarDB叢集的讀寫狀態(即將RDS執行個體修改為唯讀,將PolarDB叢集修改為可讀可寫),同時更換資料複製方向(即將PolarDB叢集的新增資料同步到RDS執行個體)。
重要在進行遷移切換時,如果您選擇使用帶地址切換,請務必仔細閱讀帶地址切換注意事項。此外,請注意,切換過程中業務可能會中斷1~5分鐘。
遷移切換完成後,如果您探索資料存在異常或其他問題,可以調用ModifyDBClusterMigration復原遷移任務,以便迅速恢複到升級前的狀態。之後,您還可以繼續選擇調用CloseDBClusterMigration取消遷移,恢複到切換之前的狀態。
(可選)ModifyDtsJobEndpoint - 修改DTS任務的源或目標庫執行個體
若RDS執行個體存在關聯的DTS鏈路(非一鍵升級流程中邏輯遷移的DTS資料同步鏈路),您可以修改(替換)DTS同步或遷移任務的源或目標庫執行個體,平滑切換關聯業務。
CloseDBClusterMigration - 完成遷移
當業務資料移轉已完成,並且在PolarDB叢集上穩定運行後,若後續不再需要使用資料同步,您可以結束一鍵升級流程。
當業務已在PolarDB叢集上穩定運行且不再需要RDS執行個體時,可以進行退訂或釋放RDS執行個體。