本文介紹如何使用Data Transmission Service配置資料校正任務,協助您監控源庫與目標庫資料的差異。您可以在同步或遷移執行個體的高級配置階段選擇相應的數據校正方式,以便及時探索資料不一致的問題。
注意事項
傳統網路的資料庫執行個體暫不支援增量資料校正功能。
開啟多表歸併的執行個體暫不支援資料校正功能。
運行狀態為已完成的執行個體暫不支援資料校正功能。
若待校正的表為無主鍵且無唯一索引的表,則該表的資料超過10000行時DTS將不會進行資料校正。
若待校正的資料既沒有主鍵約束也沒有唯一約束,則DTS將不會進行增量資料校正。
若同步或遷移執行個體進行重啟操作(例如先暫停再啟動),則執行個體中的全量校正任務會重新開始校正。
在執行校正任務前需評估源庫和目標庫的效能,同時建議您在業務低峰期執行資料校正(例如源庫和目標庫的CPU負載在30%以下)。因為DTS在進行資料校正時將佔用源庫和目標庫一定的讀資源,可能會導致資料庫的負載上升。在資料庫效能較差、規格較低或業務量較大的情況下,可能會加重資料庫壓力,甚至導致資料庫服務不可用。
在同步或遷移執行個體中配置的校正任務,數據校正方式的可勾選項與同步類型或遷移類型密切相關。
例如,遷移執行個體的遷移類型只選擇了增量遷移,在配置數據校正方式時則只允許勾選增量校正。
增量校正任務僅支援校正增量同步處理或增量遷移任務中變更的資料,不支援校正手動在目標庫中變更的資料。
在校正工作清單配置的校正任務,不支援增量校正。
採用按行抽樣進行全字段校驗方式對MongoDB進行資料校正時,抽樣百分比預設為100%,且不支援修改。
若全量校正模式選擇了按行抽樣進行全字段校驗,則不建議同時使用ETL功能。否則,ETL功能修改後的資料會被校正為不一致資料。
不支援校正物化視圖。
在全量校正過程中,若單張表中存在差異的資料超過100000行,DTS將終止對該表的校正。請在差異資料量減少後,重新對該表進行校正。
支援的地區
支援的地區,請參見支援的地區列表。
支援的鏈路
源庫和目標庫間的雙向同步鏈路也支援校正功能。
源庫和目標庫支援阿里雲和自建資料庫執行個體。
資料校正方式 | 源庫 | 目標庫 |
全量校正 | MySQL | MySQL、AnalyticDB MySQL、PolarDB MySQL版、PostgreSQL、AnalyticDB PostgreSQL版、Oracle |
PolarDB MySQL版 | MySQL、AnalyticDB MySQL、PolarDB MySQL版、AnalyticDB PostgreSQL版、Oracle | |
PostgreSQL | MySQL、PostgreSQL、AnalyticDB PostgreSQL版、PolarDB PostgreSQL版、PolarDB PostgreSQL版(相容Oracle)、Oracle | |
PolarDB PostgreSQL版 | MySQL、PostgreSQL、AnalyticDB PostgreSQL版、PolarDB PostgreSQL版、Oracle | |
單節點架構的MongoDB | 單節點架構的MongoDB | |
複本集架構的MongoDB | 複本集架構的MongoDB | |
分區叢集架構的MongoDB | 分區叢集架構的MongoDB | |
主從複製叢集架構的Tair/Redis | 主從複製叢集架構的Tair/Redis | |
Redis Cluster叢集架構的Tair/Redis | Redis Cluster叢集架構的Tair/Redis | |
SQL Server | MySQL、AnalyticDB MySQL、PolarDB MySQL版、SQL Server、AnalyticDB PostgreSQL版 | |
Oracle | AnalyticDB MySQL、AnalyticDB PostgreSQL版、MySQL、PolarDB MySQL版、PolarDB PostgreSQL版、PolarDB PostgreSQL版(相容Oracle)、PostgreSQL、Oracle | |
PolarDB PostgreSQL版(相容Oracle) | PolarDB PostgreSQL版(相容Oracle)、AnalyticDB MySQL、Oracle | |
Db2 for LUW | MySQL、PolarDB MySQL版、AnalyticDB MySQL、AnalyticDB PostgreSQL版 | |
Db2 for i(AS/400) | MySQL | |
TiDB | MySQL、PolarDB MySQL版、AnalyticDB MySQL | |
增量校正 | MySQL | MySQL、AnalyticDB MySQL、PolarDB MySQL版、PostgreSQL、AnalyticDB PostgreSQL版、PolarDB PostgreSQL版 |
PolarDB MySQL版 | MySQL、AnalyticDB MySQL、PolarDB MySQL版、AnalyticDB PostgreSQL版 | |
PostgreSQL | MySQL、PostgreSQL、AnalyticDB PostgreSQL版、PolarDB PostgreSQL版 | |
PolarDB PostgreSQL版 | PostgreSQL、AnalyticDB PostgreSQL版、PolarDB PostgreSQL版 | |
單節點架構的MongoDB | 單節點架構的MongoDB | |
複本集架構的MongoDB | 複本集架構的MongoDB | |
分區叢集架構的MongoDB | 分區叢集架構的MongoDB | |
SQL Server | MySQL、AnalyticDB MySQL、PolarDB MySQL版、SQL Server、AnalyticDB PostgreSQL版 | |
Oracle | AnalyticDB MySQL、MySQL、PolarDB MySQL版、PolarDB PostgreSQL版(相容Oracle) | |
結構校正 | MySQL | MySQL、PolarDB MySQL版 |
PolarDB MySQL版 | MySQL、PolarDB MySQL版 | |
PostgreSQL | PostgreSQL、PolarDB PostgreSQL版 | |
PolarDB PostgreSQL版 | PostgreSQL、PolarDB PostgreSQL版 |
在校正工作清單配置校正任務
進入校正任務的列表頁面。
在頂部功能表列中,單擊整合與開發。
在左側導覽列,選擇 。
進入校正任務的配置頁面(二選一)。
已購買校正任務(先購買再配置):找到目標任務,單擊操作列的配置任務。
購買方法,請參見購買資料校正任務。
未購買校正任務(先配置再購買):單擊創建任務。
參考同步方案概覽或遷移方案概覽中的相關配置文檔,配置源庫及目標庫資訊。
說明先購買再配置任務的執行個體地區不支援修改。
若源庫為分區叢集架構的MongoDB,則無需準備Shard賬號和Shard密碼。
配置完成後,單擊頁面下方的測試連接以進行下一步。
如果源或目標資料庫是阿里雲資料庫執行個體(例如RDS MySQL、ApsaraDB for MongoDB等),DTS會自動將對應地區DTS服務的IP地址添加到阿里雲資料庫執行個體的白名單中;如果源或目標資料庫是ECS上的自建資料庫,DTS會自動將對應地區DTS服務的IP地址添加到ECS的安全規則中,您還需確保自建資料庫沒有限制ECS的訪問(若資料庫是叢集部署在多個ECS執行個體,您需要手動將DTS服務對應地區的IP地址添到其餘每個ECS的安全規則中);如果源或目標資料庫是IDC自建資料庫或其他雲資料庫,則需要您手動添加對應地區DTS服務的IP地址,以允許來自DTS伺服器的訪問。DTS服務的IP地址,請參見DTS伺服器的IP位址區段。
警告DTS自動添加或您手動添加DTS服務的公網IP位址區段可能會存在安全風險,一旦使用本產品代表您已理解和確認其中可能存在的安全風險,並且需要您做好基本的安全防護,包括但不限於加強帳號密碼強度防範、限制各網段開放的連接埠號碼、內部各API使用鑒權方式通訊、定期檢查並限制不需要的網段,或者使用通過內網(專線/VPN網關/智能網關)的方式接入。
設定數據校正方式。
根據業務需求勾選資料校正的方式,若您勾選了全量校正,您還需要設定如下表所示參數。
說明全量校正:對全量任務中需要校正的資料進行校正。
結構校正:對需要校正的對象進行結構校正。
結構校正任務執行完成後,才會執行全量和增量校正任務。
在校正工作清單配置的校正任務,不支援增量校正。
參數
說明
全量校正模式
按行抽樣進行全字段校驗:配置抽樣百分比,對抽中的資料進行全欄位校正,取值為10~100的整數。
按錶行數進行校正:對全量任務資料的行數進行校正,不會對具體的資料內容進行校正。
說明按錶行數進行校正的全量校正模式不收費;按行抽樣進行全字段校驗的全量校正模式按實際校正資料量收費。
全量校正時間規則
當前僅支援立即開始。
全量校正逾時設定
不設定:全量校正任務逾時不會強制結束。
設定:設定全量校正任務結束的延遲時間。在全量校正任務啟動後開始計時,若校正任務未在指定時間完成則強制結束。取值為1~72的整數。
選擇校正基準
預設:以源庫和目標庫的合集為基準,校正源庫和目標庫資料的一致性。
源庫:以源庫為基準,校正目標庫與源庫資料的一致性(不校正目標庫比源庫多的資料)。
目標庫:以目標庫為基準,校正源庫與目標庫資料的一致性(不校正源庫比目標庫多的資料)。
每秒讀取的最大數據行數rps
全量資料校正會佔用資料庫一定的讀取資源,您可以根據實際情況對全量校正任務進行限速設定(每秒讀取的資料行數和資料量),以緩解資料庫的壓力。
說明參數值為0時表示無限制,當每秒讀取的最大數據行數rps和每秒讀取最大的Byte數byte/s均為0時,表示不限速。
每秒讀取最大的Byte數byte/s
設定校正對象。
選擇源庫待校正的對象。
在源庫對象框中勾選需要進行資料校正的對象,然後單擊將其移動至已選擇對象框。
說明僅當選擇校正對象的粒度為表時,支援設定目標庫表的表名稱和列名稱。
設定目標庫待校正的對象。
在已選擇對象框中,右擊移動過來的Schema。
在彈出的編輯Schema對話方塊中,設定目標庫的Schema名稱,並單擊確定。
在已選擇對象框中,右擊移動過來的表。
在彈出的編輯表對話方塊中,設定目標庫表的表名稱。
可選:在列地區的列名稱列,設定目標表的列名。
說明您也可以取消選中全表同步,勾選需要校正的列。
設定完成後,單擊確定。
可選:配置校正警示。
若您數據校正方式勾選了全量校正,還可以根據業務需求配置全量校正警示。
參數
說明
全量校正警示
不設定:不設定警示。
設定:設定警示,您還需要選擇和配置警示規則。警示規則如下:
當全量校正任務失敗時觸發警示。
設定資料不一致的閾值,當全量校正任務不一致資料大於等於設定的閾值時觸發警示。
重要若您設定了校正警示,且需要在校正任務觸發警示時接收警示通知,還需要前往CloudMonitor平台進行警示訊息訂閱設定。更多資訊,請參見通過CloudMonitor平台為DTS任務設定警示規則。
單擊下一步高級配置,進行進階配置。
配置
說明
選擇調度該任務的專屬叢集
DTS預設將任務調度到共用叢集上,您無需選擇。您可以購買指定規格的專屬叢集來運行DTS任務,詳情請參見什麼是DTS專屬叢集。
源庫、目標庫無法串連後的重試時間
在同步任務啟動後,若源庫或目標庫串連失敗則DTS會報錯,並會立即進行持續的重試串連,預設持續重試時間為720分鐘,您也可以在取值範圍(10~1440分鐘)內自訂重試時間,建議設定30分鐘以上。如果DTS在設定的重試時間內重新串連上源庫、目標庫,同步任務將自動回復。否則,同步任務將會失敗。
說明針對同源或者同目標的多個DTS執行個體,如DTS執行個體A和DTS執行個體B,設定網路重試時間時A設定30分鐘,B設定60分鐘,則重試時間以低的30分鐘為準。
由於串連重試期間,DTS將收取任務運行費用,建議您根據業務需要自訂重試時間,或者在源和目標庫執行個體釋放後儘快釋放DTS執行個體。
源庫、目標庫出現其他問題後的重試時間
在同步任務啟動後,若源庫或目標庫出現非串連性的其他問題(如DDL或DML執行異常),則DTS會報錯並會立即進行持續的重試操作,預設持續重試時間為10分鐘,您也可以在取值範圍(1~1440分鐘)內自訂重試時間,建議設定10分鐘以上。如果DTS在設定的重試時間內相關操作執行成功,同步任務將自動回復。否則,同步任務將會失敗。
重要源庫、目標庫出現其他問題後的重試時間的值需要小於源庫、目標庫無法串連後的重試時間的值。
環境標籤
非必選項,您可以根據實際情況,選擇用於標識執行個體的環境標籤。
儲存任務並進行預檢查。
若您需要查看調用API介面配置該執行個體時的參數資訊,請將滑鼠游標移動至下一步儲存任務並預檢查按鈕上,然後單擊氣泡中的預覽OpenAPI參數。
若您無需查看或已完成查看API參數,請單擊頁面下方的下一步儲存任務並預檢查。
說明在校正任務正式啟動之前,會先進行預檢查。只有預檢查通過後,才能成功啟動校正任務。
如果預檢查失敗,請單擊失敗檢查項後的查看詳情,並根據提示修複後重新進行預檢查。
如果預檢查產生警告:
對於不可以忽略的檢查項,請單擊失敗檢查項後的查看詳情,並根據提示修複後重新進行預檢查。
對於可以忽略無需修複的檢查項,您可以依次單擊點擊確認警示詳情、確認屏蔽、確定、重新進行預檢查,跳過警示檢查項重新進行預檢查。如果選擇屏蔽警示檢查項,可能會導致資料不一致等問題,給業務帶來風險。
查看資料校正任務進度。
已購買校正任務(先購買再配置):預檢查通過率顯示為100%時,單擊返回列表。
未購買校正任務(先配置再購買):預檢查通過率顯示為100%時,依次單擊下一步購買、閱讀並勾選《數據傳輸(隨用隨付)服務條款》、單擊購買並啟動、單擊確定。
在DTS同步或遷移執行個體中配置資料校正
進入數據校正頁面。
說明若您使用的是舊版配置頁,則需要進入高級配置頁面。
設定數據校正方式。
根據業務需求勾選資料校正的方式,若您勾選了全量校正,您還需要設定如下表所示參數。
說明全量校正:對全量任務中需要校正的資料進行校正。若執行個體不包含增量任務,則執行個體建立成功後且全量資料寫入完成時開始校正;若執行個體包含增量任務,則執行個體建立成功且增量資料寫入首次無延遲時開始校正。
增量校正:對增量任務的資料進行校正,執行個體建立成功後且增量資料寫入首次無延遲時開始校正。
結構校正:對需要校正的對象進行結構校正。若執行個體不包含增量任務,則執行個體建立成功後且庫表結構和全量資料寫入完成時開始校正;若執行個體包含增量任務,則執行個體建立成功後且增量資料寫入首次無延遲時開始校正。
結構校正任務執行完成後,才會執行全量和增量校正任務。
參數
說明
全量校正模式
按行抽樣進行全字段校驗:配置抽樣百分比,對抽中的資料進行全欄位校正,取值為10~100的整數。
按錶行數進行校正:對全量任務資料的行數進行校正,不會對具體的資料內容進行校正。
說明按錶行數進行校正的全量校正模式不收費;按行抽樣進行全字段校驗的全量校正模式按實際校正資料量收費。
全量校正時間規則
當前僅支援立即開始。
全量校正逾時設定
不設定:全量校正任務逾時不會強制結束。
設定:設定全量校正任務結束的延遲時間。在全量校正任務啟動後開始計時,若校正任務未在指定時間完成則強制結束。取值為1~72的整數。
選擇校正基準
預設:以源庫和目標庫的合集為基準,校正源庫和目標庫資料的一致性。
源庫:以源庫為基準,校正目標庫與源庫資料的一致性(不校正目標庫比源庫多的資料)。
目標庫:以目標庫為基準,校正源庫與目標庫資料的一致性(不校正源庫比目標庫多的資料)。
每秒讀取的最大數據行數rps
全量資料校正會佔用資料庫一定的讀取資源,您可以根據實際情況對全量校正任務進行限速設定(每秒讀取的資料行數和資料量),以緩解資料庫的壓力。
說明參數值為0時表示無限制,當每秒讀取的最大數據行數rps和每秒讀取最大的Byte數byte/s均為0時,表示不限速。
每秒讀取最大的Byte數byte/s
設定校正對象。
您可以在已選擇對象框中勾選不需要進行資料校正的對象,然後單擊進行移除。
說明DTS預設已將待同步或遷移的對象移動至已選擇對象框。
配置校正警示。
根據業務需求,選擇配置如下表所示參數。
參數
說明
全量校正警示
不設定:不設定警示。
設定:設定警示,您還需要選擇和配置警示規則。警示規則如下:
當全量校正任務失敗時觸發警示。
設定資料不一致的閾值,當全量校正任務不一致資料大於等於設定的閾值時觸發警示。
增量校正警示
不設定:不設定警示。
設定:設定警示,您還需要選擇和配置警示規則。警示規則如下:
當增量校正任務失敗時觸發警示。
設定資料不一致的周期數、統計周期和不一致數量閾值,當增量校正任務累計在設定的若干個周期,資料不一致記錄量均大於等於設定的閾值時觸發警示。
設定資料延遲的周期數、統計周期和延遲時間閾值,當增量校正任務累計在設定的若干個周期,延遲均大於等於設定的閾值時觸發警示。
重要若您設定了校正警示,且需要在校正任務觸發警示時接收警示通知,還需要前往CloudMonitor平台進行警示訊息訂閱設定。更多資訊,請參見通過CloudMonitor平台為DTS任務設定警示規則。
根據提示及相關配置文檔,完成後續配置。
相關API
API介面 | 說明 |
配置資料校正任務。 |
常見問題
使用映射功能修改的庫、表、列名,是否會被校正為不一致資料?
資料校正已適配資料庫和表的映射功能。若使用映射功能修改了庫、表、列名,其中僅列名會被校正為不一致資料,資料庫名和表名則不會。
為什麼在DTS執行個體中無法勾選校正方式?
可能是當前執行個體不支援相應的資料校正功能,或者在配置任務對象及高級配置階段未選擇相應的同步類型或遷移類型。
使用過濾條件功能過濾的資料,是否會被校正為不一致資料?
全量校正:否,全量資料校正已適配過濾條件功能。
增量校正:否,增量資料校正已適配過濾條件功能(源庫資料庫類型為MongoDB的增量任務不支援過濾條件功能)。