源庫為SQL Server的同步方案概覽
根據同步方案,查看同步任務的注意事項及限制:
說明 DTS默認同步到目標數據庫中時會取消外鍵約束,因此源數據庫的級聯、刪除等操作不會同步到如下目標數據庫:
SQL Server間的同步
具體注意事項及限制如下:
類型 | 說明 |
源庫限制 | 待同步的表需具備主鍵或唯一約束,且字段具有唯一性,否則可能會導致目標數據庫中出現重復數據。 若同步對象為表級別,且需進行編輯(如表列名映射),單次同步任務的表數量超過5000或時,建議您拆分待同步的表,分批配置多個任務,或者配置整庫的同步任務,否則任務提交后可能會顯示請求報錯。 單次同步任務僅支持同步至多10個數據庫。當超出數量限制,會出現穩定性和性能問題的風險,此時建議您拆分待同步的表,分批配置任務。 不支持同步內存優化表。 DTS是用fn_log函數獲取源庫日志,而該函數有一定的性能瓶頸,請不要過早清理源庫日志,否則可能會導致任務失敗。 數據日志: 需開啟,備份模式設置為Full,且已成功執行過全量物理備份。 如為增量同步任務,DTS要求源數據庫的數據日志保存24小時以上,如為全量同步和增量同步任務,DTS要求源數據庫的數據日志至少保留7天以上(您可在全量同步完成后將數據日志保存時間設置為24小時以上),否則DTS可能因無法獲取數據日志而導致任務失敗,極端情況下甚至可能會導致數據不一致或丟失。由于您所設置的數據日志保存時間低于DTS要求的時間進而導致的問題,不在DTS的SLA保障范圍內。
若源庫待同步的表需要開啟CDC,則需滿足以下條件,否則預檢查將會失敗。 sys.sysservers視圖的srvname字段與SERVERPROPERTY函數返回值保持一致。 若源庫是自建SQL Server,則數據庫所有者需是sa;若源庫是RDS SQL Server,則數據庫所有者需是sqlsa。 若源庫是企業版,則需為2008及以上版本。 若源庫是標準版,則需為2016SP1及以上版本。 若源庫為SQL Server 2017版(包括標準版和企業版),建議升級版本。
若源庫為只讀實例,則不支持同步DDL操作。 若源庫為Azure SQL Database,則一個同步實例僅支持同步一個數據庫。 若源庫為RDS SQL Server,為保障同步實例穩定運行,請確保已關閉透明數據加密TDE(Transparent Data Encryption)功能。更多信息,請參見關閉TDE。 在混合式日志解析模式下,源庫不支持連續執行(時間間隔小于10分鐘)多個加減列操作。例如,連續執行如下SQL會導致任務報錯。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在庫表結構同步和全量同步階段,請勿執行庫或表結構變更的DDL操作,否則會導致數據同步任務失敗。 若源庫為Web版的RDS SQL Server,則在配置任務時SQLServer增量同步模式需選擇為解析源庫日志做增量同步(不支持堆表)。 建議在全量數據同步任務運行期間,確保源庫的事務處理模式參數READ_COMMITTED_SNAPSHOT 為啟用狀態,以避免因共享鎖(Shared Lock)對數據寫入產生影響。否則,可能會導致數據不一致、實例運行失敗等異常情況。由此引發的異常情況,不在DTS的SLA保障范圍內。
|
其他限制 | 不支持同步數據類型為TIMESTAMP、CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY和GEOGRAPHY的數據。 如需跨版本同步,請提前確認兼容性。 若在對象配置階段將SQLServer增量同步模式選擇為解析源庫日志做增量同步(不支持堆表),則待同步的表需具備聚集索引,且聚集索引中需包含主鍵列;待同步的表不支持堆表、無主鍵表、壓縮表、含計算列表。在混合式日志解析模式下,沒有如上限制。 若在對象配置階段將SQLServer增量同步模式選擇為非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),則DTS的增量同步依賴CDC組件,因此請確保源庫CDC作業正常運行,否則會導致DTS任務失敗。 若在對象配置階段將SQLServer增量同步模式選擇為輪詢查詢CDC實例做增量同步,則還有如下限制: DTS實例使用的源庫賬號需具備開啟CDC的權限。開啟庫級別CDC需要使用sysadmin角色權限的賬號,開啟表級別CDC需要高權限賬號。 DTS是通過輪詢方式去源庫查詢每張表的CDC實例(CDC Instance)以獲取增量數據,因此源庫待同步表的數量不能超過1000張,否則可能會導致任務延遲或不穩定。 不支持連續執行加減列操作(一分鐘內執行超過兩次加列或減列的DDL),否則可能會導致任務失敗。 不支持對源庫CDC實例(CDC Instance)做變更操作,否則可能會導致任務失敗或數據丟失。
為保障增量數據同步延遲的準確性,解析源端日志做增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history;混合式增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history以及會開啟庫級別CDC和部分表CDC,建議源端開啟CDC的表數據變更量不超過1000 RPS。 執行數據同步前需評估源庫和目標庫的性能,同時建議業務低峰期執行數據同步。否則全量數據初始化時將占用源庫和目標庫一定的讀寫資源,可能會導致數據庫的負載上升。 全量初始化會并發執行INSERT操作,導致目標數據庫的表產生碎片,因此全量初始化完成后目標實例的表空間比源實例的表空間大。 在DTS同步期間,不允許有除DTS外的數據寫入目標庫,否則會導致源庫與目標庫數據不一致。例如,有除DTS外的數據寫入目標庫時,使用DMS執行在線DDL變更,可能引起目標庫數據丟失。 同步實例不支持重建索引操作,否則可能造成任務失敗,甚至數據丟失。 若單次同步任務中開啟CDC的表數量大于1000,則預檢查會失敗。 若開啟CDC的表需要寫入的單字段數據超過64 KB,則必須提前使用exec sp_configure 'max text repl size', -1; 命令調整源庫的配置。
說明 CDC作業默認最大能處理的單字段長度為64 KB。 如需進行增量同步,請禁用目標庫中已啟用的觸發器和外鍵,否則會導致同步任務失敗。 若您需要使用修改同步對象功能,則不支持新增或移除數據庫的操作。 若實例運行失敗,DTS技術支持人員將在8小時內嘗試恢復該實例。在恢復失敗實例的過程中,可能會對該實例進行重啟、調整參數等操作。
說明 在調整參數時,僅會修改實例的參數,不會對數據庫中的參數進行修改。可能修改的參數,包括但不限于修改實例參數中的參數。
|
特殊情況 | 源實例為RDS SQL Server時,DTS會在源RDS SQL Server實例中創建一個rdsdt_dtsacct 賬號用于數據同步,請勿在任務運行過程中對該賬號進行刪除或密碼修改操作,否則可能會導致任務失敗。具體詳情,請參見系統賬號說明。 |
RDS SQL Server同步至MySQL
當目標為MySQL,包括自建MySQL、RDS MySQL時,具體注意事項及限制如下:
類型 | 說明 |
源庫限制 | 待同步的表需具備主鍵或唯一約束,且字段具有唯一性,否則可能會導致目標數據庫中出現重復數據。 若同步對象為表級別,且需進行編輯(如表列名映射),單次同步任務的表數量超過5000或時,建議您拆分待同步的表,分批配置多個任務,或者配置整庫的同步任務,否則任務提交后可能會顯示請求報錯。 單次同步任務僅支持同步至多10個數據庫。當超出數量限制,會出現穩定性和性能問題的風險,此時建議您拆分待同步的表,分批配置任務。 DTS是用fn_log函數獲取源庫日志,而該函數有一定的性能瓶頸,請不要過早清理源庫日志,否則可能會導致任務失敗。 數據日志: 需開啟,備份模式設置為Full,且已成功執行過全量物理備份。 如為增量同步任務,DTS要求源數據庫的數據日志保存24小時以上,如為全量同步和增量同步任務,DTS要求源數據庫的數據日志至少保留7天以上(您可在全量同步完成后將數據日志保存時間設置為24小時以上),否則DTS可能因無法獲取數據日志而導致任務失敗,極端情況下甚至可能會導致數據不一致或丟失。由于您所設置的數據日志保存時間低于DTS要求的時間進而導致的問題,不在DTS的SLA保障范圍內。
若源庫待同步的表需要開啟CDC,則需滿足以下條件,否則預檢查將會失敗。 sys.sysservers視圖的srvname字段與SERVERPROPERTY函數返回值保持一致。 若源庫是自建SQL Server,則數據庫所有者需是sa;若源庫是RDS SQL Server,則數據庫所有者需是sqlsa。 若源庫是企業版,則需為2008及以上版本。 若源庫是標準版,則需為2016SP1及以上版本。 若源庫為SQL Server 2017版(包括標準版和企業版),建議升級版本。
若源庫為只讀實例,則不支持同步DDL操作。 若源庫為Azure SQL Database,則一個同步實例僅支持同步一個數據庫。 若源庫為RDS SQL Server,為保障同步實例穩定運行,請確保已關閉透明數據加密TDE(Transparent Data Encryption)功能。更多信息,請參見關閉TDE。 在混合式日志解析模式下,源庫不支持連續執行(時間間隔小于10分鐘)多個加減列操作。例如,連續執行如下SQL會導致任務報錯。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在庫表結構同步和全量同步階段,請勿執行庫或表結構變更的DDL操作,否則會導致數據同步任務失敗。 若源庫為Web版的RDS SQL Server,則在配置任務時SQLServer增量同步模式需選擇為解析源庫日志做增量同步(不支持堆表)。 建議在全量數據同步任務運行期間,確保源庫的事務處理模式參數READ_COMMITTED_SNAPSHOT 為啟用狀態,以避免因共享鎖(Shared Lock)對數據寫入產生影響。否則,可能會導致數據不一致、實例運行失敗等異常情況。由此引發的異常情況,不在DTS的SLA保障范圍內。
|
其他限制 | 同步對象的要求: 若待同步的數據中包含需要四字節存儲的內容(例如生僻字、表情等信息),則目標端接收數據的數據庫和表必須使用utf8mb4字符集。
說明 若您使用DTS同步庫表結構,則需將目標庫中實例級別的參數character_set_server 設置為utf8mb4。 若在對象配置階段將SQLServer增量同步模式選擇為解析源庫日志做增量同步(不支持堆表),則待同步的表需具備聚集索引,且聚集索引中需包含主鍵列;待同步的表不支持堆表、無主鍵表、壓縮表、含計算列表。在混合式日志解析模式下,沒有如上限制。 若在對象配置階段將SQLServer增量同步模式選擇為非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),則DTS的增量同步依賴CDC組件,因此請確保源庫CDC作業正常運行,否則會導致DTS任務失敗。 若在對象配置階段將SQLServer增量同步模式選擇為輪詢查詢CDC實例做增量同步,則還有如下限制: DTS實例使用的源庫賬號需具備開啟CDC的權限。開啟庫級別CDC需要使用sysadmin角色權限的賬號,開啟表級別CDC需要高權限賬號。 DTS是通過輪詢方式去源庫查詢每張表的CDC實例(CDC Instance)以獲取增量數據,因此源庫待同步表的數量不能超過1000張,否則可能會導致任務延遲或不穩定。 不支持連續執行加減列操作(一分鐘內執行超過兩次加列或減列的DDL),否則可能會導致任務失敗。 不支持對源庫CDC實例(CDC Instance)做變更操作,否則可能會導致任務失敗或數據丟失。
暫不支持復雜的同步DDL操作。 為保障增量數據同步延遲的準確性,解析源端日志做增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history;混合式增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history以及會開啟庫級別CDC和部分表CDC,建議源端開啟CDC的表數據變更量不超過1000 RPS。 執行數據同步前需評估源庫和目標庫的性能,同時建議業務低峰期執行數據同步。否則全量數據初始化時將占用源庫和目標庫一定的讀寫資源,可能會導致數據庫的負載上升。 全量初始化會并發執行INSERT操作,導致目標數據庫的表產生碎片,因此全量初始化完成后目標實例的表空間比源實例的表空間大。 在DTS同步期間,不允許有除DTS外的數據寫入目標庫,否則會導致源庫與目標庫數據不一致。例如,有除DTS外的數據寫入目標庫時,使用DMS執行在線DDL變更,可能引起目標庫數據丟失。 同步實例不支持重建索引操作,否則可能造成任務失敗,甚至數據丟失。 若單次同步任務中開啟CDC的表數量大于1000,則預檢查會失敗。 若開啟CDC的表需要寫入的單字段數據超過64 KB,則必須提前使用exec sp_configure 'max text repl size', -1; 命令調整源庫的配置。
說明 CDC作業默認最大能處理的單字段長度為64 KB。 若目標庫的DDL寫入失敗,DTS任務會繼續運行,您需要在任務日志中查看執行失敗的DDL。查看任務日志的方法,請參見查詢任務日志。 若您將列名僅大小寫不同的字段寫入到目標MySQL數據庫的同一個表中,可能會因為MySQL數據庫列名大小寫不敏感,導致同步結果不符合預期。 在數據同步完成后,建議使用analyze table <表名> 命令以確認數據均已寫入目標表。例如,在MySQL觸發HA切換機制后,可能會導致數據只寫到了內存,從而造成數據丟失。 若您需要使用修改同步對象功能,則不支持新增或移除數據庫的操作。 若實例運行失敗,DTS技術支持人員將在8小時內嘗試恢復該實例。在恢復失敗實例的過程中,可能會對該實例進行重啟、調整參數等操作。
說明 在調整參數時,僅會修改實例的參數,不會對數據庫中的參數進行修改。可能修改的參數,包括但不限于修改實例參數中的參數。
|
特殊情況 | 源實例為RDS SQL Server時,DTS會在源RDS SQL Server實例中創建一個rdsdt_dtsacct 賬號用于數據同步,請勿在任務運行過程中對該賬號進行刪除或密碼修改操作,否則可能會導致任務失敗。具體詳情,請參見系統賬號說明。 |
SQL Server同步至PolarDB MySQL
具體注意事項及限制如下:
類型 | 說明 |
源庫限制 | 待同步的表需具備主鍵或唯一約束,且字段具有唯一性,否則可能會導致目標數據庫中出現重復數據。 若同步對象為表級別,且需進行編輯(如表列名映射),單次同步任務的表數量超過5000或時,建議您拆分待同步的表,分批配置多個任務,或者配置整庫的同步任務,否則任務提交后可能會顯示請求報錯。 單次同步任務僅支持同步至多10個數據庫。當超出數量限制,會出現穩定性和性能問題的風險,此時建議您拆分待同步的表,分批配置任務。 DTS是用fn_log函數獲取源庫日志,而該函數有一定的性能瓶頸,請不要過早清理源庫日志,否則可能會導致任務失敗。 數據日志: 需開啟,備份模式設置為Full,且已成功執行過全量物理備份。 如為增量同步任務,DTS要求源數據庫的數據日志保存24小時以上,如為全量同步和增量同步任務,DTS要求源數據庫的數據日志至少保留7天以上(您可在全量同步完成后將數據日志保存時間設置為24小時以上),否則DTS可能因無法獲取數據日志而導致任務失敗,極端情況下甚至可能會導致數據不一致或丟失。由于您所設置的數據日志保存時間低于DTS要求的時間進而導致的問題,不在DTS的SLA保障范圍內。
若源庫待同步的表需要開啟CDC,則需滿足以下條件,否則預檢查將會失敗。 sys.sysservers視圖的srvname字段與SERVERPROPERTY函數返回值保持一致。 若源庫是自建SQL Server,則數據庫所有者需是sa;若源庫是RDS SQL Server,則數據庫所有者需是sqlsa。 若源庫是企業版,則需為2008及以上版本。 若源庫是標準版,則需為2016SP1及以上版本。 若源庫為SQL Server 2017版(包括標準版和企業版),建議升級版本。
若源庫為只讀實例,則不支持同步DDL操作。 若源庫為Azure SQL Database,則一個同步實例僅支持同步一個數據庫。 若源庫為RDS SQL Server,為保障同步實例穩定運行,請確保已關閉透明數據加密TDE(Transparent Data Encryption)功能。更多信息,請參見關閉TDE。 在混合式日志解析模式下,源庫不支持連續執行(時間間隔小于10分鐘)多個加減列操作。例如,連續執行如下SQL會導致任務報錯。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在庫表結構同步和全量同步階段,請勿執行庫或表結構變更的DDL操作,否則會導致數據同步任務失敗。 若源庫為Web版的RDS SQL Server,則在配置任務時SQLServer增量同步模式需選擇為解析源庫日志做增量同步(不支持堆表)。 建議在全量數據同步任務運行期間,確保源庫的事務處理模式參數READ_COMMITTED_SNAPSHOT 為啟用狀態,以避免因共享鎖(Shared Lock)對數據寫入產生影響。否則,可能會導致數據不一致、實例運行失敗等異常情況。由此引發的異常情況,不在DTS的SLA保障范圍內。
|
其他限制 | 同步對象的要求: 若待同步的數據中包含需要四字節存儲的內容(例如生僻字、表情等信息),則目標端接收數據的數據庫和表必須使用utf8mb4字符集。
說明 若您使用DTS同步庫表結構,則需將目標庫中實例級別的參數character_set_server 設置為utf8mb4。 若在對象配置階段將SQLServer增量同步模式選擇為解析源庫日志做增量同步(不支持堆表),則待同步的表需具備聚集索引,且聚集索引中需包含主鍵列;待同步的表不支持堆表、無主鍵表、壓縮表、含計算列表。在混合式日志解析模式下,沒有如上限制。 若在對象配置階段將SQLServer增量同步模式選擇為非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),則DTS的增量同步依賴CDC組件,因此請確保源庫CDC作業正常運行,否則會導致DTS任務失敗。 若在對象配置階段將SQLServer增量同步模式選擇為輪詢查詢CDC實例做增量同步,則還有如下限制: DTS實例使用的源庫賬號需具備開啟CDC的權限。開啟庫級別CDC需要使用sysadmin角色權限的賬號,開啟表級別CDC需要高權限賬號。 DTS是通過輪詢方式去源庫查詢每張表的CDC實例(CDC Instance)以獲取增量數據,因此源庫待同步表的數量不能超過1000張,否則可能會導致任務延遲或不穩定。 不支持連續執行加減列操作(一分鐘內執行超過兩次加列或減列的DDL),否則可能會導致任務失敗。 不支持對源庫CDC實例(CDC Instance)做變更操作,否則可能會導致任務失敗或數據丟失。
暫不支持復雜的同步DDL操作。 為保障增量數據同步延遲的準確性,解析源端日志做增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history;混合式增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history以及會開啟庫級別CDC和部分表CDC,建議源端開啟CDC的表數據變更量不超過1000 RPS。 執行數據同步前需評估源庫和目標庫的性能,同時建議業務低峰期執行數據同步。否則全量數據初始化時將占用源庫和目標庫一定的讀寫資源,可能會導致數據庫的負載上升。 全量初始化會并發執行INSERT操作,導致目標數據庫的表產生碎片,因此全量初始化完成后目標實例的表空間比源實例的表空間大。 在DTS同步期間,不允許有除DTS外的數據寫入目標庫,否則會導致源庫與目標庫數據不一致。例如,有除DTS外的數據寫入目標庫時,使用DMS執行在線DDL變更,可能引起目標庫數據丟失。 同步實例不支持重建索引操作,否則可能造成任務失敗,甚至數據丟失。 若單次同步任務中開啟CDC的表數量大于1000,則預檢查會失敗。 若開啟CDC的表需要寫入的單字段數據超過64 KB,則必須提前使用exec sp_configure 'max text repl size', -1; 命令調整源庫的配置。
說明 CDC作業默認最大能處理的單字段長度為64 KB。 若目標庫的DDL寫入失敗,DTS任務會繼續運行,您需要在任務日志中查看執行失敗的DDL。查看任務日志的方法,請參見查詢任務日志。 若您需要使用修改同步對象功能,則不支持新增或移除數據庫的操作。 若實例運行失敗,DTS技術支持人員將在8小時內嘗試恢復該實例。在恢復失敗實例的過程中,可能會對該實例進行重啟、調整參數等操作。
說明 在調整參數時,僅會修改實例的參數,不會對數據庫中的參數進行修改。可能修改的參數,包括但不限于修改實例參數中的參數。
|
特殊情況 | 源實例為RDS SQL Server時,DTS會在源RDS SQL Server實例中創建一個rdsdt_dtsacct 賬號用于數據同步,請勿在任務運行過程中對該賬號進行刪除或密碼修改操作,否則可能會導致任務失敗。具體詳情,請參見系統賬號說明。 |
SQL Server同步至云原生數據倉庫 AnalyticDB MySQL 版 3.0
類型 | 說明 |
源庫限制 | 待同步的表需具備主鍵或唯一約束,且字段具有唯一性,否則可能會導致目標數據庫中出現重復數據。 若同步對象為表級別,且需進行編輯(如表列名映射),單次同步任務的表數量超過5000或時,建議您拆分待同步的表,分批配置多個任務,或者配置整庫的同步任務,否則任務提交后可能會顯示請求報錯。 單次同步任務僅支持同步至多10個數據庫。當超出數量限制,會出現穩定性和性能問題的風險,此時建議您拆分待同步的表,分批配置任務。 DTS是用fn_log函數獲取源庫日志,而該函數有一定的性能瓶頸,請不要過早清理源庫日志,否則可能會導致任務失敗。 數據日志: 需開啟,備份模式設置為Full,且已成功執行過全量物理備份。 如為增量同步任務,DTS要求源數據庫的數據日志保存24小時以上,如為全量同步和增量同步任務,DTS要求源數據庫的數據日志至少保留7天以上(您可在全量同步完成后將數據日志保存時間設置為24小時以上),否則DTS可能因無法獲取數據日志而導致任務失敗,極端情況下甚至可能會導致數據不一致或丟失。由于您所設置的數據日志保存時間低于DTS要求的時間進而導致的問題,不在DTS的SLA保障范圍內。
若源庫待同步的表需要開啟CDC,則需滿足以下條件,否則預檢查將會失敗。 sys.sysservers視圖的srvname字段與SERVERPROPERTY函數返回值保持一致。 若源庫是自建SQL Server,則數據庫所有者需是sa;若源庫是RDS SQL Server,則數據庫所有者需是sqlsa。 若源庫是企業版,則需為2008及以上版本。 若源庫是標準版,則需為2016SP1及以上版本。 若源庫為SQL Server 2017版(包括標準版和企業版),建議升級版本。
若源庫為只讀實例,則不支持同步DDL操作。 若源庫為Azure SQL Database,則一個同步實例僅支持同步一個數據庫。 若源庫為RDS SQL Server,為保障同步實例穩定運行,請確保已關閉透明數據加密TDE(Transparent Data Encryption)功能。更多信息,請參見關閉TDE。 在混合式日志解析模式下,源庫不支持連續執行(時間間隔小于10分鐘)多個加減列操作。例如,連續執行如下SQL會導致任務報錯。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在庫表結構同步和全量同步階段,請勿執行庫或表結構變更的DDL操作,否則會導致數據同步任務失敗。 若源庫為Web版的RDS SQL Server,則在配置任務時SQLServer增量同步模式需選擇為解析源庫日志做增量同步(不支持堆表)。 建議在全量數據同步任務運行期間,確保源庫的事務處理模式參數READ_COMMITTED_SNAPSHOT 為啟用狀態,以避免因共享鎖(Shared Lock)對數據寫入產生影響。否則,可能會導致數據不一致、實例運行失敗等異常情況。由此引發的異常情況,不在DTS的SLA保障范圍內。
|
其他限制 | 同步對象的要求: 支持結構初始化的對象有Schema、Table、View、Function和Procedure。
警告 由于此場景屬于異構數據庫間的數據同步,數據類型無法一一對應,可能會導致任務失敗或數據丟失,請謹慎評估數據類型的映射關系對業務的影響,詳情請參見結構初始化涉及的數據類型映射關系。 不支持結構初始化的結構對象有:assemblies、service broker、全文索引、全文目錄、分布式schema、分布式函數、CLR存儲過程、CLR標量函數、CLR表值函數、內部表、系統、聚合函數。 不支持同步數據類型為TIMESTAMP、CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY和GEOGRAPHY的數據。 不支持同步含有計算列的表。
若在對象配置階段將SQLServer增量同步模式選擇為解析源庫日志做增量同步(不支持堆表),則待同步的表需具備聚集索引,且聚集索引中需包含主鍵列;待同步的表不支持堆表、無主鍵表、壓縮表、含計算列表。在混合式日志解析模式下,沒有如上限制。 若在對象配置階段將SQLServer增量同步模式選擇為非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),則DTS的增量同步依賴CDC組件,因此請確保源庫CDC作業正常運行,否則會導致DTS任務失敗。 若在對象配置階段將SQLServer增量同步模式選擇為輪詢查詢CDC實例做增量同步,則還有如下限制: DTS實例使用的源庫賬號需具備開啟CDC的權限。開啟庫級別CDC需要使用sysadmin角色權限的賬號,開啟表級別CDC需要高權限賬號。 DTS是通過輪詢方式去源庫查詢每張表的CDC實例(CDC Instance)以獲取增量數據,因此源庫待同步表的數量不能超過1000張,否則可能會導致任務延遲或不穩定。 不支持連續執行加減列操作(一分鐘內執行超過兩次加列或減列的DDL),否則可能會導致任務失敗。 不支持對源庫CDC實例(CDC Instance)做變更操作,否則可能會導致任務失敗或數據丟失。
為保障增量數據同步延遲的準確性,解析源端日志做增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history;混合式增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history以及會開啟庫級別CDC和部分表CDC,建議源端開啟CDC的表數據變更量不超過1000 RPS。 由于云原生數據倉庫AnalyticDB MySQL版(3.0)本身的使用限制,當云原生數據倉庫AnalyticDB MySQL版(3.0)中的節點磁盤空間使用量超過80%,數據寫入目標庫的性能變慢,導致DTS任務延遲;當使用量超過90%,數據無法寫入目標庫,導致DTS任務異常。請提前根據待同步的對象預估所需空間,確保目標集群具備充足的存儲空間。 執行數據同步前需評估源庫和目標庫的性能,同時建議業務低峰期執行數據同步。否則全量數據初始化時將占用源庫和目標庫一定的讀寫資源,可能會導致數據庫的負載上升。 全量初始化會并發執行INSERT操作,導致目標數據庫的表產生碎片,因此全量初始化完成后目標實例的表空間比源實例的表空間大。 在DTS同步期間,不允許有除DTS外的數據寫入目標庫,否則會導致源庫與目標庫數據不一致。例如,有除DTS外的數據寫入目標庫時,使用DMS執行在線DDL變更,可能引起目標庫數據丟失。 同步實例不支持重建索引操作,否則可能造成任務失敗,甚至數據丟失。 若單次同步任務中開啟CDC的表數量大于1000,則預檢查會失敗。 若開啟CDC的表需要寫入的單字段數據超過64 KB,則必須提前使用exec sp_configure 'max text repl size', -1; 命令調整源庫的配置。
說明 CDC作業默認最大能處理的單字段長度為64 KB。 若目標庫的DDL寫入失敗,DTS任務會繼續運行,您需要在任務日志中查看執行失敗的DDL。查看任務日志的方法,請參見查詢任務日志。 若您需要使用修改同步對象功能,則不支持新增或移除數據庫的操作。 若DTS任務運行時目標AnalyticDB MySQL版 3.0集群處于備份中的狀態,則會導致任務失敗。 若實例運行失敗,DTS技術支持人員將在8小時內嘗試恢復該實例。在恢復失敗實例的過程中,可能會對該實例進行重啟、調整參數等操作。
說明 在調整參數時,僅會修改實例的參數,不會對數據庫中的參數進行修改。可能修改的參數,包括但不限于修改實例參數中的參數。
|
特殊情況 | 源實例為RDS SQL Server時,DTS會在源RDS SQL Server實例中創建一個rdsdt_dtsacct 賬號用于數據同步,請勿在任務運行過程中對該賬號進行刪除或密碼修改操作,否則可能會導致任務失敗。具體詳情,請參見系統賬號說明。 |
SQL Server同步至云原生數據倉庫AnalyticDB PostgreSQL版
具體注意事項及限制如下:
類型 | 說明 |
源庫限制 | 待同步的表需具備主鍵或唯一約束,且字段具有唯一性,否則可能會導致目標數據庫中出現重復數據。 若同步對象為表級別,且需進行編輯(如表列名映射),單次同步任務的表數量超過5000或時,建議您拆分待同步的表,分批配置多個任務,或者配置整庫的同步任務,否則任務提交后可能會顯示請求報錯。 單次同步任務僅支持同步至多10個數據庫。當超出數量限制,會出現穩定性和性能問題的風險,此時建議您拆分待同步的表,分批配置任務。 DTS是用fn_log函數獲取源庫日志,而該函數有一定的性能瓶頸,請不要過早清理源庫日志,否則可能會導致任務失敗。 數據日志: 需開啟,備份模式設置為Full,且已成功執行過全量物理備份。 如為增量同步任務,DTS要求源數據庫的數據日志保存24小時以上,如為全量同步和增量同步任務,DTS要求源數據庫的數據日志至少保留7天以上(您可在全量同步完成后將數據日志保存時間設置為24小時以上),否則DTS可能因無法獲取數據日志而導致任務失敗,極端情況下甚至可能會導致數據不一致或丟失。由于您所設置的數據日志保存時間低于DTS要求的時間進而導致的問題,不在DTS的SLA保障范圍內。
若源庫待同步的表需要開啟CDC,則需滿足以下條件,否則預檢查將會失敗。 sys.sysservers視圖的srvname字段與SERVERPROPERTY函數返回值保持一致。 若源庫是自建SQL Server,則數據庫所有者需是sa;若源庫是RDS SQL Server,則數據庫所有者需是sqlsa。 若源庫是企業版,則需為2008及以上版本。 若源庫是標準版,則需為2016SP1及以上版本。 若源庫為SQL Server 2017版(包括標準版和企業版),建議升級版本。
若源庫為只讀實例,則不支持同步DDL操作。 若源庫為Azure SQL Database,則一個同步實例僅支持同步一個數據庫。 若源庫為RDS SQL Server,為保障同步實例穩定運行,請確保已關閉透明數據加密TDE(Transparent Data Encryption)功能。更多信息,請參見關閉TDE。 在混合式日志解析模式下,源庫不支持連續執行(時間間隔小于10分鐘)多個加減列操作。例如,連續執行如下SQL會導致任務報錯。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在庫表結構同步和全量同步階段,請勿執行庫或表結構變更的DDL操作,否則會導致數據同步任務失敗。 若源庫為Web版的RDS SQL Server,則在配置任務時SQLServer增量同步模式需選擇為解析源庫日志做增量同步(不支持堆表)。 建議在全量數據同步任務運行期間,確保源庫的事務處理模式參數READ_COMMITTED_SNAPSHOT 為啟用狀態,以避免因共享鎖(Shared Lock)對數據寫入產生影響。否則,可能會導致數據不一致、實例運行失敗等異常情況。由此引發的異常情況,不在DTS的SLA保障范圍內。
|
其他限制 | 同步對象的要求: 支持結構初始化的對象有Schema、Table、View、Function和Procedure。
警告 由于此場景屬于異構數據庫間的數據同步,數據類型無法一一對應,可能會導致任務失敗或數據丟失,請謹慎評估數據類型的映射關系對業務的影響,詳情請參見結構初始化涉及的數據類型映射關系。 不支持結構初始化的結構對象有:assemblies、service broker、全文索引、全文目錄、分布式schema、分布式函數、CLR存儲過程、CLR標量函數、CLR表值函數、內部表、系統、聚合函數。 不支持同步數據類型為TIMESTAMP、CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY和GEOGRAPHY的數據。 不支持同步含有計算列的表。
若在對象配置階段將SQLServer增量同步模式選擇為解析源庫日志做增量同步(不支持堆表),則待同步的表需具備聚集索引,且聚集索引中需包含主鍵列;待同步的表不支持堆表、無主鍵表、壓縮表、含計算列表。在混合式日志解析模式下,沒有如上限制。 若在對象配置階段將SQLServer增量同步模式選擇為非堆表用日志解析增量同步,堆表用CDC增量同步(混合式日志解析),則DTS的增量同步依賴CDC組件,因此請確保源庫CDC作業正常運行,否則會導致DTS任務失敗。 若在對象配置階段將SQLServer增量同步模式選擇為輪詢查詢CDC實例做增量同步,則還有如下限制: DTS實例使用的源庫賬號需具備開啟CDC的權限。開啟庫級別CDC需要使用sysadmin角色權限的賬號,開啟表級別CDC需要高權限賬號。 DTS是通過輪詢方式去源庫查詢每張表的CDC實例(CDC Instance)以獲取增量數據,因此源庫待同步表的數量不能超過1000張,否則可能會導致任務延遲或不穩定。 不支持連續執行加減列操作(一分鐘內執行超過兩次加列或減列的DDL),否則可能會導致任務失敗。 不支持對源庫CDC實例(CDC Instance)做變更操作,否則可能會導致任務失敗或數據丟失。
為保障增量數據同步延遲的準確性,解析源端日志做增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history;混合式增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history以及會開啟庫級別CDC和部分表CDC,建議源端開啟CDC的表數據變更量不超過1000 RPS。 執行數據同步前需評估源庫和目標庫的性能,同時建議業務低峰期執行數據同步。否則全量數據初始化時將占用源庫和目標庫一定的讀寫資源,可能會導致數據庫的負載上升。 全量初始化會并發執行INSERT操作,導致目標數據庫的表產生碎片,因此全量初始化完成后目標實例的表空間比源實例的表空間大。 在DTS同步期間,不允許有除DTS外的數據寫入目標庫,否則會導致源庫與目標庫數據不一致。例如,有除DTS外的數據寫入目標庫時,使用DMS執行在線DDL變更,可能引起目標庫數據丟失。 選擇同步對象時支持的粒度為表,支持修改列的映射關系。若使用列映射時為非全表同步或者源與目標表結構不一致,則目標端比源端缺少的列的數據將會丟失。 同步實例不支持重建索引操作,否則可能造成任務失敗,甚至數據丟失。 若單次同步任務中開啟CDC的表數量大于1000,則預檢查會失敗。 若開啟CDC的表需要寫入的單字段數據超過64 KB,則必須提前使用exec sp_configure 'max text repl size', -1; 命令調整源庫的配置。
說明 CDC作業默認最大能處理的單字段長度為64 KB。 若您需要使用修改同步對象功能,則不支持新增或移除數據庫的操作。 若實例運行失敗,DTS技術支持人員將在8小時內嘗試恢復該實例。在恢復失敗實例的過程中,可能會對該實例進行重啟、調整參數等操作。
說明 在調整參數時,僅會修改實例的參數,不會對數據庫中的參數進行修改。可能修改的參數,包括但不限于修改實例參數中的參數。
|
特殊情況 | 源實例為RDS SQL Server時,DTS會在源RDS SQL Server實例中創建一個rdsdt_dtsacct 賬號用于數據同步,請勿在任務運行過程中對該賬號進行刪除或密碼修改操作,否則可能會導致任務失敗。具體詳情,請參見系統賬號說明。 |
SQL Server同步至阿里云流式數據服務DataHub
具體注意事項及限制如下:
類型 | 說明 |
源庫限制 | 待同步的表需具備主鍵或唯一約束,且字段具有唯一性,否則可能會導致目標數據庫中出現重復數據。 若同步對象為表級別,且需進行編輯(如表列名映射),單次同步任務的表數量超過5000或時,建議您拆分待同步的表,分批配置多個任務,或者配置整庫的同步任務,否則任務提交后可能會顯示請求報錯。 單次同步任務僅支持同步至多10個數據庫。當超出數量限制,會出現穩定性和性能問題的風險,此時建議您拆分待同步的表,分批配置任務。 DTS是用fn_log函數獲取源庫日志,而該函數有一定的性能瓶頸,請不要過早清理源庫日志,否則可能會導致任務失敗。 數據日志: 需開啟,備份模式設置為Full,且已成功執行過全量物理備份。 如為增量同步任務,DTS要求源數據庫的數據日志保存24小時以上,如為全量同步和增量同步任務,DTS要求源數據庫的數據日志至少保留7天以上(您可在全量同步完成后將數據日志保存時間設置為24小時以上),否則DTS可能因無法獲取數據日志而導致任務失敗,極端情況下甚至可能會導致數據不一致或丟失。由于您所設置的數據日志保存時間低于DTS要求的時間進而導致的問題,不在DTS的SLA保障范圍內。
若源庫待同步的表需要開啟CDC,則需滿足以下條件,否則預檢查將會失敗。 sys.sysservers視圖的srvname字段與SERVERPROPERTY函數返回值保持一致。 若源庫是自建SQL Server,則數據庫所有者需是sa;若源庫是RDS SQL Server,則數據庫所有者需是sqlsa。 若源庫是企業版,則需為2008及以上版本。 若源庫是標準版,則需為2016SP1及以上版本。 若源庫為SQL Server 2017版(包括標準版和企業版),建議升級版本。
若源庫為Azure SQL Database,則一個同步實例僅支持同步一個數據庫。 若源庫為RDS SQL Server,為保障同步實例穩定運行,請確保已關閉透明數據加密TDE(Transparent Data Encryption)功能。更多信息,請參見關閉TDE。 在混合式日志解析模式下,源庫不支持連續執行(時間間隔小于10分鐘)多個加減列操作。例如,連續執行如下SQL會導致任務報錯。 ALTER TABLE test_table DROP COLUMN Flag;
ALTER TABLE test_table ADD Remark nvarchar(50) not null default('');
在庫表結構同步階段,請勿執行庫或表結構變更的DDL操作,否則會導致數據同步任務失敗。 建議在全量數據同步任務運行期間,確保源庫的事務處理模式參數READ_COMMITTED_SNAPSHOT 為啟用狀態,以避免因共享鎖(Shared Lock)對數據寫入產生影響。否則,可能會導致數據不一致、實例運行失敗等異常情況。由此引發的異常情況,不在DTS的SLA保障范圍內。
|
其他限制 | 僅支持增量同步和庫表結構同步,不支持全量同步。 目標DataHub中單個String字段的長度最大支持2 MB。 同步對象的要求: 支持結構初始化的對象有Schema、Table、View、Function和Procedure。
警告 由于此場景屬于異構數據庫間的數據同步,數據類型無法一一對應,可能會導致任務失敗或數據丟失,請謹慎評估數據類型的映射關系對業務的影響,詳情請參見結構初始化涉及的數據類型映射關系。 不支持結構初始化的結構對象有:assemblies、service broker、全文索引、全文目錄、分布式schema、分布式函數、CLR存儲過程、CLR標量函數、CLR表值函數、內部表、系統、聚合函數。 不支持同步數據類型為TIMESTAMP、CURSOR、ROWVERSION、SQL_VARIANT、HIERARCHYID、POLYGON、GEOMETRY和GEOGRAPHY的數據。 不支持同步含有計算列的表。
為保障增量數據同步延遲的準確性,解析源端日志做增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history;混合式增量同步模式,DTS會在源庫中創建觸發器dts_cdc_sync_ddl、心跳表dts_sync_progress、DDL存儲表dts_cdc_ddl_history以及會開啟庫級別CDC和部分表CDC,建議源端開啟CDC的表數據變更量不超過1000 RPS。 執行數據同步前需評估源庫和目標庫的性能,同時建議業務低峰期執行數據同步。否則全量數據初始化時將占用源庫和目標庫一定的讀寫資源,可能會導致數據庫的負載上升。 全量初始化會并發執行INSERT操作,導致目標數據庫的表產生碎片,因此全量初始化完成后目標實例的表空間比源實例的表空間大。 在DTS同步期間,不允許有除DTS外的數據寫入目標庫,否則會導致源庫與目標庫數據不一致。例如,有除DTS外的數據寫入目標庫時,使用DMS執行在線DDL變更,可能引起目標庫數據丟失。 同步實例不支持重建索引操作,否則可能造成任務失敗,甚至數據丟失。 若單次同步任務中開啟CDC的表數量大于1000,則預檢查會失敗。 若開啟CDC的表需要寫入的單字段數據超過64 KB,則必須提前使用exec sp_configure 'max text repl size', -1; 命令調整源庫的配置。
說明 CDC作業默認最大能處理的單字段長度為64 KB。 若您需要使用修改同步對象功能,則不支持新增或移除數據庫的操作。 若實例運行失敗,DTS技術支持人員將在8小時內嘗試恢復該實例。在恢復失敗實例的過程中,可能會對該實例進行重啟、調整參數等操作。
說明 在調整參數時,僅會修改實例的參數,不會對數據庫中的參數進行修改。可能修改的參數,包括但不限于修改實例參數中的參數。
|
特殊情況 | 源實例為RDS SQL Server時,DTS會在源RDS SQL Server實例中創建一個rdsdt_dtsacct 賬號用于數據同步,請勿在任務運行過程中對該賬號進行刪除或密碼修改操作,否則可能會導致任務失敗。具體詳情,請參見系統賬號說明。 |