支持的源和目標數據庫
表 支持的數據庫
| 源數據庫 | 目標數據庫 |
|---|---|
| DRDS實例 | RDS for MySQL |
前提條件
- 已登錄數據復制服務控制臺。
- 滿足實時同步支持的數據庫類型和版本,詳情請參見實時同步。
使用建議
注意
-
DRS任務啟動和全量數據同步階段,請不要在源數據庫執行DDL操作,否則可能導致任務異常。
-
為保證同步前后數據一致性,確保同步期間目標數據庫無業務寫入。
-
數據庫同步與環境多樣性和人為操作均有密切關系,為了確保同步的平順,建議您在進行正式的數據庫同步之前進行一次演練,可以幫助您提前發現問題并解決問題。
-
基于以下原因,建議您在啟動任務時選擇“稍后啟動”功能,將啟動時間設置在業務低峰期,相對靜止的數據可以有效提升一次性同步成功率,避免同步對業務造成性能影響。
- 在網絡無瓶頸的情況下,全量同步會對源數據庫增加約50MB/s的查詢壓力,以及占用2~4個CPU。
- 同步無主鍵表時,為了確保數據一致性,會存在3s以內的單表級鎖定。
- 正在同步的數據被其他事務長時間鎖死,可能導致讀數據超時。
- DRS并發讀取數據庫,會占用大約6-10個session連接數,需要考慮該連接數對業務的影響。
- 全量階段讀取表數據時,特別是大表的讀取,可能會阻塞業務上對大表的獨占鎖操作。
-
數據對比
建議您結合數據對比的“稍后啟動”功能,選擇業務低峰期進行數據對比,以便得到更為具有參考性的對比結果。由于同步具有輕微的時差,在數據持續操作過程中進行對比任務,可能會出現少量數據不一致對比結果,從而失去參考意義。
使用須知
在創建同步任務前,請務必閱讀以下使用須知。

說明建議創建單獨用于DRS任務連接的數據庫帳號,避免因為數據庫帳號密碼修改,導致的任務連接失敗。
連接源或目標數據庫的帳號密碼修改后,請盡快修改連接信息,避免任務連接失敗后自動重試,導致數據庫帳號被鎖定影響使用。
表使用須知
類型名稱
使用和操作限制
數據庫權限設置
l?源數據庫DRDS帳戶至少需要具備一個權限,比如SELECT;DRDS物理分片數據庫帳號需要具備如下權限:SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。
l?提供的目標數據庫帳號必須擁有如下權限:SELECT、CREATE、ALTER、DROP、DELETE、INSERT、UPDATE。RDS for MySQL實例的root帳戶默認已具備上述權限。
同步對象約束
l?全量同步支持數據、表結構和索引的同步。
l?源庫不允許存在拆分鍵為timestamp類型的表。
l?源表的分庫分表鍵要加到目標表的主鍵和唯一鍵中(也就是目標表的主鍵和唯一鍵中的列應該包含源表的分片列),避免數據沖突出現數據不一致問題。
源數據庫要求
l?增量同步時,源物理分片數據庫的binlog日志必須打開,且binlog日志格式必須為Row格式。
l?在磁盤空間允許的情況下,建議源數據庫binlog保存時間越長越好,建議為3天。
l?增量同步時,必須設置MySQL源數據庫的server_id。如果源數據庫版本小于或等于MySQL5.6,server_id的取值范圍在2-4294967296之間;如果源數據庫版本大于或等于MySQL5.7,server_id的取值范圍在1-4294967296之間。
l?源分庫分表中間件中的庫名、表名不能包含:'<>/\以及非ASCII字符。
l?MySQL源數據庫建議開啟skip-name-resolve,減少連接超時的可能性。
l?源物理分片數據庫GTID狀態建議為開啟狀態。
目標數據庫要求
l?目標數據庫實例的運行狀態必須正常,若數據庫實例是主備實例,復制狀態也必須正常。
l?目標數據庫實例必須有足夠的磁盤空間。
l?除了MySQL系統數據庫之外,當目標庫和源庫同名時,目標數據庫中若存在與源庫同名的表,則表結構必須與源庫保持一致。
l?目標數據庫的字符集必須與源數據庫一致。
l?目標數據庫的時區設置必須與源數據庫一致。
l?DRS同步時會有大量數據寫入目標庫,目標庫max_allowed_packet 參數過小會導致無法寫入,建議將目標庫max_allowed_packet參數值設置為大于100MB。
操作須知
l?數據類型不兼容時,可能引起同步失敗。
l?支持斷點續傳功能,在主機系統崩潰的情況下,對于無主鍵的表可能會出現重復插入數據的情況。
l?源數據庫中存在主鍵或唯一鍵重復的數據時, 直接同步將導致目標庫數據比源庫少, 請務必檢查并訂正數據后啟動同步。
l?目標庫為RDS for MySQL實例時,不支持帶有TDE特性并建立具有加密功能表。
l?支持目標數據庫中的表比源數據庫多列場景,但是需要避免以下場景可能導致的任務失敗。
??目標端多的列要求非空且沒有默認值,源端insert數據,同步到目標端后多的列為null,不符合目標端要求。
??目標端多的列設置固定默認值,且有唯一約束。源端insert多條數據后,同步到目標端后多的列為固定默認值,不符合目標端要求。
l?任務創建后,目標庫不能設置為只讀。
l?任務創建后,源數據庫不支持增加邏輯庫或修改舊邏輯庫關聯新的RDS,否則會導致數據無法正常同步或任務失敗。
l?同步過程中,不允許修改、刪除連接源和目標數據庫的用戶的用戶名、密碼、權限,或修改源和目標數據庫的端口號。
l?同步過程中,不允許源端DRDS正在同步的表做改變拆分鍵的操作;也不允許將單表/廣播表改為拆分表,拆分表改為單表/廣播表。
l?增量同步階段,不支持源數據庫進行恢復操作
l?增量同步階段,支持部分DDL操作。
??不支持 DROP_DATABASE、DROP_TABLE、TRUNCATE_TABLE、CREATE_VIEW、DROP_VIEW。
??不支持使用Online DDL。
??支持創建表,例如 :
create table `ddl_test` (id int, c1 varchar(25), primary key(id));
create table `ddl_test_gho` like `ddl_test`;??支持表的重命名,源表和目標表必須都在對象選擇里面,例如:
rename table `ddl_test` to `ddl_test_new`;
??支持表字段的增和改,不支持刪列,例如:
alter table `ddl_test` add column `c2` varchar(25); ?
alter table `ddl_test` modify column `c1` varchar(50);
alter table `ddl_test` alter c1 set default 'xxx';??支持修改表索引,例如:
alter table `ddl_test` drop primary key; ?
alter table `ddl_test` add primary key(id); ?
alter table `ddl_test` add index ?`ddl_test_uk`(id);
alter table `ddl_test` drop index `ddl_test_uk`;??表級同步支持增加列、修改列、增加主鍵和普通索引。
??庫級同步支持新建表、rename表、增加列、修改列、增加主鍵和普通索引。
??新增和修改表名、列名、索引名時不能超出63字符,否則任務會失敗。
??源庫無主鍵表增加主鍵的時候,必須含有第一列,否則任務會失敗。
l?增量同步階段,對同一張表或列做DDL操作,需要在業務低峰期,并且時間間隔1分鐘以上。
操作步驟
步驟 1 在“實時同步管理”頁面,單擊“創建同步任務”。
步驟 2 在“同步實例”頁面,填選任務名稱、描述、同步實例信息,單擊“開始創建”。
- 任務信息
表任務和描述
| 參數 | 描述 |
|---|---|
| 任務名稱 | 任務名稱在4到50位之間,必須以字母開頭,可以包含字母、數字、中劃線或下劃線,不能包含其他的特殊字符。 |
| 描述 | 描述不能超過256位,且不能包含! = < > & ' " \ 特殊字符。 |
- 同步實例信息
表 同步實例信息
| 參數 | 描述 |
|---|---|
| 數據流動方向 | 選擇“入云”。 |
| 源數據庫引擎 | 選擇“DRDS”。 |
| 目標數據庫引擎 | 選擇“MySQL”。 |
| 網絡類型 | 此處以公網網絡為示例。目前支持可選公網網絡、VPC網絡和VPN、專線網絡。 |
| 目標數據庫實例 | 用戶所創建的關系型數據庫實例。 |
| 同步實例所在子網 | 請選擇同步實例所在的子網。也可以單擊“查看子網”,跳轉至“網絡控制臺”查看實例所在子網幫助選擇。默認值為當前所選數據庫實例所在子網,請選擇有可用IP地址的子網。為確保同步實例創建成功,僅顯示已經開啟DHCP的子網。 |
| IP類型 | 選擇遷移實例的IP類型,目前支持選擇“IPv4”或“IPv4&IPv6雙棧”。只有所選擇的VPC及子網都開啟了IPv6雙棧功能,才能選擇IP類型為“IPv4&IPv6雙棧”。 |
| 同步模式 | 全量+增量該模式為數據持續性實時同步,通過全量過程完成目標端數據庫的初始化后,增量同步階段通過解析日志等技術,將源端和目標端數據保持數據持續一致。 說明 選擇“全量+增量”同步模式,增量同步可以在全量同步完成的基礎上實現數據的持續同步,無需中斷業務,實現同步過程中源業務和數據庫繼續對外提供訪問。 |
| 源端數據庫實例個數 | 源端DRDS綁定的實例個數,默認值2,輸入值在1到64之間,您需要根據源端實際情況設置該值大小。 |
- 標簽
表標簽
| 參數 | 描述 |
|---|---|
| 標簽 | 可選配置,對同步任務的標識。使用標簽可方便管理您的任務。每個任務最多支持10個標簽配額。 任務創建成功后,您可以單擊任務名稱,在“標簽”頁簽下查看對應標簽。關于標簽的詳細操作,請參見 標簽管理。 |
說明
對于創建失敗的任務,DRS默認保留3天,超過3天將會自動結束任務。
步驟 3 在“源庫及目標庫”頁面,同步實例創建成功后,填選源庫信息和目標庫信息,單擊“源庫和目標庫”處的“測試連接”,分別測試并確定與源庫和目標庫連通后,勾選協議,單擊“下一步”。
表源庫信息
| 參數 | 描述 |
|---|---|
| 中間件IP地址或域名 | 源數據庫的IP地址或域名。 |
| 端口 | 源數據庫服務端口,可輸入范圍為1~65535間的整數。 |
| 中間件用戶名 | 源數據庫DRDS中間件的用戶名。 |
| 中間件密碼 | 源數據庫DRDS中間件用戶名所對應的密碼。 |
| SSL安全連接 | 通過該功能,用戶可以選擇是否開啟對遷移鏈路的加密。如果開啟該功能,需要用戶上傳SSL CA根證書。 說明 最大支持上傳500KB的證書文件。 如果不啟用SSL安全連接,請自行承擔數據安全風險。 |
| 數據庫實例 | 根據源庫實際的分片數據庫,填寫對應的數據庫信息。 |
說明
源數據庫的IP地址或域名、數據庫用戶名和密碼,會被系統加密暫存,直至刪除該遷移任務后自動清除。
表 目標庫信息
| 參數 | 描述 |
|---|---|
| 數據庫實例名稱 | 默認為創建遷移任務時選擇的關系型數據庫實例,不可進行修改。 |
| 數據庫用戶名 | 目標數據庫對應的數據庫用戶名。 |
| 數據庫密碼 | 數據庫用戶名和密碼將被系統加密暫存,直至該任務刪除后清除。 |
| SSL安全連接 | 如啟用SSL安全連接,請在目標庫開啟SSL,并確保相關配置正確后上傳SSL證書。 說明 最大支持上傳500KB的證書文件。 如果不啟用SSL安全連接,請自行承擔數據安全風險。 |
步驟 4 在“設置同步”頁面,選擇同步對象,單擊“下一步”。
表同步模式和對象
參數
描述
增量階段沖突策略
該沖突策略特指增量同步中的沖突處理策略,全量階段的沖突默認忽略。沖突策略目前支持如下形式:
l?忽略
當同步數據與目標數據庫已有數據沖突時(主鍵/唯一鍵存在重復等),將跳過沖突數據,繼續進行后續同步。
l?覆蓋
當同步數據與目標數據庫已有數據沖突時(主鍵/唯一鍵存在重復等),將覆蓋原來的沖突數據。
同步對象
左側框是源數據庫對象,右側框是已經選擇的對象,同步對象支持表級同步,您可以根據業務場景選擇對應的數據進行同步。
說明
?選擇對象的時候支持對展開的庫進行搜索,以便您快速選擇需要的數據庫對象。
如果有切換源數據庫的操作或源庫同步對象變化的情況,請在選擇同步對象前單擊右上角的,以確保待選擇的對象為最新源數據庫對象。
當對象名稱包含空格時,名稱前后的空格不顯示,中間如有多個空格只顯示一個空格。
選擇的同步對象名稱中不能包含空格。
步驟 5 在“預檢查”頁面,進行同步任務預校驗,校驗是否可進行實時同步。
- 查看檢查結果,如有不通過的檢查項,需要修復不通過項后,單擊“重新校驗”按鈕重新進行任務預校驗。
- 預檢查完成后,且所有檢查項結果均通過時,單擊“下一步”。
說明所有檢查項結果均通過時,若存在待確認項,需要閱讀并確認詳情后才可以繼續執行下一步操作。
步驟 6 在“任務確認”頁面,設置同步任務的啟動時間,并確認同步任務信息無誤后,單擊“啟動任務”,提交同步任務。
表 任務啟動設置
| 參數 | 描述 |
|---|---|
| 啟動時間 | 同步任務的啟動時間可以根據業務需求,設置為“立即啟動”或“稍后啟動”。 說明 預計同步任務啟動后,會對源數據庫和目標數據庫的性能產生影響,建議選擇業務低峰期,合理設置同步任務的啟動時間。 |
步驟 7 同步任務提交后,您可在“管理”頁面,查看并管理自己的任務。
- 您可查看任務提交后的狀態,狀態請參任務狀態說明。
- 在任務列表的右上角,單擊
刷新列表,可查看到最新的任務狀態。 - 對于未啟動、狀態為配置中的任務,DRS默認保留3天,超過3天DRS會自動刪除后臺資源,當前任務狀態不變。當用戶再次配置時,DRS會重新申請資源。