支持的源和目標數據庫
表 支持的數據庫
| 源數據庫 | 目標數據庫 |
|---|---|
| DRDS實例 本地自建MyCAT中間件 ECS自建MyCAT中間件 |
DRDS實例 |
前提條件
- 已登錄數據復制服務控制臺。
- 滿足實時遷移支持的數據庫類型和版本,詳情請參見 實時遷移。
使用建議
注意
DRS任務啟動和全量數據遷移階段,請不要在源數據庫執行DDL操作,否則可能導致任務異常。
如果您使用的是全量遷移模式,確保源和目標數據庫無業務寫入,保證遷移前后數據一致。如果您使用的是全量+增量遷移模式,支持在源數據庫有業務數據寫入的情況下進行遷移。
數據庫遷移與環境多樣性和人為操作均有密切關系,為了確保遷移的平順,建議您在進行正式的數據庫遷移之前進行一次演練,可以幫助您提前發現問題并解決問題。
基于以下原因,建議您在啟動任務時選擇“稍后啟動”功能,將啟動時間設置在業務低峰期,相對靜止的數據可以有效提升一次性遷移成功率,避免遷移對業務造成性能影響。
在網絡無瓶頸的情況下,全量遷移會對源數據庫增加約50MB/s的查詢壓力,以及占用2~4個CPU。
正在遷移的數據被其他事務長時間鎖死,可能導致讀數據超時。
由于MySQL固有特點限制,CPU資源緊張時,存儲引擎為Tokudb的表,讀取速度可能下降至10%。
DRS并發讀取數據庫,會占用大約6-10個session連接數,需要考慮該連接數對業務的影響。
全量階段讀取表數據時,特別是大表的讀取,可能會阻塞業務上對大表的獨占鎖操作。
-
數據對比
建議您結合數據對比的“稍后啟動”功能,選擇業務低峰期進行數據對比,以便得到更為具有參考性的對比結果。由于同步具有輕微的時差,在數據持續操作過程中進行對比任務,可能會出現少量數據不一致對比結果,從而失去參考意義。
使用須知
在創建遷移任務前,請務必閱讀以下使用須知。
表 使用須知
類型名稱 使用和操作限制 數據庫權限設置 ?全量遷移最小權限要求:
源物理分片數據庫賬號需要具備如下權限:SELECT、SHOW VIEW、EVENT。
目標中間件帳戶需要具備以下基本權限:CREATE、DROP、ALTER、 INDEX、 INSERT、DELETE、 UPDATE、 SELECT, 同時必須具備擴展權限:全表Select權限。
目標中間件帳戶必須具備對所遷移數據庫的權限。
全量+增量遷移最小權限要求:
?源物理分片數據庫賬號需要具備如下權限:SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。
目標中間件帳戶需要具備以下基本權限:CREATE、DROP、ALTER、 INDEX、 INSERT、DELETE、 UPDATE、 SELECT, 同時必須具備擴展權限::全表Select權限。
目標中間件帳戶必須具備對所遷移數據庫的權限。
源數據庫要求
?源分庫分表中間件中的庫名、表名不能包含:'<>/\以及非ASCII字符。
MySQL源數據庫的binlog日志必須打開,且binlog日志格式必須為Row格式。
在磁盤空間允許的情況下,建議源數據庫binlog保存時間越長越好,建議為3天。
源數據庫expire_logs_days參數值為0,可能會導致遷移失敗。
增量遷移時,必須設置MySQL源數據庫的server-id。如果源數據庫版本小于或等于MySQL5.6,server-id的取值范圍在2-4294967296之間;如果源數據庫版本大于或等于MySQL5.7,server-id的取值范圍在1-4294967296之間。
MySQL源數據庫建議開啟skip-name-resolve,減少連接超時的可能性。
源數據庫GTID狀態建議為開啟狀態。
目標數據庫要求
目標庫若已存在數據,DRS在增量遷移過程中源庫相同主鍵的數據將覆蓋目標庫已存在的數據,因此在遷移前需要用戶自行判斷數據是否需要清除,建議用戶在遷移前自行清空目標庫。
目標實例及關聯RDS實例的運行狀態必須正常,若關聯RDS實例是主備實例,復制狀態也必須正常。
目標庫關聯RDS實例必須有足夠的磁盤空間。
目標庫關聯RDS數據庫的字符集必須與源數據庫一致。
目標庫實例若選擇將時間戳類型(TIMESTAMP,DATETIME)的列作為分片鍵,則源庫數據在遷移到目標庫之后,作為分片鍵的該時間戳類型列的秒精度將被丟棄。
目標數據庫存在表的AUTO_INCREMENT值至少不能小于源庫表的AUTO_INCREMENT值。
遷移對象約束
目前只支持遷移源庫的數據,不支持遷移源庫表結構及其他數據庫對象。
用戶需要在目標庫根據源端邏輯庫的表結構,自行在目標庫創建對應的表結構及索引。未在目標庫創建的對象,視為用戶不選擇這個對象進行遷移。
源庫在目標庫創建的表結構, 必須與源庫的表結構完全一致。
源庫為DRDS時,則不允許存在拆分鍵為timestamp類型的表。
不支持非MyISAM和非InnoDB表的遷移。
不支持無主鍵表的遷移。
操作須知
數據類型不兼容時,可能引起遷移失敗。
如果源數據庫為自建庫,并且安裝了Percona Server for MySQL 5.6.x或Percona Server for MySQL 5.7.x時,內存管理器必須使用Jemalloc庫,以避免因系統表頻繁查詢帶來的內存回收不及時,并最終導致數據庫Out of Memory問題。
建議將expire_log_day參數設置在合理的范圍,確保恢復時斷點處的binlog尚未過期,以保證服務中斷后的順利恢復。
在任務啟動、任務全量遷移階段,不建議對源數據庫做刪除類型的DDL操作,這樣可能會引起任務遷移失敗。
遷移過程中,不允許修改、刪除連接源和目標數據庫的用戶的用戶名、密碼、權限,或修改源和目標數據庫的端口號。
遷移過程中,不允許對源庫需要遷移的表結構進行修改。
遷移過程中,不允許源端DRDS正在遷移的表做改變拆分鍵的操作;也不允許將單表/廣播表改為拆分表,拆分表改為單表/廣播表。
選擇表級對象遷移時,增量遷移過程中不建議對表進行重命名操作。
增量遷移場景下,不支持源數據庫進行恢復操作。
當目標DRDS版本大于3.0.4.1版本,結束任務時,DRS會自動刷新DRDS的自增列(sequence)起始值。
?
操作步驟
本章節將介紹在公網網絡場景下,通過數據復制服務配置MySQL分庫分表到DRDS實例遷移的任務流程。
步驟 1 在“實時遷移管理”頁面,單擊“創建遷移任務”,進入創建遷移任務頁面。
步驟 2 在“遷移實例”頁面,填選任務名稱、描述、遷移實例信息,單擊“下一步”。
表 任務和描述
| 參數 | 描述 |
|---|---|
| 任務名稱 | 任務名稱在4-50位之間,必須以字母開頭,不區分大小寫,可以包含字母、數字、中劃線或下劃線,不能包含其他的特殊字符。 |
| 描述 | 描述不能超過256位,且不能包含! = < > & ' " \ 特殊字符。 |
表 遷移實例信息
參數 描述 數據流動方向 選擇入云。
入云指目標端數據庫為本云數據庫。源數據庫引擎 選擇MySQL分庫分表。 目標數據庫引擎 選擇DRDS。 網絡類型 此處以公網網絡為示例。默認為公網網絡類型,可按照需求選擇VPC網絡、公網網絡和VPN、專心網絡。
VPC網絡:適合云上數據庫之間的遷移。
公網網絡:適合通過公網網絡把其他云下或其他平臺的數據庫遷移到目標數據庫,該類型要求目標數據庫綁定彈性公網IP(EIP)。
VPN網絡:適合通過VPN網絡,實現其他云下自建數據庫與云上數據庫遷移、或云上跨Region的數據庫之間的遷移。
專線網絡:適合通過專線網絡,實現其他云下自建數據庫與云上數據庫遷移、或云上跨Region的數據庫之間的遷移。
目標數據庫實例 用戶所創建的目標數據庫實例。 遷移實例所在子網 選擇遷移實例所在的子網。也可以單擊“查看子網”,跳轉至“網絡控制臺”查看實例所在子網幫助選擇。
默認值為當前所選數據庫實例所在子網,請選擇有可用IP地址的子網。為確保遷移實例創建成功,僅顯示已經開啟DHCP的子網。IP類型 選擇遷移實例的IP類型,目前支持選擇“IPv4”或“IPv4&IPv6雙棧”。只有所選擇的VPC及子網都開啟了IPv6雙棧功能,才能選擇IP類型為“IPv4&IPv6雙棧”。 遷移模式
全量:該模式為數據庫一次性遷移,適用于可中斷業務的數據庫遷移場景,全量遷移將非系統數據庫的全部數據庫對象和數據一次性遷移至目標端數據庫,包括:表、視圖、存儲過程、觸發器等。
說明如果用戶只進行全量遷移時,建議停止對源數據庫的操作,否則遷移過程中源數據庫產生的新數據不會同步到目標數據庫。
全量+增量:該模式為數據庫持續性遷移,適用于對業務中斷敏感的場景,通過全量遷移過程完成目標端數據庫的初始化后,增量遷移階段通過解析日志等技術,將源端和目標端數據庫保持數據持續一致。
說明選擇“全量+增量”遷移模式,增量遷移可以在全量遷移完成的基礎上實現數據的持續同步,無需中斷業務,實現遷移過程中源業務和數據庫繼續對外提供訪問。源端數據庫實例個數 源端數據庫實例個數默認最小值為2,最大值為16,你需要根據源端實際的分片數據庫個數設置該值大小。 標簽
可選配置,對遷移任務的標識。使用標簽可方便管理您的遷移任務。每個任務最多支持10個標簽配額。
任務創建成功后,您可以單擊任務名稱,在“標簽”頁簽下查看對應標簽。關于標簽的詳細操作,請參見標簽管理。
步驟 3 在“源庫及目標庫”頁面,遷移實例創建成功后,填選源庫信息和目標庫信息,單擊“源庫和目標庫”處的“測試連接”,分別測試并確定與源庫和目標庫連通后,勾選協議,單擊“下一步”。
表 源庫信息
參數 描述 中間件IP地址或域名 源數據庫的IP地址或域名。 端口 源數據庫服務端口,可輸入范圍為1~65535間的整數。 中間件用戶名 源數據庫的用戶名。 中間件密碼 源數據庫的用戶名所對應的密碼。 SSL安全連接 通過該功能,用戶可以選擇是否開啟對遷移鏈路的加密。如果開啟該功能,需要用戶上傳SSL CA根證書。 說明最大支持上傳500KB的證書文件。
如果不使用SSL證書,請自行承擔數據安全風險。分片數據庫 根據源庫實際的分片數據庫,填寫對應的數據庫信息。
說明源數據庫的IP地址或域名、數據庫用戶名和密碼,會被系統加密暫存,直至刪除該遷移任務后自動清除。
表 目標庫信息
| 參數 | 描述 |
|---|---|
| 數據庫實例名稱 | 默認為創建遷移任務時選擇的數據庫實例,不可進行修改。 |
| 數據庫用戶名 | 目標數據庫對應的數據庫用戶名。 |
| 數據庫密碼 | 數據庫用戶名和密碼將被系統加密暫存,直至該任務刪除后清除。 |
說明目標數據庫的用戶名和密碼,會被系統加密暫存,直至刪除該遷移任務后自動清除。
步驟 4 在“遷移設置”頁面,設置遷移對象,單擊“下一步”。
表 遷移對象
參數 描述 遷移對象 對象遷移到目標數據庫實例后,對象名將會保持與源數據庫實例對象名一致且無法修改。 說明目標庫未創建的結構默認不遷移。
步驟 5 在“預檢查”頁面,進行遷移任務預校驗,校驗是否可進行遷移。
-
查看檢查結果,如有失敗的檢查項,需要修復失敗項后,單擊“重新校驗”按鈕重新進行遷移任務預校驗。
圖 預檢查

- 預檢查完成后,且預檢查通過率為100%時,單擊“下一步”。
說明所有檢查項結果均成功時,若存在告警,需要閱讀并確認告警詳情后才可以繼續執行下一步操作。
步驟 6 在“任務確認”頁面,設置遷移任務的啟動時間,并確認遷移任務信息無誤后,單擊“啟動任務”,提交遷移任務。
表 任務啟動設置
參數 描述 啟動時間 遷移任務的啟動時間可以根據業務需求,設置為“立即啟動”或“稍后啟動”,優選“稍后啟動”。 說明預計遷移任務啟動后,會對源數據庫和目標數據庫的性能產生影響,建議您將任務啟動時間設定在業務低峰期,同時預留2-3天校對數據。
步驟 7 遷移任務提交后,您可在“實時遷移管理”頁面,查看并管理自己的任務。
- 您可查看任務提交后的狀態,狀態請參見任務狀態說明。
- 在任務列表的右上角,單擊
刷新列表,可查看到最新的任務狀態。