全部產品
Search
文件中心

Data Transmission Service:常見報錯

更新時間:Sep 09, 2025

本文介紹配置任務和任務運行時系統返回的報錯資訊(如重試資訊或錯誤碼)以及解決方案。

說明

本文以Regex((.*)?)的形式表示報錯資訊中的變數。

報錯概覽

Data Transmission Service常見報錯的類型有如下種:

配置任務時常見的報錯

DTS.Msg.LXCreateOrderError

報錯情境:購買DTS執行個體時建立訂單不成功。

可能原因:未將UID添加至白名單,無法購買跨境同步執行個體。

解決方案:開通跨境同步許可權後重新購買,詳情請參見申請跨境資料同步許可權

DTS.Msg.InvalidParameter.KafkaHostInvalid

報錯情境:配置目標庫執行個體的接入方式為專線/VPN網關/智能網關的Kafka同步或遷移任務。

可能原因:IP地址一欄輸入為網域名稱形式。

解決方案:IP地址一欄目前僅支援IP地址形式,請重新輸入正確的內網IP地址。

DTS.Msg.InvalidParameter.KafkaBrokerInvalid

報錯情境:配置目標庫為ECS自建的Kafka任務。

可能原因:不支援Kafka節點配置為網域名稱形式。

解決方案:請正確配置Kafka節點。配置形式如下:

listeners= 協議://內網IP:連接埠
advertised_listeners= 協議://內網IP:連接埠

DTS.Msg.OperationDenied.JobStatusModifying

報錯情境:使用API調用ModifyDtsJob介面修改同步任務。

可能原因:當前任務所屬執行個體處於修改同步對象階段。

解決方案:等待同步對象修改完成,且該任務所屬執行個體的狀態為運行中後再重試。

DTS.Msg.InvalidParameter.AliyunUidFormat

報錯情境:跨帳號同步時,單擊展示資料庫執行個體。

可能原因:來源資料庫執行個體所屬的阿里雲使用者ID填寫不規範。

解決方案:填寫規範的阿里雲帳號。

DTS.Msg.DuplicateAccount.RDSSqlServer

報錯情境:配置源或目標庫為SQL Server資料庫的任務時。

可能原因:執行個體已配置過DTS任務或為複製執行個體。

解決方案:請聯絡阿里雲技術支援人員處理。

DTS.Msg.SrcLink.InternetAddressNotFound

報錯情境:配置跨地區遷移任務。

可能原因:來源資料庫執行個體未開通公網地址。

解決方案:請為來源資料庫執行個體開通公網地址或使用同步任務。

DTS.Msg.UpdateJob.OperationDenied.InitStatus

報錯情境:重複配置任務。

可能原因:重複配置已啟動的同步任務。

解決方案:請重設任務或修改同步對象。

警告

重設任務會導致已配置的任務資料被清除,請謹慎操作。

DTS.Msg.Throttling.User

報錯情境:使用任何功能都可能報此錯誤。

可能原因:當前介面請求次數已經達到閾值。

解決方案:請在15s~30s後重新發起請求。

DTS.Msg.LXCreateOrder.NotFoundPricePlan

報錯情境:購買DTS執行個體時,建立訂單不成功。

可能原因:調用API時填寫的購買參數錯誤或暫不支援購買此類型執行個體。

解決方案:請檢查填寫的參數資訊是否正確,然後重試。

DTS.Msg.LXPayOrder.InsufficientBalance

報錯情境:購買DTS執行個體時,支付訂單不成功。

可能原因:賬戶餘額不足,無法完成支付。

解決方案:請儲值後重試。

DTS.Msg.CheckStatus.InvalidInitStatus

報錯情境:使用修改同步對象功能。

可能原因:同步任務尚未配置。

解決方案:請在修改任務前完成配置任務。

DTS.Msg.DRDSInvokeFail.DatabaseAuthorizationFailed

報錯情境:配置PolarDB-X雲原生分散式資料庫(原DRDS)的同步任務時報錯。報錯資訊類似於以下形式:

can not getTableTopology (drds****,ib_ibos****)
Could not connect to address=(host=100.100.XX.XX)(port=****)(type=master) : (conn=****) [10.0.1.1:3306]
Access denied for user 'ib_ibos****'@'100.104.XX.XX' to database 'ib_ibos****')

可能原因:輸入的資料庫帳號缺少某個庫的許可權。

解決方案:手動添加或修改庫許可權。步驟如下:

  1. 登入PolarDB-X控制台

  2. 選擇左側導覽列中的執行個體列表,單擊您所建立執行個體的執行個體名稱

  3. 進入執行個體管理頁面,選擇配置與管理 > 帳號管理

  4. 選擇建立的資料庫帳號,單擊操作列的修改許可權,在彈框中添加或修改庫許可權。

  5. 單擊確定1

DTS.Msg.DescribeColumns.TimeOut

報錯情境:擷取來源資料庫列資訊失敗,常見於目標庫為AnalyticDB for MySQL的任務。

可能原因:源庫列過多或源庫讀取速度過慢,導致擷取源庫Schema逾時。

解決方案:

  • 使用API進行配置。

  • 檢驗源庫的讀取速度。

DTS.Msg.DescribeStruct.TimeOut

報錯情境:測試連結通過後擷取源庫庫表。

可能原因:源庫過多、源庫表過多或者源庫讀取速度過慢,導致擷取源庫Schema逾時。

解決方案:

  • 配置源庫對象時以庫為粒度,不擷取詳細的表資訊。

  • 使用API進行配置。

  • 檢驗源庫的讀取速度。

DTS.Msg.DRDSErrExecuteOnMySQL.ClientVersionTooLow

報錯情境:配置源庫為PolarDB-X雲原生分散式資料庫(原DRDS)的任務。

可能原因:PolarDB-X雲原生分散式資料庫用戶端版本過低。

解決方案:升級PolarDB-X雲原生分散式資料庫用戶端。

DTS.Msg.DbTypeNotSupport.OnlyReadRDS

報錯情境:配置源庫為PolarDB-X雲原生分散式資料庫(原DRDS)的任務。

可能原因:來源資料庫執行個體為執行個體類型唯讀執行個體的PolarDB-X執行個體,暫不支援該PolarDB-X執行個體。

解決方案:來源資料庫更換為執行個體類型主執行個體的PolarDB-X執行個體。

DTS.Msg.DbTypeNotSupport.PolarDBRDS

報錯情境:配置源庫為PolarDB-X雲原生分散式資料庫(原DRDS)的任務。

可能原因:來源資料庫執行個體為儲存類型POLARDB的PolarDB-X執行個體,暫不支援該PolarDB-X執行個體。

解決方案:來源資料庫更換為儲存類型RDS MySQL的PolarDB-X執行個體。

DTS.Msg.OperationDenied.NotPurchased

報錯情境:調用API介面啟動任務失敗。

可能原因:啟動尚未購買的任務。

解決方案:購買任務後再啟動。

DTS.Msg.CheckJobFailed.ServerUnAvailable

報錯情境:配置任務過程中。

可能原因:由於系統無法串連任務啟動並執行伺服器節點,導致無法檢測伺服器節點到源或目標庫的網路是否通暢。

解決方案:請聯絡阿里雲技術支援人員處理。

DTS.Msg.StopJobFailed.ServerUnAvailable

報錯情境:配置任務過程中。

可能原因:邏輯上需要暫停任務時,系統無法串連任務啟動並執行伺服器節點。

解決方案:請聯絡阿里雲技術支援人員處理。

DTS.Msg.SQLExecuteError.JDBC4CommunicationsException

報錯情境:測試連結通過後擷取源庫庫表。

可能原因:通訊鏈路故障,JDBC驅動程式資料包成功發送到來源資料庫伺服器,但未收到來自來源資料庫的資料包。

解決方案:

DTS.Msg.SQLExecuteError.ConnectionRefused

報錯情境:測試連結通過後擷取源庫庫表。

可能原因:擷取來源資料庫連結被拒絕。

解決方案:

  • 檢查監聽器(Listener Process)是否正常運行,配置是否正確。

  • 檢查負載是否過高。

DTS.Msg.GetKafkaMetaInfo.NoAvailableBroker

報錯情境

可能原因

解決方案

配置目標庫Kafka執行個體的版本為1.0及以上。

資料庫帳號或密碼錯誤。

請正確填寫資料庫帳號和密碼資訊。若Kafka執行個體未開啟驗證,則無需填寫資料庫帳號和密碼。

無法從Kafka服務端擷取MetaInfo。

  • 檢查服務端bootstrap.servers參數是否設定正確。

  • 檢查目標庫資訊的Kafka版本是否選擇正確。

  • 檢查網路是否通暢。

DTS.Msg.GetMongoDbShardInfo.EmptyInstances

報錯情境:配置源庫或目標庫為分區複本集的MongoDB資料庫的任務。

可能原因:無法擷取分區資訊。

解決方案:檢查配置參數,確認資料庫確實為分區MongoDB。

DTS.Msg.GetMongoDbShardInfo.NoShardAddress

報錯情境:配置源庫或目標庫為分區複本集的MongoDB資料庫的任務。

可能原因:無法擷取分區資訊。

解決方案:檢查配置參數,確認資料庫確實為分區MongoDB,並且已參考申請Shard串連地址開通Shard地址。

DTS.Msg.SuspendDenied.JobStatusModifying

報錯情境:暫停任務或者大量暫停任務。

可能原因:為避免資料不一致,當任務處於修改同步對象中時,無法暫停任務。

解決方案:

  • 單個暫停任務:等待修改同步對象狀態結束。

  • 大量暫停任務:將處於修改同步對象狀態中的任務去掉,或等待修改同步對象狀態結束。

DTS.Msg.ModifyDenied.JobStatusNotRunning

報錯情境:修改暫停中任務的同步對象。

可能原因:為避免資料不一致,當任務的運行狀態運行中時,才可以修改同步對象。

解決方案:啟動任務,等待任務正常運行再修改同步對象。

說明

若任務延遲大於10分鐘,請勿進行修改同步對象操作。

DTS.Msg.LXPayOrder.AmountLimitExceeded

報錯情境:配置任務後支付訂單失敗。

可能原因:有POC標籤的帳號的訂單支付金額只能是0,訂單的金額大於0時無法支付。

解決方案:

  • 支付時使用代金券,使支付金額為0。

  • 使用其他帳號支付。

說明

支付失敗的訂單不可以繼續支付,需要在費用與成本取消。

DTS.Msg.LXPayOrder.AccountBookNotExists

報錯情境:配置任務後支付訂單失敗。

可能原因:未開通阿里雲資金賬戶或者賬戶餘額不足。

解決方案:給賬戶儲值以開通阿里雲資金賬戶,並確認餘額充足,然後重新購買。

說明

支付失敗的訂單不可以繼續支付,需要在費用與成本取消。

DTS.Msg.ConfigJob.NoneSelectedStep

報錯情境:使用API配置任務時。

可能原因:未配置任務類型,即傳入欄位StructureInitializationDataInitializationDataSynchronization的值均為false

解決方案:傳入正確的參數值以配置任務類型。

DTS.Msg.ConfigJob.InvalidDbListFormat

報錯情境:使用API配置任務時。

可能原因:傳入的DbList欄位不是標準的JSON字串。

解決方案:傳入正確形式的字串參數。

DTS.Msg.ConfigJob.InvalidReserveFormat

報錯情境:使用API配置任務時。

可能原因:傳入的Reserve欄位不是標準的JSON字串。

解決方案:傳入正確形式的字串參數。

DTS.Msg.DistributedDatabaseNodesError

報錯情境:以先購買再配置的方式,購買源庫為分散式資料庫的同步執行個體時。

可能原因:購買執行個體的來源資料庫參數分散式資料庫節點數量與實際數量不符。

解決方案:購買執行個體時選擇與實際相符的分散式資料庫節點數量

DTS.Msg.LXQueryOrder.NotFoundNormalOrder

報錯情境

可能原因

解決方案

對執行個體進行升降配或者轉換支付方式時。

操作的執行個體為已完成但未釋放短期執行個體。

釋放已完成的短期執行個體。

操作的執行個體已經釋放但仍然在控制台上顯示。

請聯絡阿里雲技術支援人員處理。

DTS.Msg.GetSSLInfo.NoSSLConn

報錯情境:配置任務時勾選了SSL安全連線

可能原因:當前資料庫執行個體未開通SSL串連,無SSL地址。

解決方案:給資料庫執行個體開通SSL或者選擇非加密串連

DTS.Msg.ModifyDynamicConfig.InvalidStatus

報錯情境:修改已購買的同步或遷移執行個體的效能時。

可能原因:當前任務狀態不是運行中

解決方案:請確保任務在運行中再進行操作。

DTS.Msg.TransferInstanceClass.NoPermission

報錯情境:使用者對執行個體進行降配操作時。

可能原因:執行降配操作的帳號許可權不足。

解決方案:需添加降配操作的許可權,執行操作的帳號及所屬主帳號均需要添加許可權。請聯絡阿里雲技術支援人員處理。

DTS.Msg.OperationDenied.ConsumerGroupOutOfUsage

報錯情境:為訂閱執行個體建立消費組時。

可能原因:當前訂閱執行個體的消費組已經超過20個。

解決方案:請根據業務需求刪除不使用的消費組後重試。

DTS.Msg.GrantAccessAlreadyExists

報錯情境:配置DTS任務過程中。

可能原因:偶發性錯誤。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DTS.Msg.DbListIsEmpty

報錯情境

可能原因

解決方案

使用API配置任務時。

傳入的DbList欄位為null或傳入的內容等效於null。

參考遷移、同步或訂閱對象說明傳入正確的DbList欄位。

配置同步任務時。

配置同步任務時,未將資料庫或表移動至已選擇對象,只將預存程序、視圖或函數等其他對象移動至了已選擇對象

說明

同步任務待同步的對象必須包含資料庫或表。

請使用資料移轉功能,配置相應的遷移任務(遷移類型需勾選庫表結構遷移)。

DTS.Msg.GetRedisNodes.NotCluster

報錯情境:配置源或目標執行個體為Redis的任務時。

可能原因:選擇的執行個體模式與執行個體不符。

解決方案:選擇與執行個體相符的執行個體模式

DTS.Msg.InvalidDestinationEndPointRegion

報錯情境:使用API配置任務時。

可能原因:傳入的目標執行個體地區錯誤或不支援。

解決方案:參考支援的地區列表Region ID列傳入正確的地區資訊。

DTS.Msg.InvalidSourceEndPointRegion

報錯情境:使用API配置任務時。

可能原因:傳入的源執行個體地區錯誤或不支援。

解決方案:參考支援的地區列表

DTS.Msg.AdminAccountExists

報錯情境:配置DTS任務過程中。

可能原因:DTS會在部分類型的源端資料庫中建立一個固定的高許可權帳號,若您的資料庫已經存在了同名的帳號則會報錯。

解決方案:請聯絡阿里雲技術支援人員處理。

DTS.Msg.NotSupportModify

報錯情境:使用ModifyDtsJob介面修改任務時。

可能原因:傳入的DtsInstanceId參數為遷移執行個體的ID。

解決方案:當前遷移任務僅支援在控制台修改ETL配置,若您需要修改遷移任務的其他配置,您可以建立新任務。

DTS.Msg.PrePayNotAllowDelete

報錯情境:使用API釋放DTS任務時。

可能原因:訂用帳戶(預付費)任務不支援直接釋放。

解決方案:訂用帳戶(預付費)任務暫不支援釋放

DTS.Msg.Forbidden.AliyunUIDNotFound

報錯情境:使用DTS控制台配置任務時,常見於配置跨帳號任務或者使用RAM使用者(子帳號)登入。

可能原因:登入DTS控制台的阿里雲帳號(主帳號)資訊未初始化。

  • 配置跨帳號任務時,源端資料庫所屬的阿里雲帳號(主帳號)從未登入過DTS控制台。

  • 使用子帳號登入時,RAM使用者(子帳號)所屬的阿里雲帳號(主帳號)從未登入過DTS控制台。

解決方案:查看彈窗報錯資訊中的UID,使用主帳號登入DTS控制台後重試。

DTS.Msg.RamPermissionDenied

報錯情境:使用RAM使用者(子帳號)登入DTS控制台進行操作時。

可能原因:RAM使用者(子帳號)許可權不足。

解決方案:請參考通過系統策略授權子帳號管理DTS資料轉送自訂權限原則參考,為RAM使用者(子帳號)授權後重試。

說明

建立自訂策略填入具體權限原則資訊時,需要使用錯誤提示資訊中的Action(介面操作名稱)和ResourceId(DTS執行個體ID)。

錯誤提示

DTS.Msg.EcsJoinSecurityGroupLimitExceeded

報錯情境:配置資料來源為ECS自建資料庫的任務時。

可能原因:ECS執行個體的安全性群組超過五個。

解決方案:請根據業務需求並參考移出安全性群組,移出ECS執行個體中多餘的安全性群組後重試。

說明

若由於業務需求安全性群組均無法移出,請整合ECS執行個體的安全性群組,使安全性群組數量不超過五個。

DTS.Msg.UpgradeTrialTimesLimit

報錯情境:體驗RPS上限升級功能時。

可能原因:當前帳號體驗RPS上限升級功能的次數已經超過了限制。每個帳號有3次體驗機會,每次體驗持續24小時。

解決方案:無。

DTS.Msg.HasRunningTrial

報錯情境:體驗RPS上限升級功能時。

可能原因:DTS執行個體已在體驗RPS上限升級功能中,不能重複體驗。

解決方案:無。

DTS.Msg.DtsInstanceHasNoLimit

報錯情境:體驗RPS上限升級功能時。

可能原因:DTS執行個體沒有RPS限制,不能體驗RPS上限升級功能。

解決方案:無。

DTS.Msg.UpgradeTrialInvalidJobStatus

報錯情境:體驗RPS上限升級功能時。

可能原因:DTS執行個體狀態不能體驗RPS上限升級功能,僅運行中已暫停或失敗狀態時支援體驗此功能。

解決方案:無。

DTS.Msg.InvalidMigrationJobId

報錯情境:使用API配置任務時。

可能原因:傳入的任務ID不正確或者任務已經被刪除。

解決方案:傳入正確的參數後重試。

DTS.Msg.InvalidIpAddress

報錯情境:配置接入方式公網IP專線/VPN網關/智能網關雲企業網CEN的資料庫執行個體的DTS任務時。

可能原因:輸入的IP地址格式錯誤,導致無法解析。

解決方案:輸入正確的IP地址後重試。

DTS.Msg.PauseDenied.JobStatusNotRunning

報錯情境:暫停任務時。

可能原因:需要暫停任務狀態不是運行中(如失敗、已暫停或者初始化中)。

解決方案:修複或等待任務狀態為運行中時,再暫停任務。

DTS.Msg.CheckpointOutOfAdjustableRange

報錯情境:修改執行個體增量寫入階段的位點時。

可能原因:指定的位點不在可修改範圍內。

解決方案:在可修改的範圍內修改位點。

DTS.Msg.MaxRetryTime.Invalid

報錯情境:修改源庫、目標庫無法串連後的重試時間時。

可能原因:修改的值不在取值範圍內(10~1440分鐘)。

解決方案:在取值範圍內修改源庫、目標庫無法串連後的重試時間,建議設定為30分鐘以上。

DTS.Msg.CrossRegionJobTransferToCluster

報錯情境:DTS公用叢集(共用叢集)執行個體遷移到專屬叢集時。

可能原因:公用叢集(共用叢集)執行個體的源庫和目標庫地區不一致,暫不支援跨地區任務遷移到專屬叢集。

解決方案:無。

DTS.Msg.JobNotInClusterRegion

報錯情境:DTS公用叢集(共用叢集)執行個體遷移到專屬叢集時。

可能原因:公用叢集(共用叢集)執行個體所屬地區與專屬叢集的地區不一致,目前僅支援將公用叢集(共用叢集)任務遷移至同一地區的專屬叢集。

解決方案:無。

DTS.Msg.CallCloudProductApiError

報錯情境:配置DTS任務時。

可能原因:調用其他雲產品的OpenAPI時遇到問題。

解決方案:請根據報錯中的CloudProduct、ErrCode和ErrMsg等資訊,查看原因和解決方案。

DTS.Msg.MongoCommandError

報錯情境:配置源庫為MongoDB的任務時。

可能原因:執行MongoDB命令時遇到問題。

解決方案:請根據執行的命令和具體報錯資訊,在MongoDB官方文檔中查詢解決方案。

DTS.Msg.RedisCluster.NotSupportClassicNetworkEcs

報錯情境:使用API配置源或目標庫為Redis的任務時。

可能原因:DTS不支援傳統網路的ECS自建的叢集版Redis執行個體。

解決方案:無。

DTS.Msg.NotSupportRedisMinorVersion

報錯情境:使用API配置源或目標庫為Redis的任務時。

可能原因:DTS不支援當前小版本的Redis執行個體。

解決方案:請升級Redis執行個體小版本後重新設定任務。升級操作,請參見升級小版本

DTS.Msg.DtsInstanceNotExists

報錯情境:使用API查詢DTS執行個體詳情時。

可能原因:當前DTS執行個體不存在。

解決方案:無。

DTS.Msg.NotPurchaseDtsInstance

報錯情境:使用API修改DTS全量或增量速率時。

可能原因:當前DTS任務對應的執行個體沒有購買,無法調整速率。

解決方案:請購買DTS執行個體後再進行修改。

DTS.Msg.NotSupportJobType

報錯情境:使用API查詢效能監控資料時。

可能原因:當前類型的任務不支援查詢效能監控的資料。

解決方案:無。

DTS.Msg.MysqlCommandError

報錯情境:在源或目標庫執行MySQL命令時。

可能原因:執行MySQL命令時遇到問題。

解決方案:請根據執行的命令和具體報錯資訊,在MySQL官方文檔中查詢解決方案。

DTS.Msg.DynamicConfigError

報錯情境:調整任務速率時。

可能原因:網路波動導致調整任務速率失敗。

解決方案:請重新調整任務速率。

DTS.Msg.GetVpcError

報錯情境:配置任務過程中。

可能原因:DTS擷取VPC執行個體時遇到問題。

解決方案:請根據具體報錯資訊,在Virtual Private Cloud官方文檔中查詢解決方案。

DTS.Msg.ListResourceGroupsError

報錯情境:查詢任務詳情時。

可能原因:查詢資源群組遇到問題。

解決方案:請重新查詢。

DTS.Msg.SearchDtsJobLogError

報錯情境:查詢任務日誌資訊時。

可能原因:查詢的時間範圍過大。

解決方案:請縮小查詢的時間範圍,然後重新進行查詢。

DTS.Msg.GetDgInstanceError

報錯情境:配置任務過程中。

可能原因:DTS擷取DG執行個體時遇到問題。

解決方案:請根據具體報錯資訊,在資料庫網關DG官方文檔中查詢解決方案。

DTS.Msg.JobProgressNotExists

報錯情境:跳過全量遷移模組的表時。

可能原因:跳過表時遇到問題。

解決方案:請重新操作。

DTS.Msg.GetCenError

報錯情境:配置任務過程中。

可能原因:DTS擷取CEN執行個體時遇到問題。

解決方案:請根據具體報錯資訊,在雲企業網CEN官方文檔中查詢解決方案。

DTS.Msg.GetDgDatabaseError

報錯情境:配置源或目標端為資料庫網關DG接入的執行個體時。

可能原因:DTS查詢資料庫網關DG執行個體時遇到未知錯誤。

解決方案:請聯絡阿里雲技術支援人員處理。

DTS.Msg.SQLServerError

報錯情境:配置源或目標庫為SQL Server資料庫的任務時。

可能原因:執行SQL命令時遇到問題。

解決方案:請根據執行的命令和具體報錯資訊,在SQL Server官方文檔中查詢解決方案。

DTS.Msg.InvalidDbList

報錯情境:修改同步任務的同步對象時。

可能原因:傳入同步對象參數的格式不正確。

解決方案:請確保同步對象的參數正確,然後重新操作。

DTS.Msg.GetRdsNetInfoError

報錯情境:配置源或目標端為雲資料庫RDS執行個體時。

可能原因:DTS查詢RDS執行個體網路資訊時遇到未知錯誤。

解決方案:請聯絡阿里雲技術支援人員處理。

DTS.Msg.PolarDB.DBDescribeDBClusterAttribute

報錯情境:配置源或目標端為PolarDB執行個體(PolarDB MySQL引擎、PolarDB O引擎、PolarDB PostgreSQL引擎、PolarDB-X)時。

可能原因:DTS查詢PolarDB執行個體資訊時遇到未知錯誤。

解決方案:請聯絡阿里雲技術支援人員處理。

DTS.Msg.DgInstanceNotExists

報錯情境:配置源或目標端為資料庫網關DG接入的執行個體時。

可能原因:資料庫網關DG執行個體不存在。

解決方案:無。

DTS.Msg.MongoDB.DescribeDBInstanceAttribute

報錯情境:配置源或目標端為MongoDB執行個體時。

可能原因:DTS查詢MongoDB執行個體資訊時遇到未知錯誤。

解決方案:請聯絡阿里雲技術支援人員處理。

DTS.Msg.ClearConfigureContextError

報錯情境:修改同步任務的同步對象時。

可能原因:修改同步對象過程中遇到未知錯誤。

解決方案:請聯絡阿里雲技術支援人員處理。

DTS.Msg.ModifyCheckpoint.CurrentCheckpointIsEmpty

報錯情境:修改任務的位點時。

可能原因:傳入的新位點為空白。

解決方案:請檢查新位點的參數值,並在可修改的範圍內修改位點。

DTS.Msg.DbInstanceNotExists

報錯情境:配置DTS任務時。

可能原因:資料庫執行個體不存在。

解決方案:無。

DTS.Msg.NotSupportEsInstance

報錯情境:配置DTS任務時。

可能原因:由於DTS不支援當前Elasticsearch執行個體,導致查詢Elasticsearch執行個體網路資訊遇到未知錯誤。

解決方案:使用DTS支援的Elasticsearch執行個體配置任務。支援的版本,請參見同步方案概覽遷移方案概覽

DTS.Msg.AliyunDbsError

報錯情境:配置SQL Server物理協議遷移任務時。

可能原因:調用DBS介面遇到錯誤。

解決方案:請根據DBS介面錯誤資訊排查。

DTS.Msg.ScheduleJobError

報錯情境:啟動、暫停、停止任務時。

可能原因:系統暫時不可用。

解決方案:請稍後重試。

DTS.Msg.InvalidPort

報錯情境:配置DTS任務時。

可能原因:連接埠參數無效。

解決方案:請填入正確的連接埠參數值。

DTS.Msg.ModifyDtsJob.NoIncrementalWriteModule

報錯情境:修改同步對象時。

可能原因:當前任務不是同步任務。

解決方案:請檢查當前任務是否為同步任務,僅同步任務支援修改同步對象。

DTS.Msg.ModifyDtsJob.HasCanNotRestartIncrementalWriteModule

報錯情境:修改同步對象時。

可能原因:當前任務存在不能重啟的增量寫入模組。

解決方案:確保任務的增量寫入模組處於運行中、暫停或失敗狀態時,再修改同步對象。

DTS.Msg.ModifyDtsJob.HasNotSyncedIncrementalWriteModule

報錯情境:修改同步對象時。

可能原因:當前任務存在未啟動並執行增量寫入模組。

解決方案:等待任務的增量寫入模組運行後,再修改同步對象。

Abnormal.RamCheckUserRole

報錯情境:建立任務時。

可能原因:當前阿里雲帳號(主帳號)沒有為DTS預設角色(AliyunDTSDefaultRole)授權。

解決方案:請為DTS預設角色授權後重試,授權方法請參見授予DTS訪問雲資源的許可權

Forbidden.InstanceNotFound

報錯情境:配置DTS任務時。

可能原因:執行個體不存在。

解決方案:請確保執行個體ID正確,然後重試。

InvalidJobId

報錯情境:配置DTS任務時。

可能原因:DTS任務不存在。

解決方案:請確保DTS任務ID正確,然後重試。

InternalError

報錯情境:配置DTS任務過程中。

可能原因:DTS遇到內部錯誤。

解決方案:請聯絡阿里雲技術支援人員處理。

RdsGetInstanceAttr.InvokeFail

報錯情境:配置DTS任務過程中。

可能原因:DTS查詢RDS執行個體資訊時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

LXCreateOrder.InvokeFail

報錯情境:購買DTS執行個體時。

可能原因:偶發性錯誤。

解決方案:請聯絡阿里雲技術支援人員處理。

DbProductInvokeFail

報錯情境:配置DTS任務過程中。

可能原因:調用其他阿里雲產品的OpenAPI時遇到問題。

解決方案:請根據其他阿里雲產品OpenAPI返回資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

InvalidParameter

報錯情境:使用API配置任務時。

可能原因:傳入的參數不符合要求。

解決方案:請傳入正確的參數值。

DTS.Msg.CreateSubDistriubtedJobError

報錯情境:配置DTS任務過程中。

可能原因:建立分布式任務遇到問題。

解決方案:請聯絡阿里雲技術支援人員處理。

NotFound.UserDBInstanceList

報錯情境:配置DTS任務過程中。

可能原因:查詢資料庫執行個體遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

AssumeRoleFail

報錯情境:配置跨阿里雲帳號的任務時。

可能原因:任務配置的跨阿里雲帳號角色名稱(即RAM角色名稱)有誤。

解決方案:請檢查跨阿里雲帳號角色名稱是否填寫正確。更多資訊,請參見跨阿里雲帳號同步RDS MySQL執行個體

OperationDenied.JobStatus

報錯情境:配置DTS任務過程中。

可能原因:當前任務狀態不允許執行該操作。

解決方案:請確保當前任務狀態符合操作的要求,然後重新操作。

NetWorkItemNotFound

報錯情境:配置DTS任務過程中。

可能原因:資料庫執行個體不存在指定的網路類型。

解決方案:請確保配置的資料庫網路類型,與資料庫執行個體的網路類型相符。

EcsJoinSecurityGroup.InvokeFail

報錯情境:配置DTS任務時。

可能原因:ECS執行個體加入安全性群組遇到問題。

解決方案:請根據具體報錯資訊進行排查。更多資訊,請參見添加安全性群組規則中的《常見問題》

SQLExecuteError

報錯情境:配置DTS任務時。

可能原因:SQL執行異常。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

NoPermission

報錯情境:使用RAM使用者(子帳號)配置任務時。

可能原因:RAM使用者(子帳號)許可權不足。

解決方案:請參考通過系統策略授權子帳號管理DTS資料轉送自訂權限原則參考,為RAM使用者(子帳號)授權後重試。

PolarDbGetNetworkItems.InvokeFail

報錯情境:配置源或目標端為PolarDB執行個體(PolarDB MySQL引擎、PolarDB O引擎、PolarDB PostgreSQL引擎、PolarDB-X)時。

可能原因:DTS查詢PolarDB執行個體資訊時遇到未知錯誤。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

InvalidRpsValue

報錯情境:調整任務速率時。

可能原因:配置的RPS值不符合要求。

解決方案:請根據報錯資訊的提示,使用正確的RPS值重試。

RdsInvokeFail

報錯情境:配置DTS任務過程中。

可能原因:調用RDS的OpenAPI時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

InvalidTaskStatus

報錯情境:修改同步對象時。

可能原因:當前任務存在未啟動並執行增量寫入模組。

解決方案:等待任務的增量寫入模組運行後,再修改同步對象。

PolarDbGetWhiteNames.InvokeFail

報錯情境:配置源或目標端為PolarDB執行個體(PolarDB MySQL引擎、PolarDB O引擎、PolarDB PostgreSQL引擎、PolarDB-X)時。

可能原因:擷取PolarDB執行個體白名單資訊時遇到未知錯誤。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

ADB30GetNetworkItems.InvokeFail

報錯情境:配置目標端為AnalyticDB for MySQL 3.0執行個體的任務時。

可能原因:擷取AnalyticDB for MySQL 3.0執行個體網路資訊時遇到未知錯誤。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

QueryInstanceConnection

報錯情境:配置DTS任務時。

可能原因:擷取資料庫執行個體網路資訊失敗。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RdsGetInstanceList.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取RDS執行個體列表時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RdsGetWhiteNames.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取RDS執行個體白名單時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

InvalidParameter.TagValue

報錯情境:建立標籤時。

可能原因:標籤的值不符合要求。

解決方案:請正確設定標籤的值,然後重新操作。

RamPermissionCheckFailed

報錯情境:配置DTS任務時。

可能原因:DTS檢查RAM使用者(子帳號)許可權遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RdsModifyWhiteName.InvokeFail

報錯情境:配置DTS任務時。

可能原因:修改RDS執行個體白名單時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DmsInvokeFail

報錯情境:配置DTS任務時。

可能原因:調用DMS的OpenAPI時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

InvalidParameter.DStoreDataRange

報錯情境:修改任務的位點時。

可能原因:指定的位點不在可修改範圍內。

解決方案:請根據具體報錯資訊,在可修改的範圍內修改位點。

InvalidStepId

報錯情境:配置DTS任務時。

可能原因:任務配置的步驟不存在。

解決方案:請確保配置的步驟ID正確,然後重試。

IllegalJdbcUrl

報錯情境:配置DTS任務時。

可能原因:資料庫執行個體的JDBC串連地址資訊無效。

解決方案:使用正確且有效JDBC串連地址配置任務。

InvalidRegion.NotFound

報錯情境:配置DTS任務時。

可能原因:配置的地區不存在。

解決方案:請使用正確的地區資訊配置任務。

MissingParameter

報錯情境:配置DTS任務時。

可能原因:請求資訊中缺少參數。

解決方案:請確保請求參數完整且正確,然後重試。

AliyunProductInvokeFail

報錯情境:配置DTS任務時。

可能原因:調用其他雲產品的OpenAPI時遇到問題。

解決方案:請根據報錯中的CloudProduct、ErrCode和ErrMsg等資訊,查看原因和解決方案。

DTS.Msg.OperationDenied.JobStatus

報錯情境:配置DTS任務時。

可能原因:當前任務狀態不允許執行該操作。

解決方案:請在當前任務狀態符合要求時重試。

OperationDenied.DBInstanceStatus

報錯情境:配置DTS任務時。

可能原因:任務配置的RDS執行個體,當前的運行狀態不是運行中

解決方案:請確保該RDS執行個體的運行狀態運行中,然後重試。

InvalidInstanceId

報錯情境:配置DTS任務時。

可能原因:任務配置的資料庫執行個體不存在。

解決方案:請確保傳入正確的資料庫執行個體ID,然後重試。

InvalidStepCode.NotAllowed

報錯情境:暫停增量資料擷取模組時。

可能原因:增量資料擷取模組不支援暫停。

解決方案:無。

InvalidJobType.NotToWay

報錯情境:調轉雙向同步任務方向時。

可能原因:當前類型的任務不支援調轉任務方向。

解決方案:無。

InvalidJobType.NotSupport

報錯情境:調轉雙向同步任務方向時。

可能原因:當前類型的任務不支援調轉任務方向。

解決方案:無。

InvalidJobStatus

報錯情境:調轉雙向同步任務方向時。

可能原因:目前狀態的任務不支援調轉任務方向。

解決方案:請確保正向和反向同步任務的運行狀態運行中已暫停,然後重試。

HbaseueNetWorkItemNotFound

報錯情境:配置DTS任務時。

可能原因:資料庫執行個體不存在指定的網路類型。

解決方案:請確保配置的資料庫網路類型,與資料庫執行個體的網路類型相符。

InvalidSslConfig

報錯情境:配置DTS任務時。

可能原因:儲存SSL TrustStore失敗。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

VpcInvokeFail

報錯情境:配置DTS任務時。

可能原因:DTS串連資料庫執行個體時遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

QueryInstanceAttr

報錯情境:配置DTS任務時。

可能原因:擷取資料庫執行個體資訊失敗。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

QueryInstanceWhiteList

報錯情境:配置DTS任務時。

可能原因:查詢資料庫執行個體白名單失敗。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

HbaseueModifyInstanceWhiteList

報錯情境:配置DTS任務時。

可能原因:查詢資料庫執行個體白名單失敗。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

CreateAccountFail

報錯情境:配置DTS任務時。

可能原因:DTS建立資料庫帳號失敗。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

ModifyAccountFail

報錯情境:配置DTS任務時。

可能原因:資料庫帳號授權失敗。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DTS.Msg.ModifyDbListFail

報錯情境:修改同步任務的同步對象時。

可能原因:修改同步對象時遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DropAccountFail

報錯情境:配置DTS任務時。

可能原因:刪除資料庫帳號失敗。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

QueryAccountFail

報錯情境:配置DTS任務時。

可能原因:查詢資料庫帳號失敗。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

AccountExists

報錯情境:配置DTS任務時。

可能原因:資料庫帳號已經存在。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisInvokeFail

報錯情境:配置DTS任務時。

可能原因:調用Redis的OpenAPI時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisError

報錯情境:配置DTS任務時。

可能原因:串連Redis執行個體過程中遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DRDSInvokeFail

報錯情境:配置DTS任務時。

可能原因:串連PolarDB-X 1.0(原DRDS)資料庫執行個體過程中遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DTS.Msg.InvalidDrdsTable

報錯情境:配置DTS任務時。

可能原因:擷取PolarDB-X 1.0(原DRDS)表拓撲資訊遇到問題。

解決方案:請確保報錯資訊中的表拓撲資訊正確,然後重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DTS.Msg.MissingUserName

報錯情境:配置DTS任務時。

可能原因:校正MaxCompute(原ODPS)執行個體的主帳號AccessKeyId遇到問題。

解決方案:請確保主帳號AccessKeyId正確,然後重試。

DTS.Msg.MissingPassword

報錯情境:配置DTS任務時。

可能原因:校正MaxCompute(原ODPS)執行個體的主帳號AccessKeySecret遇到問題。

解決方案:請確保主帳號AccessKeySecret正確,然後重試。

PolarDbInvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取資料庫執行個體資訊時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

GpdbInvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取資料庫執行個體資訊時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsInvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取資料庫執行個體資訊時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

AdsV3InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取資料庫執行個體資訊時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DTS.Msg.InvalidDbListError

報錯情境:配置DTS任務時。

可能原因:校正同步對象時遇到問題。

解決方案:請確保同步對象配置正確,然後重試。

ADB30GetWhiteNames.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取AnalyticDB for MySQL 3.0執行個體的白名單資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

ADB30ModifyWhiteName.InvokeFail

報錯情境:配置DTS任務時。

可能原因:修改AnalyticDB for MySQL 3.0執行個體的白名單遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

ADB30GetInstanceList.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取AnalyticDB for MySQL 3.0執行個體列表遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

ADB30GetDbClusterAttr.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取AnalyticDB for MySQL 3.0執行個體的叢集資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DescribeResourceUsage.InvokeFail

報錯情境:配置DTS任務時。

可能原因:查詢RDS執行個體資源使用資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DescribeDatabases.InvokeFail

報錯情境:配置DTS任務時。

可能原因:查詢RDS執行個體資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RdsGetInstanceConnection.InvokeFail

報錯情境:配置DTS任務時。

可能原因:查詢RDS執行個體資料庫連接資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RdsCreateUserAccount.InvokeFail

報錯情境:配置DTS任務時。

可能原因:建立RDS執行個體帳號遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RdsGetNetworkItems.InvokeFail

報錯情境:配置DTS任務時。

可能原因:查詢RDS執行個體資料庫連接資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

HbaseueGetNetworkItems.InvokeFail

報錯情境:配置DTS任務時。

可能原因:查詢HBase執行個體資料庫連接資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

GetNetworkItems.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取資料庫連接資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RdsGetRegions.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取RDS執行個體地區資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RdsCreateMigrateTask.InvokeFail

報錯情境:配置DTS任務時。

可能原因:建立源或目標為RDS執行個體的遷移任務遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RdsDescribeMigrateTaskById.InvokeFail

報錯情境:配置DTS任務時。

可能原因:查詢源或目標為RDS執行個體的遷移任務遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

MongoDbGetWhiteNames.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取MongoDB執行個體白名單資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

MongoDbGetInstanceList.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取MongoDB執行個體列表遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

MongoDbGetInstanceConnection.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取MongoDB執行個體資料庫連接資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

MongoDbGetShardingMongoConnection.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取MongoDB執行個體Sharding節點串連資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

MongoDbModifyWhiteNames.InvokeFail

報錯情境:配置DTS任務時。

可能原因:修改MongoDB執行個體白名單資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

MongoDbGetInstanceAttr.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取MongoDB執行個體資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

MongoDbGetShardingMongoGidInvokeFail.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取MongoDB執行個體Sharding節點GID資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

PolarDbGetInstanceList.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取PolarDB執行個體列表遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

PolarDbGetInstanceConnection.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取PolarDB執行個體串連資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

PolarDbModifyWhiteNames.InvokeFail

報錯情境:配置DTS任務時。

可能原因:修改PolarDB執行個體叢集白名單遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

PolarDbGetInstanceAttr.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取PolarDB執行個體資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisGetWhiteNames.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取Redis執行個體白名單資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisGetInstanceList.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取Redis執行個體列表遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisGetInstanceConnection.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取Redis執行個體串連地址遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisModifyWhiteNames.InvokeFail

報錯情境:配置DTS任務時。

可能原因:修改Redis執行個體白名單遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisGetInstanceAttr.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取Redis執行個體資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisGetNetworkItems.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取Redis執行個體串連地址遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisCreateAccount.InvokeFail

報錯情境:配置DTS任務時。

可能原因:建立Redis執行個體帳號遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RedisGetComputingType.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取Redis執行個體架構類型遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsGetWhiteNames.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取ECS執行個體白名單遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsGetInstanceList.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取ECS執行個體列表遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsGetMetricList.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取ECS執行個體Metric列表遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsGetInstanceConnection.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取ECS執行個體網路資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsModifySecurityGroup.InvokeFail

報錯情境:配置DTS任務時。

可能原因:修改ECS執行個體安全性群組遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsAuthSecurityGroup.InvokeFail

報錯情境:配置DTS任務時。

可能原因:調用ECS安全性群組遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsLeaveSecurityGroup.InvokeFail

報錯情境:配置DTS任務時。

可能原因:移除ECS執行個體安全性群組遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsGetInstanceAttr.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取ECS執行個體資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsGetSecurityGroupAttr.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取ECS執行個體安全性群組遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsDelSecurityGroup.InvokeFail

報錯情境:配置DTS任務時。

可能原因:刪除ECS安全性群組遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsRevokeSecurityGroup.InvokeFail

報錯情境:配置DTS任務時。

可能原因:刪除ECS安全性群組遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsGetNetworkItems.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取ECS執行個體安全性群組規則遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

EcsCreateAccount.InvokeFail

報錯情境:配置DTS任務時。

可能原因:建立ECS帳號遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

LindormGetNetworkItems.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取Lindorm執行個體資料庫連接資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

LindormGetVpcAddress.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取Lindorm執行個體資料庫連接資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

LindormGetInstanceAttr.InvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取Lindorm執行個體資訊遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

InvalidOperation.AdvanceAction

報錯情境:修改任務的位點時。

可能原因:當前任務沒有增量資料擷取模組,不支援修改位點。

解決方案:無。

TablestoreInvokeFail

報錯情境:配置DTS任務時。

可能原因:擷取資料庫執行個體資訊時遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

UnSupported

報錯情境:配置DTS任務時。

可能原因:當前任務不支援該操作。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

UnSupportedTaskType

報錯情境:配置DTS任務時。

可能原因:當前類型的任務不支援該操作。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

CheckJobCreateFail

報錯情境:配置DTS任務時。

可能原因:建立校正任務失敗。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

ConfigurationDtsJobFail

報錯情境:配置DTS任務時。

可能原因:建立源或目標資料庫執行個體為Db2 for i(AS/400)的任務失敗。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

AllSiteInnerApiSupportFail

報錯情境:配置DTS任務時。

可能原因:建立資料庫帳號遇到問題。

解決方案:請根據具體報錯資訊排查處理。若異常無法解決,請聯絡阿里雲技術支援人員處理。

Missing.TagKey

報錯情境:為DTS執行個體添加標籤時。

可能原因:標籤沒有設定標籤鍵。

解決方案:請正確設定標籤的鍵,然後重新操作。

MissingParameter.TagOrResourceId

報錯情境:使用API為DTS執行個體添加標籤時。

可能原因:傳入的參數中缺少執行個體ID、標籤的鍵或標籤的值。

解決方案:請確保傳入的參數完整且正確,然後重試。

InvalidParameter.ResourceType

報錯情境:使用API查詢或添加標籤時。

可能原因:資源類型(ResourceType)的參數值不正確。

解決方案:請將ResourceType的參數值修改為ALIYUN::DTS::INSTANCE,然後重試。

InvalidParameter.TagKey

報錯情境:使用API查詢或添加標籤時。

可能原因:標籤的鍵不符合要求。

解決方案:請正確設定標籤的鍵,然後重試。

InvalidResourceId.NotFound

報錯情境:使用API查詢或添加標籤時。

可能原因:DTS執行個體不存在。

解決方案:請確保DTS執行個體ID(ResourceId)正確,然後重試。

InvalidParameter.Tags

報錯情境:使用API查詢或添加標籤時。

可能原因:標籤的鍵或值不符合要求。

解決方案:請正確設定標籤的鍵和值,然後重試。

InvalidParameter.NextToken

報錯情境:使用API查詢或添加標籤時。

可能原因:解析標籤時遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

InvalidParameter.Category

報錯情境:使用API查詢所有標籤時。

可能原因:標籤類型(Category)的參數值不正確。

解決方案:請將Category的參數值修改為Custom(使用者添加的標籤鍵)或System(系統建立的標籤),然後重試。

NumberExceed.Tags

報錯情境:為DTS執行個體添加標籤時。

可能原因:大量新增的標籤的數量超過20。

說明

每個執行個體最多可以綁定20個標籤。

解決方案:請減少標籤的數量,然後重試。

NumberExceed.ResourceIds

報錯情境:為DTS執行個體添加標籤時。

可能原因:DTS執行個體的數量超過50。

說明

最多支援同時為50個執行個體綁定標籤。

解決方案:請減少執行個體個數,然後重試。

Duplicate.TagKey

報錯情境:為DTS執行個體添加標籤時。

可能原因:存在重複的標籤。

解決方案:

  • 方法一:修改標籤的鍵,然後重試。

  • 方法二:在業務允許的前提條件下,移除重複的標籤,然後重試。

QuotaExceed.TagsPerResource

報錯情境:為DTS執行個體添加標籤時。

可能原因:標籤的數量累計超過20。

說明

每個執行個體最多可以綁定20個標籤。

解決方案:請在業務允許的前提條件下,刪除不再使用的標籤,然後重試。

NoPermission.SystemTag

報錯情境:為DTS執行個體添加標籤時。

可能原因:查詢標籤時遇到問題。

解決方案:請聯絡阿里雲技術支援人員處理。

NoPermission.Operator

報錯情境:為DTS執行個體添加標籤時。

可能原因:查詢標籤時遇到問題。

解決方案:請聯絡阿里雲技術支援人員處理。

UnsupportedTaskRegion

報錯情境:配置專屬叢集任務時。

可能原因:專屬叢集不支援跨地區的任務。

解決方案:無。

UnsupportedDtsJob

報錯情境:配置專屬叢集任務時。

可能原因:當前任務不支援該操作。

解決方案:無。

UnsupportedDtsInstance

報錯情境:配置專屬叢集任務時。

可能原因:當前DTS執行個體不支援專屬叢集。

解決方案:無。

UnsupportedTransferType

報錯情境:配置專屬叢集任務時。

可能原因:DTS不支援跨專屬叢集的遷移任務。

解決方案:無。

DedicatedClusterReleased

報錯情境:配置專屬叢集任務時。

可能原因:當前專屬叢集已經釋放。

解決方案:無。

DedicatedClusterReleasing

報錯情境:配置專屬叢集任務時。

可能原因:當前專屬叢集正在釋放中。

解決方案:無。

OperationDenied.DedicatedClusterStatus

報錯情境:配置專屬叢集任務時。

可能原因:當前專屬叢集狀態不是運行中。

解決方案:無。

OperationDenied.DedicatedClusterUsedDu

報錯情境

可能原因

解決方案

配置專屬叢集任務時。

當前專屬叢集剩餘可用DU數不足。

調大專屬叢集超配比,然後重試。更多資訊,請參見設定DTS專屬叢集超配比

說明

超配比最大支援200%。

指定的專屬叢集不存在。

新購專屬叢集,然後重試。更多資訊,請參見建立DTS專屬叢集

DedicatedClusterAllocateDuFail

報錯情境:配置專屬叢集任務時。

可能原因:專屬叢集分配DU時遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

JobProgressNotFound

報錯情境:在全量遷移階段跳過表時。

可能原因:包含該表的全量遷移任務不存在。

解決方案:無。

LXBuyError

報錯情境:購買DTS執行個體時。

可能原因:購買執行個體遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

SourceIpIsNotAllowedToConnect

報錯情境:配置DTS任務時。

可能原因:校正源端公網IP遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DestIpIsNotAllowedToConnect

報錯情境:配置DTS任務時。

可能原因:校正目標端公網IP遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

MissingDtsInstanceId

報錯情境:配置DTS任務時。

可能原因:請求參數缺少DTS執行個體ID。

解決方案:請檢查請求入參是否正確

RgPreCheckFailed

報錯情境:配置DTS任務時。

可能原因:檢查資源群組遇到問題。

解決方案:請聯絡阿里雲技術支援人員處理。

RgOperationFailed

報錯情境:配置DTS任務時。

可能原因:檢查資源群組遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

RgRegionNotSupport

報錯情境:配置DTS任務時。

可能原因:檢查資源群組遇到問題。

解決方案:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

MissingDestinationEndpointPort

報錯情境:配置DTS任務時。

可能原因:請求資訊中缺少目標執行個體的連接埠。

解決方案:請確保請求參數完整且正確,然後重試。

MissingSourceEndpointPort

報錯情境:配置DTS任務時。

可能原因:請求資訊中缺少源執行個體的連接埠。

解決方案:請確保請求參數完整且正確,然後重試。

DTS.Msg.NotSupportSubscribeJob

報錯情境:在新版控制台修改訂閱任務時。

可能原因:該任務為舊版訂閱任務,而新版控制台不支援修改舊版訂閱任務。

解決方案:進入Data Management控制台的數據訂閱頁簽,在右下角的jiqiren中單擊返回舊版,返回至舊版資料轉送控制台修改舊版訂閱任務。

DTS.Msg.VpcSubnetIpExhaust

報錯情境:建立訂閱任務消費組時。

可能原因:任務配置的虛擬交換器的可用IP數不足。

解決方案:請確保任務配置的虛擬交換器的可用IP數充足,然後重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DTS.Msg.GetCenVpcError

報錯情境:配置源或目標執行個體的接入方式為雲企業網CEN的任務時。

可能原因:擷取CEN下的VPC列表遇到問題。

解決方案:請確保雲企業網執行個體ID正確,然後重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

DTS.Msg.InvalidMongoDBStatus

報錯情境:配置源或目標執行個體為MongoDB的任務時。

可能原因:當前MongoDB執行個體處於無效狀態。

解決方案:請檢查MongoDB執行個體的狀態,等待MongoDB執行個體正常運行後重試。

SQLException: Misconfigured master - master server_id is 0

報錯情境:配置任務時。

可能原因:來源資料庫server_id檢查失敗。

解決方案:請將server_id修改為大於1,且與其他資料庫的server_id不重複的整數,然後重試。更多資訊,請參見源庫server_id檢查

任務運行中常見的報錯

DTS-RETRY-ERR-0001:get table (.*)? detail info failed (.*)? Table (.*)? doesn't exist

可能原因:在配置遷移或者同步的配置過程中未選擇結構遷移或結構同步,且未在目標庫中建立相應結構的表,導致目標庫中不存在相應的表。

解決方案:

  • 方法一:如果是同步任務,可以使用修改同步對象功能將報錯的表從同步對象中移除,詳情請參見移除同步對象

  • 方法二:手動在目標庫建立與源庫相同結構的表,然後重新啟動任務。

報錯樣本:如下報錯資訊,表示目標庫中dts_order表不存在。您可以在目標庫根據源庫中的表資訊建立dts_order表,然後重新啟動任務。

replicate-mysql: DTS-70002: get table [dts_order] detail info failed.\ncause:\n\tMySQLSyntaxErrorException: 
Table 'dts_order' doesn't exist

DTS-RETRY-ERR-0002:get table (.*)? detail info failed (.*)? Table (.*)? does not exist

可能原因:源庫或目標庫部分表不存在。

解決辦法:請根據具體報錯任務類型、任務模組選擇解決方案。

  • 資料同步任務:

    • 增量寫入模組報錯,檢查目標庫中對應的表是否存在且表結構是否一致。若表不存在:

      1. 通過修改同步對象功能,將報錯資訊中的表從同步對象中移除。

      2. 將目標庫中報錯資訊表清空。

      3. 使用修改同步對象功能,將報錯資訊中的表加入到同步對象中。

      4. 恢複任務。

    • 全量遷移模組報錯,檢查源庫和目標庫中對應的表是否存在且表結構是否一致,若表不存在,需要重新設定任務。

  • 資料移轉任務:確保源庫和目標庫待遷移的表結構一致,然後重新設定任務。

報錯樣本:

replicate-mysql: DTS-70002: get table [ars_uat.immc_mc_cs_clue_order] detail info failed.\ncause:\n\tMySQLSyntaxErrorException: Table 'ars_uat.immc_mc_cs_clue_order' doesn't exist

DTS-RETRY-ERR-0003:get table (.*)? detail info failed (.*)? connect target failed (.*)? Access denied for user

可能原因:任務使用的目標庫資料庫帳號資訊,在任務運行中被修改,導致無法串連目標庫。例如在任務運行中修改帳號密碼、修改帳號許可權、刪除帳號等。

解決方案:

  • 方法一:在目標庫恢複任務使用帳號資訊。若帳號資訊恢複後任務已失敗,請重新啟動任務。

  • 方法二:使用許可權符合要求且密碼正確的帳號,重新設定任務。

報錯樣本:如下報錯資訊,表示root帳號無法串連目標庫。

replicate-mysql: DTS-70002: get table [db_yfq.czb_oil_station] detail info failed.\ncause:\n\tDBCommonException: 
replicate-mysql: DTS-71016: connect target failed (url: jdbc:mysql://121.36.XX.XX:XXXX?useSSL=false&useUnicode=true
&characterEncoding=utf8&rewriteBatchedStatements=true&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&
autoReconnect=false&failOverReadOnly=false&useLocalSessionState=true&transformedBitIsBoolean=FALSE&tinyInt1isBit=
FALSE&sessionVariables=sql_mode=''&allowLoadLocalInfile=true&allowPublicKeyRetrieval=true&socketTimeout=3600000&
connectTimeout=3600000)\n\tSQLException: Access denied for user 'root'@'8.131.XX.XX' (using password: YES)

DTS-RETRY-ERR-0004:get table (.*)? detail info failed (.*)? No worker nodes available in resource group

可能原因:DTS擷取表結構時,AnalyticDB for MySQL沒有可用的worker節點。

解決方案:排查AnalyticDB for MySQL資料庫是否可用。

報錯樣本:

id=34284****, jobId=cvft576n24l9****, value={"errMsg":"replicate-adb30: DTS-70002: get table [mgdevsys.mytable] 
detail info failed.\ncause:\n\tSQLException: [31003, 2022110109452317201617024803453049329] : No worker nodes 
available in resource group ","jobId":"cfal5qfd243d834","maxRetryTime":7200,"module":"writer","retryCount":2,
"retryTarget":"destDB","retryTime":132,"retrying":true}

DTS-RETRY-ERR-0006:Can not find column (.*)? in destination table

可能原因:目標端的表缺少列。

解決方案:
  • 方法一(推薦):在目標端的表增加缺失的列,然後啟動任務。
  • 方法二:
    重要 雙向同步任務、目標表有除DTS以外的資料寫入、目標端的表為多對一單向同步架構的目標表(包括一個任務的多張表映射到同一張表和多個任務的表映射到同一張表的情境)時不能使用此方法。
    1. 將報錯的表從同步對象移除,然後啟動任務。移除同步對象的方法,請參見移除同步對象
    2. 分情況採取操作:
      • 如果同步任務有勾選結構同步,在目標端刪除表。
      • 如果同步任務沒有勾選結構同步,在目標端刪除表,然後在目標端重新建立與源端結構一致的表。
    3. 重新把表加入到同步對象。添加同步對象的方法,請參見新增同步對象

報錯樣本:如下報錯資訊,表示目標庫的dts_user_authorization表中不存在wx_state列。

framework: DTS-30019: Can not find column \"wx_state\" in destination table \"dts_user_authorization\". 
Please add the column in the destination table.

後續建議:導致目標端缺少列有多種原因,其中一種原因是:同步鏈路不支援同步DDL,但在源端增加列。對於這種需求,請先在目標端增加列,然後在源端增加列,就不會導致同步任務失敗。

DTS-RETRY-ERR-0007:Failed to get offsets by times in (.*)? ms

可能原因1:網路波動等原因,導致當前資料寫入模組串連緩衝模組逾時。

解決方案1:重新啟動任務,並查看任務是否恢複正常。

可能原因2:任務延遲時間過久。

解決方案2:任務已無法恢複,您可以在任務所在執行個體的操作列選擇... > 重新設定任務,重新設定該任務。

報錯樣本:

Failed to get offsets by times in 60000 ms

DTS-RETRY-ERR-0008:Failed to seek oracle position

可能原因:日誌找不到,源端日誌可能被清理。

解決辦法:請重新設定任務。

報錯樣本:

dts-k-src: DTS-52110: OracleRecordExtractor Init Error: oracle-reader: DTS-52061: Failed to seek oracle position

DTS-RETRY-ERR-0010:execute statement failed (.*)? modify precision is not supported

可能原因:鏈路不支援該類型的DDL操作,從而導致DDL執行失敗。

解決辦法:

  • 非整庫同步:建議重新同步這張表(即先從同步對象中去掉,然後刪除目標庫的表,再把這張表加入到同步對象中)。DTS會重新進行包括Schema拉取的全量同步,這樣會跳過此類型的DDL操作。

  • 整庫同步:在AnalyticDB for MySQL中建立一張表,表名要不同於報錯的表,表結構需要和源表的表結構一致。通過INSERT INTO SELECT將源表中的資料寫入建立表中,刪除報錯的表,然後通過RENAME將新表更名為報錯的表名,重新啟動任務即可。

報錯樣本:

transaction-replicate: DTS-70004: execute statement failed: /* dts_id=dtsit911vn1255**** */alter table `billing`.`store_payroll_detail` modify column `epidemic_subsidy` DECIMAL(20, 5) comment '****'
cause:
    SQLException: [15018, 202210211956001921681171220345323****] modify precision is not supported, col=epidemic_subsidy, type decimal, old=21, new=20

DTS-RETRY-ERR-0011:seek timestamp for topic (.*)? with position (.*)? failed

可能原因1:任務暫停過久,重新啟動後DTS緩衝模組中已沒有相應位點的資料。

解決方案1:請先嘗試修改執行個體的位點,若異常無法解決,請根據實際情況選擇如下兩種解決方案中的一種。修改位點的方法,請參見修改同步或遷移執行個體的當前位點

  1. 查看源庫中用於增量資料解析的日誌(如Binlog或Redolog等)時間範圍是否包含該時間點。若包含,請嘗試在後台重新讀取資料;若不包含,請重新建立任務。

  2. 重新建立任務。

    重要

    請勿長時間暫停任務。任務暫停後,成功重新啟動的最大期限為7天;如果源庫的資料寫入量較大,此期限將會縮短。

可能原因2:任務失敗過久,修複後DTS緩衝模組中已沒有相應位點的資料。

解決方案2:重新建立任務。

重要

任務失敗報錯時,請儘快修複問題並恢複任務,避免任務因失敗過久而無法恢複。

可能原因3:全量遷移或全量同步期間較長,DTS可能已經清除全量任務啟動後緩衝的資料日誌,導致用於增量解析的資料日誌不完整。

說明

全量遷移或全量同步期間,DTS本地會迴圈儲存源庫近24小時或者50 GB的資料日誌,用於增量資料解析。

解決方案3:需重新建立任務。建立任務前,請評估遷移或同步資料量,如資料量較大,建議拆分成多個遷移或同步任務。

報錯樣本:如下報錯資訊,表示DTS緩衝模組中已沒有相應位點(2021-5-20 21:17:51)的資料。

說明

報錯中1660802171的時間格式為Unix時間戳記,單位為秒(s)。您可以使用Unix時間戳記轉換工具,將Unix時間戳記轉換為UTC時間。

capture-dstore: DTS-50019: seek timestamp for topic [cn_hangzhou_vpc_rm_XXXX_version2-0] 
with position [{"timestamp":1660802171, "offset":-1}] failed

DTS-RETRY-ERR-0012:execute statement failed (.*)? modify column type is not supported

可能原因:鏈路不支援該類型的DDL操作,從而導致DDL執行失敗。

解決辦法:

  • 非整庫同步:建議重新同步這張表(即先從同步對象中去掉,然後刪除目標庫的表,再把這張表加入到同步對象中)。DTS會重新進行包括Schema拉取的全量同步,這樣會跳過此類型的DDL操作。

  • 整庫同步:在AnalyticDB for MySQL中建立一張表,表名要不同於報錯的表,表結構需要和源表的表結構一致。通過INSERT INTO SELECT將源表中的資料寫入建立表中,刪除報錯的表,然後通過RENAME將新表更名為報錯的表名,重新啟動任務即可。

報錯樣本:

transaction-replicate: DTS-70004: execute statement failed: /* dts_id=dtsit911vn1255**** */alter table `billing`.`store_payroll_detail` modify column `epidemic_subsidy` DECIMAL(20, 5) comment '****'
cause:
    SQLException: [15018, 202210211956001921681171220345323****] modify precision is not supported, col=epidemic_subsidy, type decimal, old=21, new=20

DTS-RETRY-ERR-0013:execute statement failed (.*)? command denied to user

可能原因:目標端資料庫帳號許可權不足。

解決方案:提高DTS使用者的許可權,檢查目標端資料庫帳號許可權,授予報錯資訊中命令許可權。

報錯樣本:

id=34286****, jobId=g5lw9b3121v****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: 
null\ncause:\n\tMySQLSyntaxErrorException: INSERT, UPDATE command denied to user 'dts_customerczd'@'172.17.XX.XX' 
for table 'dts_trx4unit_mark_18'","jobId":"bh2u9v80213****","maxRetryTime":7200,"module":"writer","retryCount":35,
"retryTarget":"destDB","retryTime":372,"retrying":true}

DTS-RETRY-ERR-0015:execute statement failed (.*)? Invalid object name

可能原因:目標庫中不存在報錯資訊中的表。

解決方案:檢查目標端是否存在報錯資訊中的表,若不存在:

  • 方法一:如果是同步任務,可以使用修改同步對象功能將報錯的表從同步對象中移除,詳情請參見移除同步對象

  • 方法二:手動在目標庫建立與源庫相同結構的表,然後重新啟動任務。

報錯樣本:

id=344846732, jobId=ymp1082920y****, value={"errMsg":"replicate-sqlserver: DTS-70002: get table [[test].[dbo].[task]] 
detail info failed.\ncause:\n\tSQLServerException: Invalid object name 'test.dbo.task'.","jobId":"anv103sx20od235",
"maxRetryTime":86400,"module":"writer","retryCount":345,"retryTarget":"destDB","retryTime":3458,"retrying":true}

DTS-RETRY-ERR-0016:execute statement failed (.*)? elasticsearch (.*)? ResponseException (.*)? SERVICE_UNAVAILABLE

可能原因:目標端的檢索分析服務Elasticsearch不可用。

解決方案:檢查目標端的Elasticsearch服務是否正常可用。

報錯樣本:

{"errMsg":"transaction-replicate: DTS-70004: execute statement failed: null\ncause:\n\tSQLException: 3: meet error, 
updateSQL **** error detail message:org.elasticsearch.client.ResponseException: **** 503\n}\n\n\tSQLException: org.
elasticsearch.client.ResponseException: ****}

DTS-RETRY-ERR-0018:read source data error (.*)? Error retrieving record (.*)? Can not read response from server

可能原因:資料庫連接異常。

解決方案:檢查資料庫連接是否正常,然後重新啟動任務。更多資訊,請參見源庫串連性檢查目標資料庫連接性檢查

報錯樣本:

id=34281****, jobId=n9f10m6i28s3601, value={"errMsg":"framework: DTS-31009: read source data error\ncause:\n\
tSQLException: Error retrieving record: Unexpected Exception: java.io.EOFException message given: Can not read 
response from server. Expected to read 987 bytes, ****}

DTS-RETRY-ERR-0019:read source data error (.*)? Error retrieving record (.*)? Connection reset

可能原因:串連被重設。

解決方案:檢查網路狀況,測試到資料庫的串連是否正常。

報錯樣本:

id=34289****, jobId=n9f10m6i28s****, value={"errMsg":"framework: DTS-31009: read source data error\ncause:
\n\tSQLException: Error retrieving record: Unexpected Exception: java.net.SocketException message given: 
Connection reset\n\nNested Stack Trace:\n\n\n** BEGIN NESTED EXCEPTION ** \n\njava.net.SocketException\nMESSAGE: 
Connection reset\n\nSTACKTRACE:\n\njava.net.SocketException: Connection reset\n\tat java.net.SocketInputStream.
read(SocketInputStream.java:210)\n\tat java.net.SocketInputStream.read(SocketInputStream.java:141)\n\tat com.mysql.
cj.protocol.ReadAheadInputStream.fill(ReadAheadInputStream.java:107)\n\tat com.mysql.cj.protocol.ReadAheadInputStream.
readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:150)\n\tat com.mysql.cj.protocol.ReadAheadInputStream.
read(ReadAheadInputStream.java:180)\n\tat java.io.FilterInputStream.read(FilterInputStream.java:133)\n\tat com.mysql.
jdbc.MySQLInputNetIoStream.read(MySQLInputNetIoStream.java:29)\n\tat java.io.FilterInputStream.read(FilterInputStream.
java:133)\n\tat com.mysql.cj.protocol.FullReadInputStream.readFully(...","jobId":"ga310k47281****","maxRetryTime":
7200,"module":"full","retryCount":3,"retryTarget":"srcDB","retryTime":15445,"retrying":true}

DTS-RETRY-ERR-0020:read source data error (.*)? Table (.*)? is marked as crashed and should be repaired

可能原因:源庫中某張表的索引被損壞,導致無法讀取資料。

解決方案:根據報錯資訊修複相應表的索引。

報錯樣本:如下報錯資訊,表示mytable表的索引損壞。

framework: DTS-31009: read source data error\ncause:\n\tSQLException: 
Table 'mytable' is marked as crashed and should be repaired

您可以使用如下命令進行修複:

use my_database;
repair table mytable;

DTS-RETRY-ERR-0021:BatchUpdateException (.*)? no this column (.*)? in this table

可能原因:目標端的表缺少列。

解決辦法:在目標端的表增加缺失的列,然後重新啟動任務。

報錯樣本:

id=34293****, jobId=zjj11te2w1i****, value={"errMsg":"java.sql.BatchUpdateException: [13000, 202211011449191921681280300345301****] 
syntax error :no this column => __dts_data_source, in this table LY.C1","jobId":"gqy11x78c19****","maxRetryTime":7200,"module":"full",
"retryCount":485,"retryTarget":"destDB","retryTime":4848,"retrying":true}

DTS-RETRY-ERR-0024:disk usage exceeded flood-stage watermark

可能原因:

  • 原因1:磁碟空間已滿。

  • 原因2:表的大小已達上限。

解決辦法:

  • 方法1:擴容磁碟後重新啟動任務。

  • 方法2:在資料庫層面解決表的上限值問題。解決後重新啟動任務。

    說明

    針對MySQL資料庫,表的上限值設定,請參見官方文檔

報錯樣本:

common: DTS-11005: es: DTS-10035: index [tp_adlist_day_report_11] blocked by: [TOO_MANY_REQUESTS/12/disk usage 
exceeded flood-stage watermark, index has read-only-allow-delete block];\ncause:\n\tIOException: es: DTS-10035: 
index [tp_adlist_day_report_11] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index 
has read-only-allow-delete block];\n\tCriticalAnyAllException: es: DTS-10035: index [tp_adlist_day_report_11] 
blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];

DTS-RETRY-ERR-0025:disk is over flow

可能原因:

  • 原因1:磁碟空間已滿。

  • 原因2:表的大小已達上限。

解決辦法:

  • 方法1:擴容磁碟後重新啟動任務。

  • 方法2:在資料庫層面解決表的上限值問題。解決後重新啟動任務。

    說明

    針對MySQL資料庫,表的上限值設定,請參見官方文檔

報錯樣本:

common: DTS-11005: es: DTS-10035: index [tp_adlist_day_report_11] blocked by: [TOO_MANY_REQUESTS/12/disk usage 
exceeded flood-stage watermark, index has read-only-allow-delete block];\ncause:\n\tIOException: es: DTS-10035: 
index [tp_adlist_day_report_11] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index 
has read-only-allow-delete block];\n\tCriticalAnyAllException: es: DTS-10035: index [tp_adlist_day_report_11] 
blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];

DTS-RETRY-ERR-0026:connect timed out

可能原因:資料庫連接異常。

解決方案:檢查資料庫連接是否正常,然後重新啟動任務。更多資訊,請參見源庫串連性檢查目標資料庫連接性檢查

報錯樣本:

java.net.SocketTimeoutException: connect timed out@error code:1042

DTS-RETRY-ERR-0027:Communications link failure (.*)? The driver has not received any packets from the server

可能原因1:資料庫以自建庫接入DTS,資料庫地址或連接埠填寫錯誤。

解決方案1:檢查並更正資料庫地址和連接埠資訊,然後重新啟動任務。

可能原因2:資料庫以專線接入DTS,該資料庫通過專線串連異常。

解決方案2:請檢查專線網路路由表及防火牆配置。

報錯樣本:

Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver 
has not received any packets from the server.@error code:0

DTS-RETRY-ERR-0028:UnknownHostException (.*)? aliyuncs\\.com

可能原因:目標端資料庫執行個體可能被釋放了。

解決方案:無法恢複,請重新設定任務。

報錯樣本:

java.net.UnknownHostException: rm-bp167dm72ah1hm1****.mysql.rds.aliyuncs.com@error code:1042

DTS-RETRY-ERR-0029:Too many connections (.*)? error code

可能原因:資料庫連接數達到上限。

解決方案:修改資料庫連接數上限,然後重新啟動任務。

報錯樣本:

Too many connections@error code:1040

DTS-RETRY-ERR-0030:ConnectException (.*)? Connection refused

可能原因:DTS的串連請求被拒絕了。

解決方案:請檢查黑白名單授權。

報錯樣本:

id=34269****, jobId=pfi10xxa251****, value={"errMsg":"java.net.ConnectException: Connection refused (Connection refused)@error code:1042","jobId":"ehz1066b257****","maxRetryTime":43200,"module":"reader","retryCount":3,"retryTarget":"srcDB","retryTime":30,"retrying":true}

DTS-RETRY-ERR-0032:SQLServerException (.*)? The connection is closed

可能原因:SQLServer資料庫連接中斷。

解決方案:請確保源庫和目標庫SQLServer資料庫可以正常串連,然後重新啟動任務。

報錯樣本:

java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed.

DTS-RETRY-ERR-0033:SQLServerException (.*)? Connection reset

可能原因:網路不穩定,串連被重設。

解決辦法:請確保SQLServer資料庫可以正常串連,然後重新啟動任務。

報錯樣本:

id=34271****, jobId=c2x10019318****, value={"errMsg":"com.microsoft.sqlserver.jdbc.SQLServerException: Connection 
reset ClientConnectionId:8a2bcd3d-3a6f-4b06-b5c4-94944d40****","jobId":"al9105f2314****","maxRetryTime":7200,"module":
"writer","retryCount":2,"retryTarget":"destDB","retryTime":28,"retrying":true}

DTS-RETRY-ERR-0034:elasticsearch (.*)? ResponseException (.*)? Too Many Requests

可能原因:Elasticsearch服務串連異常。

解決辦法:檢查Elasticsearch服務串連是否正常,然後重新啟動任務。

報錯樣本:

common: DTS-11005: org.elasticsearch.client.ResponseException: POST http://172.16.XX.XX:XXXX/_bulk?pretty=true: HTTP/1.1 429 
Too Many Requests ****

DTS-RETRY-ERR-0035:Your password has expired

可能原因:DTS任務中使用的密碼已到期。

解決辦法:按MySQL給出的原始報錯資訊,修改密碼並重新設定到期時間(建議設定為never):

  • 同步任務:重新設定DTS任務的密碼。

  • 遷移任務:重建鏈路。

報錯樣本:

Your password has expired. To log in you must change it using a client that supports expired passwords.@error code:1862

DTS-RETRY-ERR-0036:Can't use (.*)? database through mongos (.*)? on server

可能原因1:任務使用的MongoDB資料庫帳號許可權不足。

解決辦法1:根據報錯資訊給資料庫帳號授權,然後重新啟動任務。

可能原因2:待同步或遷移的資料為admin和local庫中的資料。

解決辦法2:暫不支援同步或遷移admin和local庫中的資料。

報錯樣本:

Command failed with error 20 (IllegalOperation): 'Can't use 'local' database through mongos' on server s-
bp1698827e718b84-pub.mongodb.rds.aliyuncs.com:3717.

DTS-RETRY-ERR-0037:The last packet sent successfully to the server was (.*)? milliseconds ago

可能原因:資料庫連接異常。

解決方案:檢查資料庫連接是否正常,然後重新啟動任務。更多資訊,請參見源庫串連性檢查目標資料庫連接性檢查

報錯樣本:

id=342986938****, jobId=iv6a9w5za8****, value={"errMsg":"com.mysql.cj.exceptions.CJCommunicationsException: The 
last packet successfully received from the server was 1 milliseconds ago.  The last packet sent successfully to 
the server was 14,513,692,650 milliseconds ago. ****

DTS-RETRY-ERR-0038:Statement cancelled due to timeout or client request

可能原因:擷取源庫Binlog最新位點時SQL查詢逾時。

解決方案:請確保DTS可以正常串連源庫,然後重新啟動任務。

報錯樣本:

id=34289****, jobId=lv710sub15r****, value={"errMsg":"Statement cancelled due to timeout or client request@error code:0","jobId":"wig100eq157****","maxRetryTime":43200,"module":"reader","retryCount":4,"retryTarget":"srcDB","retryTime":520,"retrying":true}

DTS-RETRY-ERR-0039:Connect db failure (.*)? connect timed out

可能原因:串連資料庫逾時。

解決方案:請確保DTS可以正常串連資料庫,然後重新啟動任務。

報錯樣本:

id=34284****, jobId=dv9w1fpej7j****, value={"errMsg":"DTS-002003 Connect db failure, unknow db url 100.100.XX.XX:XXX, please vaild url. Original error: java.net.SocketTimeoutException: connect timed out For more information please refer to https://****/document_detail/****.htm","jobId":"rcxy3zwo164****","maxRetryTime":43200,"module":"reader","retryCount":0,"retryTarget":"dstore","retryTime":19851828,"retrying":true}

DTS-RETRY-ERR-0040:Verify the connection properties and check that an instance of SQL Server is running on the host

可能原因:資料庫無法正常串連。

解決方案:請確保DTS可以正常串連資料庫,然後重新啟動任務。

報錯樣本:

id=34286****, jobId=hy0s8l20276****, value={"errMsg":"The TCP/IP connection to the host 172.26.XX.XX, port 51808 has failed. Error: \"The driver received an unexpected pre-login response. Verify the connection properties and check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. This driver can be used only with SQL Server 2005 or later.\". ClientConnectionId:f8d40feb-1345-4064-82d8-fe4e2893****@error code:0","jobId":"g5bf870q27b****","maxRetryTime":7200,"module":"reader","retryCount":1,"retryTarget":"srcDB","retryTime":15,"retrying":true}

DTS-RETRY-ERR-0041:Error on Send (.*)? Expiring (.*)? has passed since batch creation plus linger time

可能原因:增量資料擷取模組異常。

解決方案:重啟增量資料擷取模組。

報錯樣本:

id=34286****, jobId=ehi11j9jw1h****, value={"errMsg":"dts-k-src: DTS-52122: Error on Send.Expiring 4251 record(s) for ap_southeast_1_vpc_rm_t4npvr5594z735ic5_imi_sg_prod_version2-0: 180182 ms has passed since batch creation plus linger time","jobId":"s3c116i9z1t****","maxRetryTime":7200,"module":"reader","retryCount":0,"retryTarget":"dstore","retryTime":1,"retrying":true}

DTS-RETRY-ERR-0042:No operations allowed after statement closed

可能原因:目標資料庫無法正常串連。

解決方案:請確保DTS可以正常串連目標庫,然後重新啟動任務。

報錯樣本:

id=34284****, jobId=d3a107cy29z****, value={"errMsg":"framework: DTS-30011: currentRunningSQL: /* DTS-full-g86108c2294**** */insert ignore into `mpm_workflow`.`tb_conn_log_archive`(`conn_type`,`creator_user_id`,`call_class`,`create_time`,`recall_method`,`header_json`,`url`,`times`,`creator_user_name`,`response`,`success`,`id`,`last_mod_time`,`request_data`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: No operations allowed after statement closed.\ncause:\n\tSQLException: No operations allowed after statement closed.\n\tStatementIsClosedException: No operations allowed after statement closed.","jobId":"g86108c2294****","maxRetryTime":7200,"module":"full","retryCount":8,"retryTarget":"destDB","retryTime":297,"retrying":true}

DTS-RETRY-ERR-0043:MySQL binlog (.*)? is not exists

可能原因:任務暫停超過7天或MySQL的Binlog保留時間過短,導致Binlog不存在。

解決方案:

  • 若是自建MySQL資料庫:請嘗試恢複MySQL的Binlog,若Binlog無法恢複,請重新建立任務。

  • 若是RDS MySQL資料庫:請重新建立任務。

報錯樣本:

dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52212: MySQL binlog 1664283982 is not exists.

DTS-RETRY-ERR-0044:Get Last Position Error

可能原因:擷取事務的GTID異常。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

id=34293****, jobId=vheu6zm1297****, value={"errMsg":"dts-k-src: DTS-52121: Get Last Position Error.","jobId":"p83i1t3912i****","maxRetryTime":7200,"module":"reader","retryCount":30,"retryTarget":"dstore","retryTime":2911,"retrying":true}

DTS-RETRY-ERR-0045:archiver error (.*)? Connect internal only (.*)? until freed

可能原因:Oracle歸檔日誌佔用空間或者根目錄空間已滿,導致歸檔任務無法正常執行。

解決方案:檢查Oracle歸檔日誌佔用空間或者根目錄空間是否已滿。

報錯樣本:

id=34291****, jobId=zl0110ae27t****, value={"errMsg":"ORA-00257: archiver error. Connect internal only, until freed.\n@error code:257","jobId":"o50118un27m****","maxRetryTime":43200,"module":"reader","retryCount":90,"retryTarget":"srcDB","retryTime":903,"retrying":true}

DTS-RETRY-ERR-0046:Access denied for user

可能原因1:任務中使用的資料庫帳號許可權不足。

解決方案1:

  • 方法一:給任務中使用的資料庫帳號授予足夠的許可權,然後重新啟動任務。

  • 方法二:請使用許可權充足的資料庫帳號配置任務。

可能原因2:報錯資訊中的庫為系統庫(如sys等)或者不需要同步或遷移的資料庫。

解決方案2:

  • 同步任務:使用修改同步對象功能將報錯的庫從同步對象中移除,然後重新啟動任務。移除同步對象的方法,請參見移除同步對象

  • 遷移任務:重新設定任務,待遷移的對象不選擇報錯資訊中的庫。

報錯樣本:

id=34298****, jobId=c7e10qex28q****, value={"errMsg":"dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS--0002: MySQLMessageNotifier notifyConnectionException error Access denied for user 'edy_dba1'@'10.28.XX.XX' (using password: YES)","jobId":"k361016128e****","maxRetryTime":7200,"module":"reader","retryCount":18,"retryTarget":"srcDB","retryTime":730,"retrying":true}

DTS-RETRY-ERR-0047:The MySQL server is running with the --read-only option

可能原因:MySQL執行個體是一個唯讀執行個體。

解決方案:修改資料庫配置,詳情請參見Strange MySQL "read-only" error

報錯樣本:

id=34297****, jobId=d3a107cy29z****, value={"errMsg":"framework: DTS-30011: currentRunningSQL: /* DTS-full-g86108c2294**** */insert ignore into `mpm_workflow`.`tb_node_tasks`(`tenant_id`,`task_name`,`reviewer_node_rp_info`,`node_status`,`create_time`,`punish_b_mp`,`last_node_info`,`approval_type`,`end_time`,`task_id`,`read_flag`,`is_last_flag`,`reward_b_mp`,`proc_inst_id`,`id`,`assignee`,`last_mod_time`,`reviewer_reward_b_mp`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: The MySQL server is running with the --read-only option so it cannot execute this statement\ncause:\n\tBatchUpdateException: The MySQL server is running with the --read-only option so it cannot execute this statement\n\tSQLException: The MySQL server is running with the --read-only option so it cannot execute this statement","jobId":"g86108c2294****","maxRetryTime":7200,"module":"full","retryCount":175,"retryTarget":"destDB","retryTime":6149,"retrying":true}

DTS-RETRY-ERR-0048:object mapping for (.*)? tried to parse field (.*)? as object (.*)? but found a concrete value

可能原因:未使用DTS進行結構遷移或同步,欄位類型映射時失敗。

解決方案:請訂正目標端的表結構,使報錯資訊中的欄位支援類型映射,詳情請參見Tried to parse field as object, but found a concrete value

報錯樣本:

id=34298****, jobId=o0g115h4l19****, value={"errMsg":"common: DTS-11005: es: DTS-10035: object mapping for [ext_info.storeSnapshot] tried to parse field [storeSnapshot] as object, but found a concrete value\ncause:\n\tIOException: es: DTS-10035: object mapping for [ext_info.storeSnapshot] tried to parse field [storeSnapshot] as object, but found a concrete value\n\tCriticalAnyAllException: es: DTS-10035: object mapping for [ext_info.storeSnapshot] tried to parse field [storeSnapshot] as object, but found a concrete value","jobId":"k5d111rgn1q****","maxRetryTime":7200,"module":"full","retryCount":8,"retryTarget":"destDB","retryTime":188,"retrying":true}

DTS-RETRY-ERR-0049:get table (.*)? detail info failed (.*)? No operations allowed after connection closed

可能原因:在任務運行期間修改了目標庫名稱,導致串連目標庫失敗。

解決方案:請檢查資料庫是否存在,並確保資料庫可以正常串連。

報錯樣本:

id=34443****, jobId=vnie8qsym6j****, value={"errMsg":"replicate-adb30: DTS-70002: get table [center_item.t_ite_half_product_list] detail info failed.\ncause:\n\tMySQLNonTransientConnectionException: No operations allowed after connection closed.","jobId":"xlcu9y7a29s****","maxRetryTime":43200,"module":"writer","retryCount":42,"retryTarget":"destDB","retryTime":415,"retrying":true}

DTS-RETRY-ERR-0050:get table (.*)? detail info failed (.*)? Schema (.*)? does not exist

可能原因:修改過目標庫名稱,導致Schema不存在。

解決方案:請檢查Schema是否存在。

報錯樣本:

id=34443****, jobId=vnie8qsym6j****, value={"errMsg":"replicate-adb30: DTS-70002: get table [center_item.t_ite_sale_product_list] detail info failed.\ncause:\n\tSQLException: [20019, 2022110223221517201625218803151866591] : Schema center_item does not exist","jobId":"xlcu9y7a29s****","maxRetryTime":43200,"module":"writer","retryCount":13,"retryTarget":"destDB","retryTime":128,"retrying":true}

DTS-RETRY-ERR-0051:execute statement failed (.*)? The MySQL server is running with the LOCK_WRITE option

可能原因:MySQL執行個體狀態異常(如執行個體為LOCK_WRITE狀態),DTS無法寫入資料。

解決方案:請檢查MySQL執行個體狀態是否正常。

報錯樣本:

id=34443****, jobId=v2310b2h13d****, value={"errMsg":"transaction-replicate: DTS-70003: 29 execute transaction has excess max transaction retry time [150] cause:transaction-replicate: DTS-70004: execute statement failed, may try it again\ncause:\n\tRecoverableAnyAllException: transaction-replicate: DTS-70004: execute statement failed, may try it again\n\tSQLException: MysqlEngine(29): meet error, insertSQL:/* DTS-writer-pt0104ov13b****-MysqlEngine(29) */insert into `gts`.`s1` (`address`,`gender`,`name`,`telephone`,`id`,`department`,`age`)  VALUES  (x'E6B19FE88B8FE79C81E58D97E4BAACE5B882E696B0E59F8EE7A791E68A80E59BAD', x'E794B7', x'E5AE8BE6B19F', x'3133383031323334353637', 80371, x'416C6979756E', 28) , error detail message:The MySQL server is running with the LOCK_WRITE option so it cannot execute this statement\n\tSQLException: The MySQL server is running with the LOCK_WRITE option so it cannot execute this statement","jobId":"pt0104ov13b****","maxRetryTime":86400,"module":"writer","retryCount":372,"retryTarget":"destDB","retryTime":10201,"retrying":true}

DTS-RETRY-ERR-0052:Record Replicator error in table (.*)? The table (.*)? does not have primary key!

可能原因:目標庫某張表缺少主鍵。

解決方案:按照源庫對應表的主鍵設定為目標庫添加主鍵,然後重新啟動任務。

報錯樣本:如下報錯資訊,表示目標庫reader中的my_table表缺少主鍵。您可以參考源庫的表資訊為目標庫中my_table表添加主鍵,然後重新啟動任務。

DTS-077100: Record Replicator error in table null.null. cause by [The table `reader`.`my_table` does not 
have primary key!] About more information in [https://**.ali**.com/**].

DTS-RETRY-ERR-0053:Failed to get offsets by times in 120000 ms

可能原因:網路波動等原因,導致增量寫入模組無法串連增量資料擷取模組。

解決方案:重啟增量寫入模組,並查看任務是否恢複正常。

報錯樣本:

org.apache.kafka.common.errors.TimeoutException: Failed to get offsets by times in 120000 ms

DTS-RETRY-ERR-0054:Failed to get offsets by times in 60000 ms

可能原因:網路波動等原因,導致增量資料擷取模組無法串連資料緩衝模組。

解決方案:重啟增量資料擷取模組,並查看任務是否恢複正常。

報錯樣本:

Failed to get offsets by times in 60000 ms

DTS-RETRY-ERR-0055:In process of processing data (.*)? failed (.*)? column (.*)? does not exist

可能原因:目標端的表缺少列。

解決方案:在目標端的表增加缺失的列,然後重新啟動任務。

報錯樣本:如下報錯資訊,表示目標庫的default$default表中不存在a列。

In process of processing data (recordRange: 767384901729753****) failed
cause:
    CriticalAnyAllException: framework: DTS-30020: execute sql:/* DTS-full-t6o10oly31f**** */SELECT a,b FROM default$default."_AnswerDetailToSectionScore" --> (null, null) record range id = 767384901729753****, fetchSize = 1024
    PSQLException: ERROR: column "a" does not exist

DTS-RETRY-ERR-0056:In process of processing data (.*)? failed (.*)? read source data error (.*)? An I/O error occurred while sending to the backend

可能原因:目標庫負載過高或者網路不穩定。

解決方案:

  • 方法一:在遷移執行個體詳情頁,通過任務管理 > 全量遷移 > 調整速率功能,降低全量遷移速率,實現降低目標庫的寫入負載。

  • 方法二:對目標庫進行規格升級,提高寫入效能。

報錯樣本:

In process of processing data (recordRange: 361479547447882****) failed
cause:
    CriticalAnyAllException: framework: DTS-31009: read source data error
    PSQLException: An I/O error occurred while sending to the backend.

DTS-RETRY-ERR-0057:fetch column info from target table (.*)? failed (.*)? Can not get the column

可能原因1:DTS全量遷移暫不支援遷移global_index(全域索引)。

解決方案1:刪除目標庫中的global_index

可能原因2:資料庫儲存引擎使用的是DTS不支援的MyISAM。

解決方案2:

  • 同步任務:使用修改同步對象功能將報錯的表從同步對象中移除,然後重新啟動任務。移除同步對象的方法,請參見移除同步對象

  • 遷移任務:重新設定任務,待遷移的對象不選擇報錯的表。

報錯樣本:

framework: DTS-31008: fetch column info from target table snpcenter.modification failed
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from target table snpcenter.modification failed
    CriticalAnyAllException: full-postgresql: DTS-61008: jdbc: DTS-11014: Can not get the column tableoid from recordSchema for index global_modification_after_idx

DTS-RETRY-ERR-0058:fetch column info from (.*)? table (.*)? failed (.*)? relation (.*)? does not exist

可能原因1:目標庫中的指定表不存在。

解決方案1:在目標資料庫中建立對應表,如需刪除該表,請在任務結束後再執行刪除操作。

可能原因2:資料庫儲存引擎使用的是DTS不支援的MyISAM。

解決方案2:

  • 同步任務:使用修改同步對象功能將報錯的表從同步對象中移除,然後重新啟動任務。移除同步對象的方法,請參見移除同步對象

  • 遷移任務:重新設定任務,待遷移的對象不選擇報錯的表。

報錯樣本:如下報錯資訊,表示目標庫中dw.tmp_smb2021表不存在。

framework: DTS-31008: fetch column info from source table dw.tmp_smb2021 failed
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from source table dw.tmp_smb2021 failed
    CriticalAnyAllException: full-postgresql: DTS-61008: ERROR: relation "dw.tmp_smb2021" does not exist

DTS-RETRY-ERR-0059:fetch column info from (.*)? table (.*)? failed (.*)? NullPointerException

可能原因1:從源庫查詢對應的表結構資訊失敗,可能是源庫中對應表被刪除,或當前配置的源庫帳號沒有該表的查詢許可權。

解決方案1:確認源庫中是否存在對應表,若表已被刪除,則需重新設定DTS任務;若表存在,則需確認當前配置的源庫帳號是否具有該表的查詢許可權,若沒有許可權則需要進行授權。

可能原因2:資料庫儲存引擎使用的是DTS不支援的MyISAM。

解決方案2:

  • 同步任務:使用修改同步對象功能將報錯的表從同步對象中移除,然後重新啟動任務。移除同步對象的方法,請參見移除同步對象

  • 遷移任務:重新設定任務,待遷移的對象不選擇報錯的表。

報錯樣本:如下報錯資訊,表示擷取xxx庫的yyy表結構失敗。

**
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from source table xxx.yyy failed
    NullPointerException: null

DTS-RETRY-ERR-0060:Table (.*)? doesn't exist

可能原因:目標庫中的指定表不存在。

解決方案:在目標資料庫中建立對應表,如需刪除該表,請在任務結束後再執行刪除操作。

報錯樣本:如下報錯資訊,表示目標庫中hd_new_cctv.tbl_program表不存在。

    cause:
    BatchUpdateException: Table 'hd_new_cctv.tbl_program' doesn't exist
    MySQLSyntaxErrorException: Table 'hd_new_cctv.tbl_program' doesn't exist"

DTS-RETRY-ERR-0061:Duplicate entry (.*)? for key

可能原因:在寫入目標庫過程中遇到了主鍵衝突的問題。通常是因為目標庫中存在Trigger(觸發器),DTS寫入時觸發了該Trigger,又由該Trigger觸發了主鍵衝突。

解決方案:查看報錯SQL中的庫表資訊,在目標庫中查詢是否存在Trigger,並結合業務評估是否可以刪除Trigger,刪除後重新啟動任務。

報錯樣本:

Duplicate entry '97103673' for key 'PRIMARY'
cause:
    BatchUpdateException: Duplicate entry '9710****' for key 'PRIMARY'
    MySQLIntegrityConstraintViolationException: Duplicate entry '9710****' for key 'PRIMARY'"

DTS-RETRY-ERR-0062:column (.*)? of relation (.*)? does not exist

可能原因:目標庫和源庫的表結構不一致,目標庫指定的表中缺少列。

解決方案:在目標庫指定的表中增加缺失的列,然後重新啟動任務。

報錯樣本:如下報錯資訊,表示目標庫中的t_m_class_record_detail表的exception列不存在。

ERROR: column "exception" of relation "t_m_class_record_detail" does not exist

DTS-RETRY-ERR-0063:Lock wait timeout exceeded

可能原因:目標庫存在鎖等待逾時問題。

解決方案:若目標庫是MySQL,可通過以下命令檢查目標庫鎖的狀況。

SHOW FULL PROCESSLIST;
SELECT * FROM innodb_trx;
說明

修複完成後,需要重新啟動任務。

報錯樣本:

reason: Lock wait timeout exceeded; try restarting transaction
cause:
    BatchUpdateException: Lock wait timeout exceeded; try restarting transaction
    MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

DTS-RETRY-ERR-0064:schema in dblist not found in database

可能原因:目標庫Schema不存在。

解決方案:需要在目標庫中手動建立對應的Schema以及Schema中需要遷移的表,並重新啟動任務。

報錯樣本:

schema in dblist not found in database

DTS-RETRY-ERR-0065:syntax error at or near (.*)? schema (.*)? does not exist

可能原因:目標庫Schema不存在。

解決方案:需要在目標庫中手動建立對應的Schema以及Schema中需要遷移的表,並重新啟動任務。

報錯樣本:

ERROR:syntax error at or near \"\"ALTER\"\"
Position:157. ERROR: schema \"\"CECDEV\"\" does not exist.

DTS-RETRY-ERR-0066:MongoCommandException (.*)? Command failed with error (.*)? requires authentication

可能原因:目標庫的帳號沒有寫入權限。

解決方案:授權目標庫帳號的寫入權限。

報錯樣本:

MongoCommandException:
Command failed with error 13: 'command insert requires authentication' on
server 113.**.*.*:27017. 

DTS-RETRY-ERR-0067:MongoCommandException (.*)? Command failed with error (.*)? disk locked

可能原因:目標庫磁碟被鎖定,可能是磁碟空間已滿。

解決方案:擴容目標庫的MongoDB磁碟空間,並重新啟動任務。

報錯樣本:

MongoCommandException:
Command failed with error 13: 'cloud instance error, disk locked, plz check and
upgrade your disk quota, extra info: not authorized on gankao_log to execute
command { insert: "jyquestions", ordered: true, bypassDocumentValidation:
true, $db: "gankao_log" }' on server 100.**.*.*:27017.

DTS-RETRY-ERR-0068:invalid set null value to not nullable field

可能原因:源庫與目標庫的表結構不一致,源庫為NULLABLE,而目標庫為NOT NULL

解決方案:根據報錯找到具體的目標庫表,將該表的報錯欄位類型修改為NULLABLE,並重新啟動任務。

報錯樣本:

CriticalAnyAllException: database-commons: DTS-11001: invalid set null value to not nullable field

DTS-RETRY-ERR-0069:Datasource rejected establishment of connection (.*)? Too many connections

可能原因:源端或目標端資料庫的串連數過多。

解決方案:調整源端或目標端資料庫的最大串連數,並重新啟動任務。

說明

若您的實際情況不符合上述原因,請嘗試以下方法:

報錯樣本:

MySQLNonTransientConnectionException: Data source rejected establishment of connection,  message from server: ""Too many connections"""

DTS-RETRY-ERR-0070:In process of processing data (.*)? failed (.*)? Syntax error in SQL statement

可能原因:配置同步對象的過濾欄位格式不正確,需要去除WHERE關鍵字。

解決方案:修改同步對象的過濾條件欄位,去除WHERE關鍵字,並重新啟動任務。

報錯樣本:

framework: DTS-31009: In process of processing data (recordRange:
631*****493978*****) failed cause:
CriticalAnyAllException: common: DTS-11005: Syntax error in SQL statement
"WHERE[*] UPDATED_TIME > '2022-11-02' " [42000-193] 

DTS-RETRY-ERR-0071:In process of processing data (.*)? failed (.*)? Fetch records (.*)? times but return empty

可能原因:增量寫入模組無法從增量資料擷取模組中擷取資料。

解決方案:排查增量資料擷取模組的報錯。

報錯樣本:

\"framework: DTS-31009: In process of processing data (recordRange: 651*****493978*****) failed\n" +
                "cause:\n" +
                "\tCriticalAnyAllException: common: DTS-10009: capture-dstore: DTS-51009: Fetch records 156 times but return empty.\n" +
                "\tRecoverableAnyAllException: capture-dstore: DTS-51009: Fetch records 156 times but return empty.\n" +
                "\tException: Fetch records but return empty.\"

DTS-RETRY-ERR-0072:In process of processing data (.*)? failed (.*)? Failed to get offsets by times in 120000 ms

可能原因:增量寫入模組無法從增量資料擷取模組中擷取資料。

解決方案:重啟增量寫入模組,並查看任務是否恢複正常。

報錯樣本:

\"framework: DTS-31009: In process of processing data (recordRange: 3187189853338992640) failed\n" +
                "cause:\n" +
                "\tCriticalAnyAllException: common: DTS-11005: Failed to get offsets by times in 120000 ms\n" +
                "\tTimeoutException: Failed to get offsets by times in 120000 ms\"

DTS-RETRY-ERR-0073:In process of processing data (.*)? failed (.*)? unreachable source redis network

可能原因:DTS網路無法串連至Redis執行個體,也可能是Redis執行個體被釋放。

解決方案:檢查Redis執行個體是否可以正常串連。

報錯樣本:

\"framework: DTS-31009: In process of processing data (recordRange: 278730492608512) failed\n" +
                "cause:\n" +
                "\tRedisServerException: redis: DTS-10015: unreachable source redis network.\n" +
                "\tSocketException: Broken pipe (Write failed)\"

DTS-RETRY-ERR-0074:JedisDataException (.*)? WRONGTYPE Operation against a key holding the wrong kind of value

可能原因:目標庫已存在與源庫同名但類型不相同的Key資料。

解決方案:刪除目標庫的同名key。

報錯樣本:

redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value

DTS-RETRY-ERR-0075:sqlserver-reader (.*)? seek binlog for timestamp

可能原因:源庫沒有對應時間點的日誌。

解決方案:重新設定任務。

報錯樣本:

"\tCriticalAnyAllException: sqlserver-reader: DTS-52061: Failed to
seek sqlserver position\n" +

DTS-RETRY-ERR-0076:SQLServerException (.*)? The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer

可能原因:資料庫執行個體無法串連。

解決方案:請確保資料庫可以正常串連,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

"cause:\n" +
     "\tSQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: \"\"Unexpected rethrowing\"\".\n" +

DTS-RETRY-ERR-0077:Increment Context Is Not Running (.*)? please check whether binlog_row_image=FULL

可能原因:Binlog模式錯誤,DTS服務串連MySQL只支援binlog_row_image='FULL'模式的日誌。

解決方案:修改Binlog模式,並在不影響業務的前提條件下清空目標的表資料,然後重新設定任務。修改Binlog模式的方法,請參見DTS-1051007

說明

您需要確保在建立DTS任務前,源庫的binlog_row_image參數為FULL

報錯樣本:

\"dts-k-src:
DTS-52111: Increment Context Is Not Running..: \n" +
 "cause:\n" +
"\tCriticalAnyAllException: mysql-reader: DTS-52210: fetch log
failed\n" +
"\tIOException: java.lang.UnsupportedOperationException:
database:palm_all/table:p_player/charSet:utf8/rdsRowid:false/filter:false/engine:InnoDB/snapshot:16659793***** Null bitmap size check error, binlog
table map has 15 columns, but row event has {0}, please check whether
binlog_row_image=FULL and binlog event Header:

DTS-RETRY-ERR-0078:Fetch records (.*)? times but return empty

可能原因:增量寫入模組無法從增量資料擷取模組中擷取資料。

解決方案:根據增量資料擷取模組的報錯進行排查,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

\"framework: DTS-31009: In process of processing data
(recordRange: 65147****8075******) failed\n" +
"cause:\n" +
    "\tCriticalAnyAllException: common: DTS-10009: capture-dstore:
    DTS-51009: Fetch records 156 times but return empty.\n" +

DTS-RETRY-ERR-0079:execute statement failed (.*)? MySQLSyntaxErrorException

可能原因:目標庫不支援報錯資訊中的SQL文法。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

id=34439****, jobId=z48c4r42s8c****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtsrrrm4ar8v83z6vk*/alter table `xp_ass`.`t_se_db_shop_wi_coef` ADD \ncause:\n\tMySQLSyntaxErrorException: [13000, 2022110222143119216819915303151843457] illegal name, pos 47, line 1, column 48, token EOF","jobId":"hbsk4mjdr83****","maxRetryTime":7200,"module":"writer","retryCount":3,"retryTarget":"destDB","retryTime":4399,"retrying":true}

DTS-RETRY-ERR-0080:Disperse target record field (.*)? unsupported value convert

可能原因:源端和目標端表結構不一致,DTS無法進行類型轉換。

解決方案:請修改目標端表結構,使源端和目標端表結構保持一致,然後重新啟動任務。

報錯樣本:

id=34436****, jobId=wm811y74h1q****, value={"errMsg":"transaction-framework: DTS-71001: Disperse target record field updatetime STRING nullable as updatetime failed for record LazyParseRecord {offset [726070057], operationType [INSERT], checkpoint [0@726070057@102578064@1807@1667391476000]}\ncause:\n\tJdbcUtilsException: jdbc-utils: DTS-11001: MysqlTimestampValueDisperse: unsupported value convert for [2022-11-02 20:17:56.0] convert to [updatetime STRING nullable as updatetime]","jobId":"o7x11euhn1d****","maxRetryTime":7200,"module":"writer","retryCount":55,"retryTarget":"destDB","retryTime":546,"retrying":true}

DTS-RETRY-ERR-0081:WSREP has not yet prepared node for application use

可能原因:資料庫異常。

解決方案:請恢複資料庫,然後重新啟動DTS執行個體。

報錯樣本:

id=34436****, jobId=s7i127j4225****, value={"errMsg":"WSREP has not yet prepared node for application use@error code:
1047","jobId":"frjr8yzg17z****","maxRetryTime":43200,"module":"reader","retryCount":1503,"retryTarget":"srcDB","
retryTime":15155,"retrying":true}

DTS-RETRY-ERR-0082:Failed to disperse record LazyParseRecord

可能原因:DTS在拼接SQL時出錯。

解決方案:請確保源端和目標端表結構保持一致或可相容,然後重新啟動任務。若是同步任務,您可以將報錯資訊中的表從同步對象移除,然後啟動任務。移除同步對象的方法,請參見移除同步對象

報錯樣本:

id=34441****, jobId=tidd773a278****, value={"errMsg":"transaction-framework: DTS-71001: Failed to disperse record LazyParseRecord {offset [1311857846], operationType [UPDATE], checkpoint [0@1311857846@17610008188031@1667388377000]} in buildWhereClause.\ncause:\n\tTransactionReplicateException: transaction-replicate: DTS-71001: MysqlRelatedTextSqlBuilderTools: record [LazyParseRecord ****

DTS-RETRY-ERR-0083:Error while executing user ETL (.*)? not found in

可能原因:ETL語法錯誤,導致ETL執行失敗。

解決方案:根據報錯資訊檢查ETL文法是否配置正確。

報錯樣本:

id=34441****, jobId=p4d110p0o25****, value={"errMsg":"ETL: DTS--0001: Error while executing user ETL: starttime not found in cco_consult_platform_0002.web_chat_session_0263\ncause:\n\tRuntimeException: starttime not found in cco_consult_platform_0002.web_chat_session_0263","jobId":"ed611zroy2m****","maxRetryTime":7200,"module":"full","retryCount":14,"retryTarget":"srcDB","retryTime":135,"retrying":true}

DTS-RETRY-ERR-0084:User (.*)? does not have (.*)? privilege on

可能原因:任務配置的資料庫帳號許可權不足。

解決方案:根據報錯資訊中缺少的許可權,給DTS任務使用的帳號進行授權。

報錯樣本:

id=34441****, jobId=r5g11018w2m****, value={"errMsg":"[1528a0144000****][11.202.XX.XX:3053][polardbx]ERR-CODE: [TDDL-5108][ERR_CHECK_PRIVILEGE_FAILED_ON_TABLE] User test@'100.104.XX.XX' does not have 'REPLICATION_CLIENT' privilege on table 'person'. Database is *. @error code:5108","jobId":"fr611dvxq2d****","maxRetryTime":7200,"module":"reader","retryCount":24,"retryTarget":"srcDB","retryTime":220,"retrying":true}

DTS-RETRY-ERR-0085:execute statement failed (.*)? modify decimal column is disabled

可能原因:目標表不允許執行修改列的DDL操作。

解決方案:

  • 方法一:臨時允許目標表執行報錯資訊中的DDL操作。

  • 方法二:在不影響業務且源表執行完相關DDL操作後釋放任務,並清空目標庫表的資料,然後重新建立任務。

    說明

    同步任務也可以在源表執行完相關DDL操作後,使用修改同步對象功能解決此問題。詳情請參見如何解決同步執行個體關於表的報錯?

報錯樣本:

id=34445****, jobId=qa1u5qhp276****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtsqa1u5qhp276p****/alter table `ectouch_data`.`order_v0_data` modify column `ka_commission_rate` DECIMAL(11, 4) default 0.00 comment 'ka**'\ncause:\n\tSQLException: [15018, 202211030027061921681310090345394****] modify decimal column is disabled, col=ka_commission_rate, oldType=decimal(11,2), newType=decimal(11,4)","jobId":"nd7k53au27e****","maxRetryTime":43200,"module":"writer","retryCount":3104,"retryTarget":"destDB","retryTime":31341,"retrying":true}

DTS-RETRY-ERR-0086:Query execution was interrupted (.*)? max_statement_time exceeded

可能原因:查詢SQL語句的已耗用時間逾時。

解決方案:執行set max_statement_time=0命令不限制查詢SQL啟動並執行時間,並重新啟動任務。

報錯樣本:

id=34445****, jobId=v4kg7039n3m****, value={"errMsg":"Query execution was interrupted, max_statement_time exceeded@error code:3006","jobId":"wchy7vcw20m****","maxRetryTime":1800,"module":"reader","retryCount":2,"retryTarget":"srcDB","retryTime":3,"retrying":true}

DTS-RETRY-ERR-0087:execute statement failed (.*)? Cannot find the object

可能原因1:目標對象不存在。

解決方案1:檢查報錯資訊中的目標對象是否存在。

可能原因2:任務使用的帳號許可權不足。

解決方案2:檢查任務使用的帳號是否具有足夠的許可權。

報錯樣本:

id=34447****, jobId=q7j108h020a****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: null\ncause:\n\tSQLServerException: Cannot find the object \"lhrdme-test-client-C01.dbo.send_document_task\" because it does not exist or you do not have permissions.","jobId":"q8i1043620d****","maxRetryTime":86400,"module":"writer","retryCount":163,"retryTarget":"destDB","retryTime":1636,"retrying":true}

DTS-RETRY-ERR-0088:can not find disperser for column

可能原因:目標表和源表的列不相容。

解決方案:

  • 方法一:檢查是否可以通過列映射功能解決問題,詳情請參見庫表列映射

  • 方法二:在業務允許的前提條件下,根據源表結構修改目標庫中報錯表的結構,然後重新設定任務(重新啟動任務無效)。

報錯樣本:

id=34447****, jobId=tpe1121dl2f****, value={"errMsg":"database-framework: DTS-61001: can not find disperser for column:hold_court_time TIME_WITH_TIMEZONE nullable as hold_court_time of table:public.lms_lc_case valueType= value=null","jobId":"rj9113j7m28****","maxRetryTime":7200,"module":"full","retryCount":161,"retryTarget":"destDB","retryTime":1608,"retrying":true}

DTS-RETRY-ERR-0089:BatchUpdateException (.*)? Cannot insert explicit value for identity column

可能原因:SQL Server表自增欄位預設不能插入資料。

解決方案:將報錯資訊中的表的IDENTITY_INSERT屬性修改為ON,然後重新啟動任務。

報錯樣本:

id=34453****, jobId=jn81159sr3m****, value={"errMsg":"common: DTS-11005: Cannot insert explicit value for identity column in table 'Card_Msyy' when IDENTITY_INSERT is set to OFF.\ncause:\n\tBatchUpdateException: Cannot insert explicit value for identity column in table 'Card_Msyy' when IDENTITY_INSERT is set to OFF.","jobId":"gl111n9sb33****","maxRetryTime":7200,"module":"full","retryCount":99,"retryTarget":"destDB","retryTime":2686,"retrying":true}

DTS-RETRY-ERR-0090:The query has timed out

可能原因:源庫發生變更,導致無法查詢資料。

解決方案:等待DTS自動重試。

報錯樣本:

id=34450****, jobId=lh9n33tj30o****, value={"errMsg":"The query has timed out.@error code:0","jobId":"b27g31tn30l****","maxRetryTime":43200,"module":"reader","retryCount":27,"retryTarget":"srcDB","retryTime":810,"retrying":true}

DTS-RETRY-ERR-0091:Transaction (.*)? was deadlocked on lock resources with another process

可能原因:資料庫事務出現死結。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

id=34453****, jobId=jn81159sr3m****, value={"errMsg":"common: DTS-11005: Transaction (Process ID 187) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.\ncause:\n\tSQLServerException: Transaction (Process ID 187) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.","jobId":"gl111n9sb33****","maxRetryTime":7200,"module":"full","retryCount":1,"retryTarget":"destDB","retryTime":10,"retrying":true}

DTS-RETRY-ERR-0093:get table (.*)? detail info failed (.*)? relation (.*)? does not exist

可能原因:報錯資訊中的表不存在。

解決方案:檢查源庫和目標庫中是否存在報錯資訊中的表。若目標庫中不存在該表,請手動建表後重新啟動任務。

報錯樣本:

id=34488****, jobId=z65o4ny9c1o****, value={"errMsg":"replicate-greenplum: DTS-70002: get table [schema=hobby_om, database=hobby_om, table=tp_3321167_ogl_sys_user] detail info failed.\ncause:\n\tPSQLException: ERROR: relation \"hobby_om.tp_3321167_ogl_sys_user\" does not exist\n  Position: 15","jobId":"jdag45haa17****","maxRetryTime":7200,"module":"writer","retryCount":62,"retryTarget":"destDB","retryTime":615,"retrying":true}

DTS-RETRY-ERR-0097:execute statement failed (.*)? unsupported delete without primary keys defined

可能原因:待同步或遷移的表不具備主鍵或唯一約束。

解決方案:為待同步或遷移的表添加主鍵或唯一約束,然後重新啟動任務。

報錯樣本:

id=34484****, jobId=l69119srl3n****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtss6x11x32l3858ap*/delete from `zx`.`tb_abc` where `a` = 7 and `b` = 7 and `c` = 7 and `d` = 7\ncause:\n\tSQLException: ADB30Engine(1): meet error, deleteSQL:/*dts_id=dtss6x11x32l3858ap*/delete from `zx`.`tb_abc` where `a` = 7 and `b` = 7 and `c` = 7 and `d` = 7, error detail message:[15018, 2022110315214019216806122303453480359] table => zx.tb_abc unsupported delete without primary keys defined\n\tSQLException: [15018, 2022110315214019216806122303453480359] table => zx.tb_abc unsupported delete without primary keys defined","jobId":"zyu118d2u31****","maxRetryTime":7200,"module":"writer","retryCount":11,"retryTarget":"destDB","retryTime":101,"retrying":true}

DTS-RETRY-ERR-0098:get table (.*)? detail info failed (.*)? The specified topic does not exist

可能原因:DataHub的Topic不存在。

解決方案:請檢查報錯資訊中的Topic是否存在,若不存在請建立Topic,並重新啟動任務。建立Topic的操作,請參見Topic操作

報錯樣本:

id=34474****, jobId=oh811gu0n14****, value={"errMsg":"replicate-datahub: DTS-70002: get table [bobo_data.bill_record] detail info failed.\ncause:\n\tResourceNotFoundException: [httpStatus:404, requestId:20221103112918ae38dc0b7925****, errorCode:NoSuchTopic, errorMessage:The specified topic does not exist.]","jobId":"z3w1153fq1o****","maxRetryTime":7200,"module":"writer","retryCount":4,"retryTarget":"destDB","retryTime":30,"retrying":true}

DTS-RETRY-ERR-0099:execute statement failed (.*)? column (.*)? is not nullable

可能原因:目標端寫入值為null的列具有非空約束。

解決方案:去除目標端報錯列的非空約束,然後重新啟動任務。

報錯樣本:

 id=34470****, jobId=db411ak8d33****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtspfb11r2bq3qj*****/replace into `jlg`.`new_collect_wxprefe` (`upload_time`,`upload_id`,`robot_id`,`jlg_wx_id`,`name`,`link`,`pid`,`origin_id`,`worktype_id`,`id`) values (null, 0, 0, 54842, '****', '', -1, 0, '', 2309713)\ncause:\n\tSQLException: ADB30Engine(22): meet error, insertSQL:/*dts_id=dtspfb11r2bq3qj****/replace into `jlg`.`new_collect_wxprefe` (`upload_time`,`upload_id`,`robot_id`,`jlg_wx_id`,`name`,`link`,`pid`,`origin_id`,`worktype_id`,`id`) values (null, 0, 0, 54842, '****', '', -1, 0, '', 2309713), error detail message:[15018, 2022110310293219216812802603151898161] syntax error :column 'NEW_COLLECT_WXPREFE.UPLOAD_TIME' is not nullable, can not set null\n\tSQLException: [15018, 2022110310293219216812802603151898161] syntax error :column 'NEW_COLLECT_WXPREFE.UPLOAD_TIME' is not nullable, can not set null","jobId":"ozn11934r3e****","maxRetryTime":7200,"module":"writer","retryCount":58,"retryTarget":"destDB","retryTime":573,"retrying":true}

DTS-RETRY-ERR-0100:execute statement failed (.*)? rename table (.*)? target table (.*)? already exists

可能原因:RENAME的目標表名稱已存在,無法執行RENAME操作。

解決方案:請確認報錯資訊中重名的表是否可以刪除。若可以刪除,請刪除該表並重新啟動任務。

報錯樣本:

id=34497****, jobId=q3d10wi911k****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtswg2p8k1ve9ko****/rename table `sdinfo`.`sd_manager_group` to `sdinfo`.`sd_manager_grop_1103`\ncause:\n\tSQLException: [15018, 2022110321094219216822816803453937381] target table sdinfo.sd_manager_grop_1103 already exists","jobId":"e9u10c7k11y****","maxRetryTime":1800,"module":"writer","retryCount":179,"retryTarget":"destDB","retryTime":1972,"retrying":true}

DTS-RETRY-ERR-0101:execute statement failed (.*)? The MySQL server is running with the LOCK_WRITE_GROWTH option

可能原因:目標端磁碟空間不足。

解決方案:升級目標端的磁碟空間,然後重新啟動任務。

報錯樣本:

id=34490****, jobId=woqu1l38176****, value={"errMsg":"transaction-replicate: DTS-70003: 22 execute transaction has excess max transaction retry time [150] cause:transaction-replicate: DTS-70004: execute statement failed, may try it again\ncause:\n\tRecoverableAnyAllException: transaction-replicate: DTS-70004: execute statement failed, may try it again\n\tSQLException: MysqlEngine(22): meet error, insertSQL:/* DTS-writer-vwqv11b6176****-MysqlEngine(22) */insert into `bi`.`b_resource_usage` (`created_time`,`updated_time`,`user_id`,`usage`,`resource_id`,`id`,`collect_day`,`accounting_day`)  VALUES  ('2022-02-12 06:00:00.0', '2022-02-12 06:00:00.0', x'53454C462D386F7855365F7173756452663438434B556A4B3351727A506A5873325135694B31674B79787674622D5041', 0, 4, 40386002, '2022-02-12', '2022-02-11') , error detail message:The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execute this statement\n\tSQLException: The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execute this statement","jobId":"vwqv11b6176****","maxRetryTime":43200,"module":"writer","retryCount":215,"retryTarget":"destDB","retryTime":4892,"retrying":true}

DTS-RETRY-ERR-0102:execute statement failed (.*)? IDENTITY_INSERT is already ON for table

可能原因:DTS執行個體只允許一個表將IDENTITY_INSERT屬性設定為ON,而當前已有表將IDENTITY_INSERT屬性設定為ON。

解決方案:將執行個體的sink.batch.enable參數設定為false後重新啟動任務。設定方法,請參見修改執行個體參數

報錯樣本:

id=34493****, jobId=jn81159sr3m****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*euy110qoz3vv6ywSQLServerPrepareStatementSqlEngine(30)*/delete top(1) from [HTOLMain].[dbo].[Cl_Order] where [OrderID] = ?\ncause:\n\tSQLServerException: IDENTITY_INSERT is already ON for table 'HTOLMain.dbo.Cl_Order'. Cannot perform SET operation for table 'HTOLMain.dbo.Cl_OrderItem'.","jobId":"euy110qoz3v****","maxRetryTime":7200,"module":"writer","retryCount":143,"retryTarget":"destDB","retryTime":1429,"retrying":true}

DTS-RETRY-ERR-0103:execute statement failed (.*)? column (.*)? of relation (.*)? does not exist

可能原因:目標端的表缺少列。

解決方案:根據源端的表結構和報錯資訊,在目標表中添加缺少的列,然後重新啟動任務。

報錯樣本:

id=34488****, jobId=a3y11921r1e****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*f3l11pceo1h85zi29*/insert into default$default.\"_QuestionTypesToQuestions\" (a,b) values(?, ?)\ncause:\n\tPSQLException: ERROR: column \"a\" of relation \"_QuestionTypesToQuestions\" does not exist\n  Position: 79","jobId":"f3l11pceo1h****","maxRetryTime":7200,"module":"writer","retryCount":143,"retryTarget":"destDB","retryTime":1436,"retrying":true}

DTS-RETRY-ERR-0104:The transaction log for database (.*)? is full

可能原因:資料庫的交易記錄儲存空間或磁碟空間已滿。

解決方案:擴容交易記錄儲存空間或磁碟空間,然後重新啟動任務。

報錯樣本:

id=34523****, jobId=f9q11u7qs3w****, value={"errMsg":"common: DTS-11005: The transaction log for database 'HTOLMain' is full due to 'AVAILABILITY_REPLICA'.\ncause:\n\tSQLServerException: The transaction log for database 'HTOLMain' is full due to 'AVAILABILITY_REPLICA'.","jobId":"fg6119hpu3f****","maxRetryTime":7200,"module":"full","retryCount":10,"retryTarget":"destDB","retryTime":251,"retrying":true}

DTS-RETRY-ERR-0105:Could not allocate space for object

可能原因:目標端磁碟空間已滿。

解決方案:升級目標端的磁碟空間,然後重新啟動任務。

報錯樣本:

id=34523****, jobId=f9q11u7qs3w****, value={"errMsg":"common: DTS-11005: Could not allocate space for object 'dbo.Cl_OrderItem'.'ix_orderitem_productId' in database 'HTOLMain' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.\ncause:\n\tSQLServerException: Could not allocate space for object 'dbo.Cl_OrderItem'.'ix_orderitem_productId' in database 'HTOLMain' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.","jobId":"fg6119hpu3f****","maxRetryTime":7200,"module":"full","retryCount":102,"retryTarget":"destDB","retryTime":2663,"retrying":true}

DTS-RETRY-ERR-0106:Failed to seek sqlserver position (.*)? Fetch backup log failed (.*)? seek binlog for timestamp

可能原因:任務剛啟動時SQLServer根據lsn找不到日誌。

解決方案:調整備份頻率,修改為與資料備份一致修改備份頻率

報錯樣本:

  • 找不到位點:

    \"dts-k-src: DTS-52102: retry final failed\n" +
                    "cause:\n" +
                    "\tRecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-52061: Failed to seek sqlserver position\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52061: Failed to seek sqlserver position\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52411: Fetch backup log failed\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52061: seek binlog for timestamp 1666324457\"
  • 無效的scn:

    Fetch *** SQL Server backup log faild, fetch ls  ***

DTS-RETRY-ERR-0107:Fetch (.*)? SQL Server backup log faild (.*)? fetch ls

可能原因:任務運行過程中SQLServer根據lsn找不到日誌。

解決方案:調整備份頻率,修改為與資料備份一致修改備份頻率

報錯樣本:

  • 找不到位點

    \"dts-k-src: DTS-52102: retry final failed\n" +
                    "cause:\n" +
                    "\tRecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-52061: Failed to seek sqlserver position\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52061: Failed to seek sqlserver position\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52411: Fetch backup log failed\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52061: seek binlog for timestamp 1666324457\"
  • 無效的scn

    Fetch *** SQL Server backup log faild, fetch ls  ***

DTS-RETRY-ERR-0108:Column (.*)? For input string

可能原因:報錯資訊中欄位的資料格式錯誤。

解決方案:請在目標端修改報錯欄位的資料格式,然後重新啟動任務。

報錯樣本:

**** (Column => PMS_GOODS.RETAIL_INV_BUFFER), For input string: "0.4300"
    SQLException: [15018, 2022110322280517202801611203151004951] (Column => PMS_GOODS.RETAIL_INV_BUFFER), For input string: "0.4300"

DTS-RETRY-ERR-0109:In process of processing data (.*)? failed (.*)? Column (.*)? not found

可能原因:目標端的表缺少列。

解決方案:根據源端的表結構和報錯資訊,在目標表中添加缺少的列,然後重新啟動任務。

報錯樣本:

\"framework: DTS-31009: In process of processing data (recordRange: 627098562752151552) failed\n" +
                "cause:\n" +
                "\tCriticalAnyAllException: common: DTS-11005: Column \"\"1658159900711\"\" not found [42122-193]\n" +
                "\tDbException: Column \"\"1658159900711\"\" not found [42122-193]\n" +
                "\tJdbcSQLException: Column \"\"1658159900711\"\" not found [42122-193]\"

DTS-RETRY-ERR-0110:In process of processing data (.*)? failed (.*)? RedisServerException (.*)? Slave connection closed by source redis

可能原因:源端串連已斷開。

解決方案:請檢查源端資料庫健康狀態,並適當調大client-output-buffer-limit slave

說明

您可以執行config set client-output-buffer-limit 'slave 0 0 0'命令,關閉複製輸出緩衝區的限制。

報錯樣本:

jobId=fo710zuy27x****, code=04, errMsg=framework: DTS-31009: In process of processing data (recordRange: 278730492608512) failed
cause:
    RedisServerException: redis: DTS-10015: Slave connection closed by source redis, please read /var/log/messages and redis server logs to find which caused this error.The most probable reason is insufficient memory, storage or slave output buffer(config set client-output-buffer-limit 'slave X X X').
    RedisCannotRetryException: redis: DTS-10009: Read 1037 bytes , but only 374 already read.
    IOException: Read 1037 bytes , but only 374 already read.

DTS-RETRY-ERR-0111:execute statement failed (.*)? null value in column (.*)? violates not-null constraint

可能原因:任務運行過程中有非法資料產生。

解決方案:請檢查目標端和源端的表結構是否一致。

報錯樣本:

jobId=a5oe7ffq12v****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*a5oe7ffq12vy4*****/insert into "resico_ods"."crm_cooperated_zlb" ("id","customer_id","zlb_info","remark","delete_flag","created_by","created_at","updated_by","updated_at","version","entp_name") values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
cause:
    PSQLException: ERROR: null value in column "customer_id" violates not-null constraint  (seg3 172.26.254.254:4001 pid=308567)
  Detail: Failing row contains (158738364208513****, null, {"authAt":"2022-11-01 17:58:38","customerId":"15611694496311****..., null, 0, 0, 2022-11-01 17:58:47, 0, 2022-11-01 17:58:47+08, 0, ****).

DTS-RETRY-ERR-0112:execute statement failed (.*)? null value in column (.*)? For input string

可能原因:任務運行過程中有非法資料產生。

解決方案:請檢查目標端和源端的表結構是否一致。

報錯樣本:

jobId=jg910k6427x****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtsb5r10cq5265*****/replace into `kuaishou_ad_dev`.`rel_ks_creative_master_account` (`master_id`,`account_id`,`updated_at`,`created_at`,`id`,`deleted_at`) values (3, 9999999999999, '2022-10-31 17:53:46.0', '2022-10-31 17:53:46.0', 28, null)
cause:
    SQLException: ADB30Engine(25): meet error, insertSQL:/*dts_id=dtsb5r10cq5265*****/replace into `kuaishou_ad_dev`.`rel_ks_creative_master_account` (`master_id`,`account_id`,`updated_at`,`created_at`,`id`,`deleted_at`) values (3, 9999999999999, '2022-10-31 17:53:46.0', '2022-10-31 17:53:46.0', 28, null), error detail message:[15018, 2022110118193219216818212703151020339] (Column => REL_KS_CREATIVE_MASTER_ACCOUNT.ACCOUNT_ID), For input string: "9999999999999"
    SQLException: [15018, 2022110118193219216818212703151020339] (Column => REL_KS_CREATIVE_MASTER_ACCOUNT.ACCOUNT_ID), For input string: "9999999999999"

DTS-RETRY-ERR-0113:table not exist

可能原因:目標庫中不存在報錯資訊中的表。

解決方案:檢查目標端是否存在報錯資訊中的表,若不存在:

  • 方法一:如果是同步任務,可以使用修改同步對象功能將報錯的表從同步對象中移除,詳情請參見移除同步對象

  • 方法二:手動在目標庫建立與源庫相同結構的表,然後重新啟動任務。

報錯樣本:

SQLException: ADB30Engine(2): meet error, insertSQL:/*dts_id=dtsd4f12w00f8t*****/replace into `test_lianxi`.`ltkanduoduo1_full_att_realtime_std_hourly_report_v1` (`date`,`adgroup_id`,`hijack_agent_account_id`,`lowage_tuid_num`,`created_at`,`is_hijack`,`member_order_num`,`active_1day`,`hour`,`updated_at`,`last_week_active`,`id`,`campaign_id`,`create_role_num`,`url_report_num`,`dtu`,`os`,`cp_report_num`,`active`,`consumption`,`start_play_num`,`app_register_num`,`agent_account_id`,`ad_id`,`new_user_pass_num`,`login_num`,`key_action_num`,`yesterday_active`,`consumption_real`) values ('2022-11-01', 'att_4900014', 6, 0, '2022-11-01 17:00:07', 0, 0, 1, 17, '2022-11-01 17:15:16', 0, 146183, 'att_4900014', 0, 0, '4900014', 0, 0, 0, 0.00, 0, 0, 6, 'att_4900014', 0, 0, 0, 0, 0.00)error detail message:[15018, 2022110117151619216817607303151114839] table not exist => test_lianxi.ltkanduoduo1_full_att_realtime_std_hourly_report_v1
    SQLException: [15018, 2022110117151619216817607303151114839] table not exist => test_lianxi.ltkanduoduo1_full_att_realtime_std_hourly_report_v1

DTS-RETRY-ERR-0114:execute statement failed (.*)? Unknown column (.*)? in

可能原因:目標表中缺少列。

解決方案:在目標表中添加缺少的列,然後重新啟動任務。

報錯樣本:

jobId=vme10ye5l8x****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /* DTS-writer-vme10ye5l8xjbx7-MysqlEngine(29) */delete from `alt_coupon`.`report_coupon_order_statistics` WHERE `date` = '2022-10-31' and `ordamount` = 166050 and `usemem` = 45 and `expirecon` = 29573 and `allcon` = 21180 and `ordmem` = 45 and `coupon_name` = x'E887AAE58AA9E782B9E9A490E5858DE9858DE588B8' and `payamount` = 143550 and `usecon` = 45 and `__#alibaba_rds_row_id#__` = 14030 and `coupon_id` = 60 and `allmem` = 8470 and `ordcon` = 45 limit 1
cause:
    SQLException: MysqlEngine(29): meet error, deleteSQL:/* DTS-writer-vme10ye5l8xjbx7-MysqlEngine(29) */delete from `alt_coupon`.`report_coupon_order_statistics` WHERE `date` = '2022-10-31' and `ordamount` = 166050 and `usemem` = 45 and `expirecon` = 29573 and `allcon` = 21180 and `ordmem` = 45 and `coupon_name` = x'E887AAE58AA9E782B9E9A490E5858DE9858DE588B8' and `payamount` = 143550 and `usecon` = 45 and `__#alibaba_rds_row_id#__` = 14030 and `coupon_id` = 60 and `allmem` = 8470 and `ordcon` = 45 limit 1error detail message:Unknown column '__#alibaba_rds_row_id#__' in 'where clause'
    SQLSyntaxErrorException: Unknown column '__#alibaba_rds_row_id#__' in 'where clause'

DTS-RETRY-ERR-0123:The server principal (.*)? is not able to access the database (.*)? under the current security context

可能原因:擷取中繼資料資訊失敗。

解決方案:請檢查任務使用的資料庫帳號許可權是否滿足要求,並檢查源庫中的表是否存在。

報錯樣本:

\"common: DTS-11005: framework: DTS-31008: fetch column info from target table [U8CLOUD32CS].[dbo].[po_settlebill_b] failed\n" +
                "cause:\n" +
                "\tAnyCoreException: framework: DTS-31008: fetch column info from target table [U8CLOUD32CS].[dbo].[po_settlebill_b] failed\n" +
                "\tRuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: The server principal \"\"erp_user\"\" is not able to access the database \"\"U8CLOUD32CS\"\" under the current security context.\n" +
                "\tSQLServerException: The server principal \"\"erp_user\"\" is not able to access the database \"\"U8CLOUD32CS\"\" under the current security context.\"

DTS-RETRY-ERR-0124:Change data capture is only available in the Enterprise

可能原因:當前SQL Server執行個體不支援開啟CDC(Change Data Capture,變更資料擷取)。

解決方案:檢查該執行個體版本是否支援開啟CDC。

報錯樣本:

This instance of SQL Server is the Web Edition (64-bit). Change data capture is only available in the Enterprise, Developer, Enterprise Evaluation, and Standard editions.

DTS-RETRY-ERR-0125:MongoCommandException (.*)? interrupted at shutdown

可能原因:MongoDB執行個體狀態異常。

解決方案:請檢查MongoDB執行個體是否運行正常。

報錯樣本:

\"common: DTS-11005: com.mongodb.MongoCommandException: Command failed with error 11600: 'interrupted at shutdown' on server 172.19.XX.XX:XXX. The full response is { \"\"ok\"\" : 0.0, \"\"errmsg\"\" : \"\"interrupted at shutdown\"\", \"\"code\"\" : 11600, \"\"codeName\"\" : \"\"InterruptedAtShutdown\"\" }\n" +
                "cause:\n" +
                "\tSQLException: com.mongodb.MongoCommandException: Command failed with error 11600: 'interrupted at shutdown' on server 172.19.XX.XX:XXX. The full response is { \"\"ok\"\" : 0.0, \"\"errmsg\"\" : \"\"interrupted at shutdown\"\", \"\"code\"\" : 11600, \"\"codeName\"\" : \"\"InterruptedAtShutdown\"\" }\n" +
                "\tMongoCommandException: Command failed with error 11600: 'interrupted at shutdown' on server 172.19.XX.XX:XXX. The full response is { \"\"ok\"\" : 0.0, \"\"errmsg\"\" : \"\"interrupted at shutdown\"\", \"\"code\"\" : 11600, \"\"codeName\"\" : \"\"InterruptedAtShutdown\"\" }\"

DTS-RETRY-ERR-0126:MongoCommandException (.*)? Index must have unique name

可能原因:需要建立的索引已經存在,無法重複建立。

解決方案:檢查是否有同名的索引。若有可以刪除的同名索引,請刪除後重新啟動任務。

報錯樣本:

com.mongodb.MongoCommandException: Command failed with error 86: 'Index must have unique name. The existing index: { v: 2, key: { fund_wallet_id: 1 }, name: "fund_wallet_id_1", ns: "airmart-watbg-prod.funds_pools", background: true } has the same name as the requested index: { v: 2, key: { fund_wallet_id: -1 }, name: "fund_wallet_id_1", ns: "airmart-watbg-prod.funds_pools", background: true }' on server 172.19.XX.XX:XXX. The full response is { "raw" : { "mgset-62336776/10.42.XX.XX:XXX,10.42.XX.XX:XXX" : { "ok" : 0.0, "errmsg" : "Index must have unique name.****

DTS-RETRY-ERR-0127:MongoCommandException (.*)? cloud instance error (.*)? disk locked

可能原因:MongoDB執行個體的磁碟被鎖定,無法寫入資料。

解決方案:檢查MongoDB執行個體的磁碟空間是否已滿,若磁碟空間已滿,請擴容執行個體並重新啟動任務。

報錯樣本:

\"common: DTS-11005: com.mongodb.MongoCommandException: Command failed with error 13: 'cloud instance error, disk locked, plz check and upgrade your disk quota, extra info: not authorized on xmol to execute command { insert: \"\"thesisRedirectLogs\"\", ordered: true, bypassDocumentValidation: true, $db: \"\"xmol\"\" }' on server 172.16.19.23:42976. The full response is { \"\"operationTime\"\" : { \"\"$timestamp\"\" : { \"\"t\"\" : 1666348500, \"\"i\"\" : 3392 } }, \"\"ok\"\" : 0.0, \"\"errmsg\"\" : \"\"cloud instance error, disk locked, plz check and upgrade your disk quota, extra info: ****

DTS-RETRY-ERR-0128:Unknown database

可能原因:資料庫不存在。

解決方案:建立報錯資訊中的資料庫,並重新啟動任務。

報錯樣本:

jobId=sw01037i31w****, code=04, errMsg=com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'table3'

DTS-RETRY-ERR-0129:The table (.*)? is full

可能原因1:目標執行個體的磁碟空間已滿。

解決方案1:擴容目標執行個體並重新啟動任務。若為自建MySQL資料庫,請參考如下步驟處理;若為RDS MySQL資料庫,請升級配置,詳情請參見變更配置

  1. 登入自建MySQL資料庫。

  2. 在設定檔my.ini中,查看資料的儲存路徑(即datadir後的路徑)。

  3. 進入資料存放區路徑,清理硬碟空間。

    警告

    請謹慎執行,以免誤刪資料,從而導致資料丟失。

  4. 重啟MySQL資料庫,然後重新啟動DTS任務。

報錯樣本1:

jobId=zoa119hcy3m****, code=03, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-zoa119hcy3m**** */insert ignore into `statistics`.`t_mem_keyword_log`(`createtime`,`keyword_id`,`mem_id`,`ip`,`channel`,`id`,`source`,`TYPE`) VALUES (?,?,?,?,?,?,?,?), reason: The table 't_mem_keyword_log' is full
cause:
    BatchUpdateException: The table 't_mem_keyword_log' is full
    SQLException: The table 'DTSTEST' is full

可能原因2:暫存資料表達到使用上限。

解決方案2:適當調大暫存資料表的限制。若為自建MySQL資料庫,請參考如下步驟處理;若為RDS MySQL資料庫,請在參數值範圍內適當調大tmp_table_sizemax_heap_table_size的運行參數值,詳情請參見修改執行個體參數

  1. 登入自建MySQL資料庫。

  2. 檢查設定檔my.initmp_table_sizemax_heap_table_size的參數值。

    說明

    tmp_table_sizemax_heap_table_size的預設值均為16 MB。

    • 若參數不存在(即為預設值):在設定檔my.ini[mysqld]下方添加如下範例程式碼:

      tmp_table_size = 256M
      max_heap_table_size = 256M
    • 若參數值較小:適當調大參數值。

  3. 重啟MySQL資料庫,然後重新啟動DTS任務。

報錯樣本2:

You are using the MEMORY (HEAP) storage engine; in this case you need to increase the value of the max_heap_table_size system variable. See Section 5.1.3, “Server System Variables”.
ERROR 1114 (HY000) at line 1720: The table 'XXXX' is full

DTS-RETRY-ERR-0130:BatchUpdateException (.*)? entry too large

可能原因:寫入的資料量過大,超過設定的值。

解決方案:將max_allowed_packet參數的值設定的滿足要求。

報錯樣本:如下報錯資訊,表示寫入的資料量(7956719)過大,超過了設定的值(6291456)。

jobId=t7s100u5319****, code=03, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-t7s100u5319**** */insert ignore into `dcr_file_service`.`t_file_task`(`reason`,`company_id`,`create_time`,`entity_name`,`user_name`,`end_time`,`remark`,`sort`,`type`,`finish_time`,`enabled_flag`,`start_time`,`update_time`,`update_user`,`user_code`,`user_id`,`id`,`create_user`,`json_param`,`status`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: entry too large, the max entry size is 6291456, the size of data is 7956719
cause:
    BatchUpdateException: entry too large, the max entry size is 6291456, the size of data is 7956719
    SQLException: entry too large, the max entry size is 6291456, the size of data is 7956719

DTS-RETRY-ERR-0131:BatchUpdateException (.*)? No space left on device

可能原因:DTS磁碟空間已滿。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=wb611p3ef1h****, code=03, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-wb611p3ef1h**** */insert ignore into `dcs_ford_sale`.`tm_dcc_alloc_price_bak11`(`id`,`material_id`,`dealer_id`,`price_type`,`buy_type`,`origin`,`eff_date_from`,`eff_date_to`,`price`,`qty`,`qty_remain`,`status`,`psbi_create_date`,`create_date`,`update_date`,`ver`,`ver_date`,`update_by`,`src`,`sap_no`,`invoice_company`,`contract_no`,`xx_price_type`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: Can't create/write to file '/tmp/MLHer8ya' (OS errno 28 - No space left on device)
cause:
    BatchUpdateException: Can't create/write to file '/tmp/MLHer8ya' (OS errno 28 - No space left on device)
    SQLException: Can't create/write to file '/tmp/MLHer8ya' (OS errno 28 - No space left on device)

DTS-RETRY-ERR-0133:fetch column info from target table (.*)? failed (.*)? Invalid object name

可能原因:目標庫中報錯資訊中的表不存在。

解決方案:在目標庫中根據報錯資訊和源庫中的表資訊建立表,然後重新啟動任務。

報錯樣本:

jobId=sbl11ksji16****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table [datang].[dbo].[SheBao_Source_1] failed
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from target table [datang].[dbo].[SheBao_Source_1] failed
    RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'datang.dbo.SheBao_Source_1'.
    SQLServerException: Invalid object name 'datang.dbo.SheBao_Source_1'.

DTS-RETRY-ERR-0134:fetch column info from target table (.*)? failed

可能原因1:目標表缺少列,導致DTS擷取列資訊失敗。

解決方案1:請確保報錯資訊中的表中存在相應的列,然後重新啟動任務。

可能原因2:DTS任務使用的資料庫帳號許可權不足,導致DTS擷取列資訊失敗。

解決方案2:請確保任務中使用的資料庫帳號有該表的讀寫權限,然後重新啟動任務。

可能原因3:目標執行個體max_stack_depth的參數值過小。

解決方案3:請適當調大目標執行個體max_stack_depth的參數值,然後重新啟動任務。RDS PostgreSQL資料庫修改參數的方法,請參見設定執行個體參數

可能原因4:Elasticsearch中的目標索引為滾動索引。

解決方案4:DTS暫不支援滾動索引。

可能原因5:目標表中存在與源表精度不相容的列。

解決方案5:請檢查源表與目標表列的精度,並根據實際情況修改目標表的精度,然後重新啟動任務。

報錯樣本:

jobId=im6t3ajs21m****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table dts_work.exercise_question_links failed
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from target table dts_work.exercise_question_links failed
    NullPointerException: null

DTS-RETRY-ERR-0135:Packet for query is too large max_allowed_packet

可能原因:max_allowed_packet的值小於packet的實際值。

解決方案:請確保max_allowed_packet的值設定的大於packet的實際值,然後重新啟動任務。

報錯樣本:

"framework: DTS-30011: currentRunningSQL: /* DTS-full-akl10d9m27u**** */insert ignore into `zeda`.`log`(`response_data`,`respond_message`,`ua_client`,`request_message`,`ip`,`module`,`ua_os`,`type`,`router`,`request_time`,`user_id`,`p_router`,`ua_device`,`response_time`,`id`,`api`,`username`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: Packet for query is too large (74,694,508 > 67,108,864). You can change this value on the server by setting the 'max_allowed_packet' variable.
cause:
    BatchUpdateException: Packet for query is too large (74,694,508 > 67,108,864). You can change this value on the server by setting the 'max_allowed_packet' variable.
    PacketTooBigException: Packet for query is too large (74,694,508 > 67,108,864). You can change this value on the server by setting the 'max_allowed_packet' variable."

DTS-RETRY-ERR-0136:Get db all schemas error (.*)? Query execution was interrupted

可能原因:查詢源庫Schema逾時。

解決方案:請重新啟動任務。

報錯樣本:

DTS-1020009 Get db all schemas error,err msg:Query execution was interrupted, maximum statement execution time exceeded

DTS-RETRY-ERR-0137:Increment Context Is Not Running (.*)? DTS-52710 (.*)? log fetch failed

可能原因:根據時間戳記拉取oplog失敗。

解決方案:請確保local庫的oplog.rs存在,並調大拉取oplog的時間,並重新設定任務。

說明

DTS不支援單機版MongoDB為源的增量任務。

報錯樣本:

jobId=x4l112aas19****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..:
cause:
    CriticalAnyAllException: mongo-reader: DTS-52710: log fetch failed
    CriticalAnyAllException: mongo-reader: DTS-52702: First Record Timestamp not correct, startPosition is : Timestamp{value=7160854279467565057, seconds=1667266311, inc=1}, record ts is : null

DTS-RETRY-ERR-0138:Increment Context Is Not Running (.*)? DTS-52233 (.*)? Invalid row format

可能原因:binlog_format的參數值不為row。

解決方案:請將binlog_format的參數值設定為row,並使用KILL命令關閉源庫所有的Session,然後重新設定任務。

報錯樣本:

jobId=v2o117kyi13****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..:
cause:
    CriticalAnyAllException: mysql-reader: DTS-52210: fetch log failed
    IOException: mysql-reader: DTS-52233: Invalid row format : "INSERT INTO `apowo_manager_log` (`user`, `time`, `cname`, `c`, `m`, `uri`, `get`, `post`) VALUES ('zhangzhicheng', 1667284446, '****', 'activityconfig', 'repush', 'activityconfig/repush/22073', '[]', '[]')"
    CriticalAnyAllException: mysql-reader: DTS-52233: Invalid row format : "INSERT INTO `apowo_manager_log` (`user`, `time`, `cname`, `c`, `m`, `uri`, `get`, `post`) VALUES ('zhangzhicheng', 1667284446, '****', 'activityconfig', 'repush', 'activityconfig/repush/22073', '[]', '[]')"

DTS-RETRY-ERR-0139:Increment Context Is Not Running (.*)? First Record Timestamp not correct

可能原因:源庫的Binlog已不存在,導致DTS增量資料擷取擷取不到對應資料。

解決方案:請重新設定任務。

報錯樣本:

\"bisId【e3g10360215****】run fail by 【****】,errorMsg:cluster [q4110pkw21t****] for channel [e3g10360215****] status [failed] is abnormal. errMsg:dts-k-src: DTS-52111: Increment Context Is Not Running..: \n" +
                "cause:\n" +
                "\tCriticalAnyAllException: mongo-reader: DTS-52710: log fetch failed\n" +
                "\tCriticalAnyAllException: mongo-reader: DTS-52702: First Record Timestamp not correct, startPosition is : Timestamp{value=7156853964107939841, seconds=1666334915, inc=1}, record ts is : null\"

DTS-RETRY-ERR-0140:Mirror Meta error (.*)? table or view does not exist

可能原因1:表或者視圖不存在 。

解決方案1:請檢查對應表或者視圖是否存在。

可能原因2:任務使用的資料庫帳號許可權不足 。

解決方案2:檢查任務使用的帳號是否有對應表或者視圖的讀取許可權。

報錯樣本:

jobId=s9v11f9at1f****, code=15, errMsg=dts-k-src: DTS-52102: retry final failed
cause:
    RecoverableAnyAllException: dts-k-src: DTS-52110: OracleRecordExtractor Init Error: oracle-reader: DTS-52050: Mirror Meta error,
    CriticalAnyAllException: oracle-reader: DTS-52050: Mirror Meta error,
    CriticalAnyAllException: oracle-reader: DTS-52050: Mirror meta failed
    CriticalAnyAllException: oracle-reader: DTS--0002: Can not create connection to source database, case by ORA-00942: table or view does not exist

    SQLSyntaxErrorException: ORA-00942: table or view does not exist

DTS-RETRY-ERR-0141:This type of SQL is not supported by group shard

可能原因:源庫執行的SQL在目標庫group shard不支援。

解決方案:

  • 同步任務:

    • 方法一:使用修改同步對象功能將對應的表從同步對象中移除,詳情請參見移除同步對象

    • 方法二:確認是否可以將對應SQL跳過。若不可以,請重新設定任務。

  • 遷移任務:確認是否可以將對應SQL跳過。若不可以,請重新設定任務。

報錯樣本:

\"dts-k-src: DTS-52102: retry final failed\n" +
                "cause:\n" +
                "\tRecoverableAnyAllException: dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52060: initial fetch position failed\n" +
                "\tCriticalAnyAllException: mysql-reader: DTS-52060: initial fetch position failed\n" +
                "\tIOException: java.sql.SQLException: Proxy ERROR: This type of SQL is not supported by group shard\n" +
                "\tSQLException: Proxy ERROR: This type of SQL is not supported by group shard\"

DTS-RETRY-ERR-0142:Specified key was too long

可能原因:MySQL的InnoDB引擎支援的表索引欄位最大長度為767位元組。

解決方案:對於5.6和5.7版本的RDS MySQL,您可以將目標執行個體innodb_large_prefix參數的值修改為ON,然後重新啟動任務。修改參數的方法,請參見修改執行個體參數

報錯樣本:

Specified key was too long; max key length is 767 bytes.

DTS-RETRY-ERR-0143:empty binlog list in oss

可能原因:DTS無法從OSS擷取指定的Binlog。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

id=35746****, jobId=dya1106628z****, value={"errMsg":"dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52222: empty binlog list in oss, src rds instance = rm-bp1w2cl72i6in****, start time = 1669619166, end time = 1669905430","jobId":"t1d11sbo28z****","maxRetryTime":43200,"module":"reader","retryCount":30,"retryTarget":"srcDB","retryTime":1235,"retrying":true}

DTS-RETRY-ERR-0144:empty binlog list in

可能原因:DTS無法擷取指定的Binlog。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

id=357528****, jobId=udy119n2167*****, value={"errMsg":"dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52222: empty binlog list in","jobId":"jer122l6i1j****","maxRetryTime":43200,"module":"reader","retryCount":2,"retryTarget":"srcDB","retryTime":592,"retrying":true}

DTS-RETRY-ERR-0145:Unknown column (.*)? in

可能原因:當前任務配置的過濾條件中的欄位,在源庫中不存在。

解決方案:

  • 同步任務:使用修改同步對象功能,在已選擇對象中右擊待同步對象,並在彈出的對話方塊中修改過濾條件,然後根據提示完成配置。

  • 遷移任務:請重新設定任務,並使用正確的過濾條件。

報錯樣本:

id=35746****, jobId=wzl12d7ie1g****, value={"errMsg":"framework: DTS-30020: execute sql:/* DTS-full-ykb12oe6k1n**** */SELECT `output`,`failed_times`,`input`,`created_time`,`biz_code`,`modified_time`,`next_exec_time`,`tx_id`,`biz_id`,`processor`,`tx_state` FROM `test_x7sy_com`.`sy_order_mgmt_local_tx_log` WHERE  ( create_time<1667232000 ) --> (null, null) record range id = 403027421250872****, fetchSize = -2147483648\ncause:\n\tMySQLSyntaxErrorException: Unknown column 'create_time' in 'where clause'","jobId":"ykb12oe6k1n****","maxRetryTime":43200,"module":"full","retryCount":110,"retryTarget":"srcDB","retryTime":1103,"retrying":true}

DTS-RETRY-ERR-0146:Connection reset

可能原因

解決方案

當前任務與源庫的串連被重設。

確保DTS可以正常串連源庫,然後重新啟動DTS任務

源庫的白名單中未完整添加DTS的IP位址區段。

確保添加DTS伺服器的IP位址區段均已添加至源庫的安全設定中,然後重新啟動DTS任務

報錯樣本:

id=35749****, jobId=j5h12gsco18****, value={"errMsg":"Connection reset ClientConnectionId:b7773844-5bf4-4439-83a7-f153f69f9601@error code:0","jobId":"cjs127rbb1k****","maxRetryTime":43200,"module":"reader","retryCount":61,"retryTarget":"srcDB","retryTime":915,"retrying":true}

DTS-RETRY-ERR-0147:You have an error in your SQL syntax

可能原因:當前任務配置的過濾條件中的欄位,在源庫中不存在。

解決方案:

  • 同步任務:使用修改同步對象功能,在已選擇對象中右擊待同步對象,並在彈出的對話方塊中修改過濾條件,然後根據提示完成配置。

  • 遷移任務:請重新設定任務,並使用正確的過濾條件。

報錯樣本:

id=35749****, jobId=k66125z4n1p****, value={"errMsg":"framework: DTS-30020: execute sql:/* DTS-full-aqb12ji5f1t**** */SELECT **** fetchSize = -2147483648\ncause:\n\tSQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ****}

DTS-RETRY-ERR-0148:You are not using binary logging

可能原因:當前MySQL資料庫執行個體不支援執行show binary logs命令。

解決方案:請升級MySQL資料庫執行個體的版本,然後重新啟動任務。

報錯樣本:

id=35757****, jobId=udy119n2167****, value={"errMsg":"You are not using binary logging@error code:1381","jobId":"jer122l6i1j****","maxRetryTime":43200,"module":"reader","retryCount":6,"retryTarget":"srcDB","retryTime":40,"retrying":true}

DTS-RETRY-ERR-0149:no partition for partitioning key

可能原因:目標端欄位所對應的分區不存在。

解決方案:在目標端添加相應的分區,然後重新啟動任務。

報錯樣本:

id=35756****, jobId=tlld17b825q****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*izmq1hx325617*****/insert into \"public\".\"order_req_pur_dt_his\" (\"bill_plu_id\",\"bill_no\",\"serial_no\",\"plu_id\",\"plu_code\",\"plu_name\",\"bar_code\",\"pack_id\",\"pack_code\",\"pack_name\",\"pack_rate\",\"unit\",\"pack_num\",\"pur_num\",\"audit_pack_num\",\"audit_num\",\"in_pur_price\",\"pur_in_total\",\"audit_in_total\",\"pur_type\",\"sal_price\",\"sal_total\",\"audit_sal_total\",\"stk_count\",\"udp1\",\"udp2\",\"remark\",\"rec_org_id\",\"pur_date\") values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\ncause:\n\tPSQLException: ERROR: no partition for partitioning key  (seg0 172.30.XX.XX:XXX pid=2776787)","jobId":"izmq1hx325617r6","maxRetryTime":1800,"module":"writer","retryCount":125,"retryTarget":"destDB","retryTime":1374,"retrying":true}

DTS-RETRY-ERR-0150:nitial dictionary failed

可能原因:源端資料庫連接失敗,導致DTS初始化失敗。

解決方案:請確保DTS可以正常串連源庫,然後重新啟動任務。

報錯樣本:

id=35755****, jobId=qs2p4wxqw83****, value={"errMsg":"dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52051: initial dictionary failed","jobId":"zzo12r9zo1g****","maxRetryTime":7200,"module":"reader","retryCount":30,"retryTarget":"srcDB","retryTime":1136,"retrying":true}

DTS-RETRY-ERR-0151:The Network Adapter could not establish the connection

可能原因:由於網路原因,導致DTS無法正常串連資料庫。

解決方案:請確保DTS可以正常串連資料庫,然後重新啟動任務。

報錯樣本:

id=35755****, jobId=j16i46pbc63****, value={"errMsg":"IO Error: The Network Adapter could not establish the connection@error code:17002","jobId":"t1g12r9ka1q****","maxRetryTime":43200,"module":"reader","retryCount":47,"retryTarget":"srcDB","retryTime":1881,"retrying":true}

DTS-RETRY-ERR-0152:cannot open archived log (.*)? No such file or directory

可能原因:Oracle記錄檔不存在。

解決方案:請重新設定任務。

報錯樣本:

id=35754****, jobId=tzv11059292****, value={"errMsg":"ORA-01284: file /sapdb/oracle/oraarch/EP2001/1_139037_1063496101.dbf cannot be opened\nORA-00308: cannot open archived log '/sapdb/oracle/oraarch/EP2001/1_139037_1063496101.dbf'\nORA-27037: unable to obtain file status\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 7\nORA-06512: at \"SYS.DBMS_LOGMNR\", line 82\nORA-06512: at line 2\n@error code:","jobId":"q83122m2k19****","maxRetryTime":43200,"module":"reader","retryCount":11208,"retryTarget":"srcDB","retryTime":2999,"retrying":true}

DTS-RETRY-ERR-0154:odps (.*)? The specified partition does not exist

可能原因:目標庫中報錯資訊中的表不存在。

解決方案:在目標庫中根據報錯資訊和源庫中的表資訊建立表,然後重新啟動任務。

報錯樣本:

jobId=n97107yf21k3bp8, code=07, errMsg=common: DTS-10009: transaction-replicate: DTS-70004: execute upload failed, may try it againcause:    RecoverableAnyAllException: transaction-replicate: DTS-70004: execute upload failed, may try it again    TransactionReplicateException: transaction-replicate: DTS-70003: 13 execute transaction has excess max transaction retry time [100] cause:odps: DTS-11014: Failed to get the upload session for cli_analytics.scene_template_codes_log caused by RequestId=2022120100085115d5d90b00f4ad31, ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist.RequestId=2022120100085115d5d90b00f4ad31, ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist.    CriticalAnyAllException: odps: DTS-11014: Failed to get the upload session for cli_analytics.scene_template_codes_log caused by RequestId=2022120100085115d5d90b00f****, ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist.RequestId=2022120100085115d5d90b00f4****, ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist.

DTS-RETRY-ERR-0155:OOM command not allowed when used memory

可能原因:目標端Redis記憶體不足。

解決方案:請升級目標端Redis記憶體,然後重新啟動任務。雲資料庫 Tair(相容 Redis)的擴容方法,請參見變更執行個體配置

報錯樣本:

jobId=vov11qjl30c****, code=04, errMsg=redis.clients.jedis.exceptions.JedisDataException: OOM command not allowed when used memory > 'maxmemory'.

DTS-RETRY-ERR-0156:This function has none of

可能原因:當前資料庫的配置不正確。

解決方案:手動執行set log_bin_trust_function_creators = 1,然後重新啟動任務。

報錯樣本:

jobId=x9a11lf4308****, code=02, errMsg=This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)(advice: set the parameter log_bin_trust_function_creators = 1.). This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)(advice: set the parameter log_bin_trust_function_creators = 1.). This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)(advice: set the parameter log_bin_trust_function_creators = 1.). This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)(advice: set the parameter log_bin_trust_function_creators = 1.).

DTS-RETRY-ERR-0157:Incorrect column name

可能原因:同步或遷移對象中存在特殊字元的列名,如空格等。

解決方案:請修改列名,然後重新啟動任務。

報錯樣本:

jobId=or81144k303****, code=02, errMsg=[13000, 202211302315061921681441470345301****] Incorrect column name: ` 一级ç. 

DTS-RETRY-ERR-0158:Failed to get global table lock for

可能原因:當前資料庫不支援1個事務操作多個表。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=q8k11raf309****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table snt8888_eb.amazon_ad_keywords_report_detail failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from target table snt8888_eb.amazon_ad_keywords_report_detail failed    CriticalAnyAllException: full-mysql: DTS-61008: Fetch meta info failed    SQLException: Failed to get global table lock for 'snt8888_eb.amazon_ad_keywords_report_detail'jobId=q8k11raf309k04d, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table ajcx_wms.4px_oda failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from target table ajcx_wms.4px_oda failed    CriticalAnyAllException: full-mysql: DTS-61008: Fetch meta info failed    SQLException: Failed to get global table lock for 'ajcx_wms.4px_oda'

DTS-RETRY-ERR-0159:Column (.*)? cannot be null

可能原因:目標端有非空約束,導致寫入null值時報錯。

解決方案:修改目標欄位約束,去掉not null約束。

報錯樣本:

jobId=ccf11aiz18j****, code=04, errMsg=DTS-077105: Record Replicator error in table CARGONEST_RATE.SCYX_FLIGHT. cause by [java.sql.SQLIntegrityConstraintViolationException: Column 'USE' cannot be null] About more information in ****

DTS-RETRY-ERR-0161:First Record Timestamp not correct

可能原因:擷取不到位點的日誌資訊。

解決方案:請確認日誌狀態。若日誌狀態異常,請修複日誌後重新啟動任務;若日誌狀態正常,請重新設定任務。

報錯樣本:

jobId=eq2126nwc16****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: cause:    CriticalAnyAllException: mongo-reader: DTS-52710: log fetch failed    CriticalAnyAllException: mongo-reader: DTS-52702: First Record Timestamp not correct, startPosition is : Timestamp{value=7171932524837339137, seconds=1669845666, inc=1}, record ts is : null

DTS-RETRY-ERR-0162:can not find index by table

可能原因:Elasticsearch缺少INDEX。

解決方案:手動在Elasticsearch中建立INDEX,然後重新啟動任務。

報錯樣本:

jobId=v3w11of923k****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table operation.inspection_product_index/inspection_product failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from target table operation.inspection_product_index/inspection_product failed    RuntimeException: es: DTS-11014: can not find index by table=inspection_product_index, schema=null, database=operation, mapping=inspection_product    CriticalAnyAllException: es: DTS-11014: can not find index by table=inspection_product_index, schema=null, database=operation, mapping=inspection_product

DTS-RETRY-ERR-0163:The sts token is denied

可能原因:STS Token到期。

解決方案:請重新啟動任務。

報錯樣本:

jobId=nspj5ej820r****, code=07, errMsg=nosql-replicate: DTS-70004: execute statement failedcause:    NoPermissionException: [httpStatus:403, requestId:20221201101811180ec50b2153****, errorCode:NoPermission, errorMessage:The sts token is denied: STS.NUvD4Yo4qGKZ1jhhM662g****]

DTS-RETRY-ERR-0164:Too many connections

可能原因:資料庫的串連數量達到上限。

解決方案:請檢查資料庫配置的最大串連數以及資料庫佔用串連的數量,根據結果做相應的修改後(如修改資料庫的最大串連數的參數max_connections),然後重新啟動任務。

報錯樣本:

jobId=yof12l14o19****8635, code=03, errMsg=jdbc-burst: DTS-61015: Create connection failed (url: 172.18.XX.XX:XXX, user: yj_gusb_root)cause:    MySQLNonTransientConnectionException: Too many connections

DTS-RETRY-ERR-0165:seek binlog for timestamp (.*)? not exits

可能原因:源MySQL資料庫執行個體的Binlog已被清理。

解決方案:

  • 方法一:恢複源MySQL資料庫執行個體的Binlog,然後重新啟動任務。

  • 方法二:重新設定任務。

報錯樣本:

jobId=sptc8p3x129****, code=15, errMsg=dts-k-src: DTS-52102: retry final failedcause:    RecoverableAnyAllException: dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52212: MySQL binlog 1660282274 is not exists.    CriticalAnyAllException: mysql-reader: DTS-52212: MySQL binlog 1660282274 is not exists.    IOException: java.sql.SQLException: seek binlog for timestamp 1660282274, not exits.    SQLException: seek binlog for timestamp 1660282274, not exits.

DTS-RETRY-ERR-0167:the Table (.*)? Information Loaded failed in Target DB

可能原因:目標端的Schema不存在。

解決方案:請確保目標端的Schema存在,且任務配置正確,然後重新啟動任務。

報錯樣本:

jobId=lg612z5iq1x****, code=07, errMsg=DTS-071001: the Table anta_mw_stock_prod.stk_virtualstocklocklog Information Loaded failed in Target DB. cause by [[17001, 2022120116320501021111713303151290766] schema not exist => anta_mw_stock_prod] About more information in ****

DTS-RETRY-ERR-0168:A UNIQUE INDEX must include all columns in the table's partitioning function

可能原因:唯一索引沒有包含表分區函數中的所有列。

解決方案:修改索引唯一索引,使其包含表分區函數中的所有列。

報錯樣本:

jobId=beu12x8vd1l****, code=02, errMsg=A UNIQUE INDEX must include all columns in the table's partitioning function. 

DTS-RETRY-ERR-0169:Can not find where column (.*)? in before image of record

可能原因:叢集索引列不包含主鍵列,而SQL Server的UPDATE語句只能解析出叢集索引列的前鏡像值。

解決方案:修改叢集索引使其包含主鍵列,然後重新啟動任務。

報錯樣本:

id=35938****, jobId=slr122e2h5y****, value={"errMsg":"transaction-framework: DTS-70029: Can not find where column  in before image of record LazyParseRecord {offset [465035], operationType [UPDATE], checkpoint [0@483462@0008b7dd:00019ab8:0002@1670195470000]}","jobId":"jqr12oeww55****","maxRetryTime":43200,"module":"writer","retryCount":19,"retryTarget":"destDB","retryTime":182,"retrying":true}

DTS-RETRY-ERR-0170:Cannot insert duplicate key row in object

可能原因:由於存在開啟的觸發器,導致主鍵衝突而寫入失敗。

解決方案:請禁用或刪除觸發器,然後重新啟動任務。

報錯樣本:

id=35945****, jobId=p2611skq18s****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dc4112pf18696rtSQLServerPrepareStatementSqlEngine(23)*/insert into [zjnb].[dbo].[yw_hddz_fsdz]([dzdm], [cxh], [dzbh], [id], [ywbh], [bgid]) values(?, ?, ?, ?, ?, ?)\ncause:\n\tSQLServerException: Cannot insert duplicate key row in object 'dbo.yw_hddz_fsdz' with unique index 'yw_hddz_fsdz_index'. The duplicate key value is (22DP01833, 0).","jobId":"dc4112pf186****","maxRetryTime":1800,"module":"writer","retryCount":98,"retryTarget":"destDB","retryTime":1511,"retrying":true}

DTS-RETRY-ERR-0171:The server experienced an unexpected error when processing the request

可能原因:增量資料擷取模組異常。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

id=35956****, jobId=kk411xezf49****, value={"errMsg":"dts-k-src: DTS-52122: Error on Send.The server experienced an unexpected error when processing the request","jobId":"vag1121af47****","maxRetryTime":43200,"module":"reader","retryCount":0,"retryTarget":"dstore","retryTime":1,"retrying":true}

DTS-RETRY-ERR-0172:The INSERT statement conflicted with the FOREIGN KEY constraint

可能原因:由於目標庫中有已啟用的外鍵,導致資料寫入失敗。

解決方案:請禁用或刪除外鍵,然後重新啟動任務。

報錯樣本:

id=35955****, jobId=s0s12libr5m****, value={"errMsg":"common: DTS-11005: The INSERT statement conflicted with the FOREIGN KEY constraint \"file_qc_number_testing_id_a9e3abb7_fk_dimension_testing_testing_id\". The conflict occurred in database \"tyDbTest\", table \"dbo.dimension_testing\", column 'testing_id'.\ncause:\n\tBatchUpdateException: The INSERT statement conflicted with the FOREIGN KEY constraint \"file_qc_number_testing_id_a9e3abb7_fk_dimension_testing_testing_id\". The conflict occurred in database \"tyDbTest\", table \"dbo.dimension_testing\", column 'testing_id'.","jobId":"rn9120w5g5k****","maxRetryTime":43200,"module":"full","retryCount":49,"retryTarget":"destDB","retryTime":1751,"retrying":true}

DTS-RETRY-ERR-0173:unsupported value convert for

可能原因:源端和目標端表結構不一致,DTS無法進行類型轉換。

解決方案:請修改目標端表結構,使源端和目標端表結構保持一致,然後重新啟動任務。

報錯樣本:

id=35955****, jobId=a1s126u5s54****, value={"errMsg":"jdbc-utils: DTS-11001: jdbc-utils: DTS-11001: Adb30StringDisperse: unsupported value convert for [2023-01-01 01:00:00] convert to [create_time DATE nullable as create_time] targetDatabase:crm targetTable:orders\ncause:\n\tJdbcUtilsException: jdbc-utils: DTS-11001: Adb30StringDisperse: unsupported value convert for [2023-01-01 01:00:00] convert to [create_time DATE nullable as create_time]","jobId":"c28120pby5n****","maxRetryTime":43200,"module":"writer","retryCount":223,"retryTarget":"destDB","retryTime":2240,"retrying":true}

DTS-RETRY-ERR-0174:ETL (.*)? not found in

可能原因:ETL的資料處理語句錯誤,應使用源庫的表名和列名。

解決方案:請糾正資料處理語句,然後重新啟動任務。修改ETL配置的方法,請參見在DTS遷移或同步任務中配置ETL

報錯樣本:

jobId=x9611z8z28s****, code=07, errMsg=framework: DTS-31009: In process of processing data (recordRange: 572237829218343****) failedcause:    CriticalAnyAllException: ETL: DTS--0001: Error while executing user ETL: dt_now not found in fillmed_import.membership_customer_detail    RuntimeException: dt_now not found in fillmed_import.membership_customer_detail

DTS-RETRY-ERR-0175:Connect db failure

可能原因:無法串連到源端資料庫。

解決方案:請檢查源庫資訊和設定是否正常,詳情請參見源庫串連性檢查

報錯樣本:

jobId=hedw7wu7z60****, code=02, errMsg=DTS-002003 Connect db failure, unknow db url jdbc:postgresql://100.100.XX.XX:XXX/testdb, please vaild url. Original error: The connection attempt failed. For more information please refer to ****

DTS-RETRY-ERR-0176:too many connections for role

可能原因:資料庫的串連數量達到上限。

解決方案:請檢查資料庫配置的最大串連數以及資料庫佔用串連的數量,根據結果做相應的修改後(如修改資料庫的最大串連數的參數max_connections),然後重新啟動任務。

報錯樣本:

jobId=yyh128cwc5h****, code=02, errMsg=init job fail FATAL: too many connections for role "inventory_prod_ad_readonly"

DTS-RETRY-ERR-0177:numeric field overflow

可能原因:目標端和源端表結構不匹配。

解決方案:請修改目標端表的結構,使目標端列的類型和源庫一致,然後重新啟動任務。

報錯樣本:

jobId=er411gx1251****, code=03, errMsg=full-greenplum: DTS-65708: copy error, recordRange= **** cause:    PSQLException: ERROR: numeric field overflow ****

DTS-RETRY-ERR-0178:JedisDataException (.*)? ERR (.*)? command keys must in same slot

可能原因:傳入的key不在同一個slot。

解決方案:Lua指令碼為保證事務的原子性,傳入的key必須在同一個slot中,請修改相應的文法後重新啟動任務。

報錯樣本:

jobId=xd6121n2d5e****, code=04, errMsg=redis.clients.jedis.exceptions.JedisDataException: ERR 'EVAL' command keys must in same slot

DTS-RETRY-ERR-0179:ADB30Engine (.*)? COMMA is not value type

可能原因:SQL語法錯誤(逗號不是合法的取實值型別)。

解決方案:請糾正相應的SQL,然後重新啟動任務。

報錯樣本:

jobId=chzi9boc27z****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtsc0pg9ems27y*****/replace into `inhouse`.`grain_category_template` **** error detail message:[15018, 202212051752081921681240150345324****] syntax error :syntax error => COMMA is not value type, pos:558 row: 0 and ceil:1    SQLException: [15018, 202212051752081921681240150345324****] syntax error :syntax error => COMMA is not value type, pos:558 row: 0 and ceil:1

DTS-RETRY-ERR-0180:Schema matched failed

可能原因:目標端Schema匹配失敗。

解決方案:修改目標端表結構使其與源端表結構一致,然後重新啟動任務。

重要

開啟多表歸併功能的任務不支援DDL操作。

報錯樣本:

jobId=iicu948h28d****, code=07, errMsg=DTS-071007: Schema matched failed. cause by [Can not find column TSSQQKSM_DM<-->tssqqksm_dm[true] in target table table_group_zrryh_mx.f_rt_zs_tdssq_qccx] About more information in ****

DTS-RETRY-ERR-0181:invalid hexadecimal digit

可能原因:SQL語法錯誤(無效的十六進位數字)。

解決方案:請糾正相應的SQL,然後重新啟動任務。

報錯樣本:

jobId=i9c12l3kn1m****, code=03, errMsg=full-postgresql: DTS-65708: copy error, recordRange={id:364619936051914****,schema:saasv4.C_REPORT,indexName:,fields:[DJNAME STRING nullable unique],leftValues:[null],rightValues:[null],partition:null}, copySql=/* DTS-full-i9c12l3kn1m**** *//* DTS-full-i9c12l3kn1m**** */COPY "saasv4".c_report ("fanganid","fanganname","fangandes","djname","updated","fangan") FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"'cause:    PSQLException: ERROR: invalid hexadecimal digit: "<"  Where: COPY c_report, line 1, column fangan: "<?xml version="1.0" encoding="utf-8"?>\015\012<TfrxReport Version="4.3" DotMatrixReport="False" IniF..."

DTS-RETRY-ERR-0182:command denied to user

可能原因1:任務中使用的資料庫帳號許可權不足。

解決方案1:

  • 方法一:給任務中使用的資料庫帳號授予足夠的許可權,然後重新啟動任務。

  • 方法二:請使用許可權充足的資料庫帳號配置任務。

可能原因2:報錯資訊中的庫為系統庫(如sys等)或者不需要同步或遷移的資料庫。

解決方案2:

  • 同步任務:使用修改同步對象功能將報錯的庫從同步對象中移除,然後重新啟動任務。移除同步對象的方法,請參見移除同步對象

  • 遷移任務:重新設定任務,待遷移的對象不選擇報錯資訊中的庫。

報錯樣本:

jobId=sj112p70c50****, code=02, errMsg=REFERENCES command denied to user 'qianyi_dts'@'100.104.XX.XX' for table 'dbdj_lance.extauth_user'. ****

DTS-RETRY-ERR-0183:MySQL table (.*)? binlog column count check error

可能原因:報錯資訊的表在Binlog的列數與在DTS中的列數不一致。

解決方案:檢查報錯資訊中是否有local count is 0

  • 有:請確保任務使用的帳號有該表的SELECT許可權,然後重新啟動任務。

  • 沒有:

    • 同步任務:使用修改同步對象功能將報錯的表從同步對象中移除,然後重新啟動任務。移除同步對象的方法,請參見移除同步對象

    • 遷移任務:重新設定任務,待遷移的對象不選擇報錯的表。

報錯樣本:

jobId=oh9111i723x****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52210: fetch log failedcause:    IOException: mysql-reader: DTS-52234: MySQL table dxl_shops.sys_module binlog column count check error, local count is 0, but binlog count is 15, at offset 162@25064****.    CriticalAnyAllException: mysql-reader: DTS-52234: MySQL table dxl_shops.sys_module binlog column count check error, local count is 0, but binlog count is 15, at offset 162@25064****.

DTS-RETRY-ERR-0184:CLIENT_PLUGIN_AUTH is required

可能原因:資料庫連接異常。

解決方案:檢查MySQL資料庫執行個體版本。DTS支援的MySQL資料庫執行個體版本,請參見同步方案概覽遷移方案概覽訂閱者案概覽

報錯樣本:

id=36512****, jobId=r5e120d1u5u****, value={"errMsg":"CLIENT_PLUGIN_AUTH is required@error code:0","jobId":"xu812lh7i5p****","maxRetryTime":43200,"module":"reader","retryCount":745,"retryTarget":"srcDB","retryTime":9911,"retrying":true}

DTS-RETRY-ERR-0185:ADB30Engine (.*)? For input string

可能原因:報錯資訊涉及的目標表結構不相容源庫的值。

解決方案:修改目標表列的類型,使其與源庫類型保持一致,然後重新啟動任務。

報錯樣本:

jobId=ugui7hl1h83****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtserev7v26j8i*****/replace into `ylh_order`.`recycle_standing_book` **** cause:    SQLException: ADB30Engine(15): meet error, insertSQL:/*dts_id=dtserev7v26j8i*****/replace into `ylh_order`.`recycle_standing_book` **** error detail message:[15018, 202212160839511921682250660315152****] (Column => RECYCLE_STANDING_BOOK.DB_ID), For input string: "14033071031736****"    SQLException: [15018, 202212160839511921682250660315152****] (Column => RECYCLE_STANDING_BOOK.DB_ID), For input string: "14033071031736****"

DTS-RETRY-ERR-0186:not authorized on (.*)? to execute command

可能原因:任務中使用的資料庫帳號許可權不足。

  • 方法一:給任務中使用的資料庫帳號授予足夠的許可權,然後重新啟動任務。

  • 方法二:請使用許可權充足的資料庫帳號配置任務。

報錯樣本:

jobId=j99123a7161****, code=03, errMsg=common: DTS-11005: com.mongodb.MongoCommandException: Command failed with error 13: 'not authorized on zcscenter_log to execute command { insert: "UserBehaviorLog", ordered: true, bypassDocumentValidation: true, $db: "zcscenter_log" }' on server 172.16.XX.XX:XXX. The full response is { "operationTime" : { "$timestamp" : { "t" : 1671158607, "i" : 1 } }, "ok" : 0.0, "errmsg" : "not authorized on zcscenter_log to execute command { insert: \"UserBehaviorLog\", ordered: true, bypassDocumentValidation: true, $db: \"zcscenter_log\" }", "code" : 13, "codeName" : "Unauthorized", "$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1671158607, "i" : 1 } }, "signature" : { "hash" : { "$binary" : "FMyelyFIm+zD****/XOiGFd****=", "$type" : "00" }, "keyId" : { "$numberLong" : "717355978057161****" } } } } **** 

DTS-RETRY-ERR-0187:The TCP/IP connection to the host (.*)? has failed

可能原因:資料庫無法正常串連。

解決方案:請根據報錯資訊進行排查。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=vtsv5pgl22m****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from source table [EMWSHANGHAI].[dbo].[OILM] failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from source table [EMWSHANGHAI].[dbo].[OILM] failed    RuntimeException: jdbc-burst: DTS-61015: Create connection failed (url: 172.16.XX.XX:XXX, user: sa)cause:    SQLServerException: The TCP/IP connection to the host 172.16.XX.XX, port XXX has failed. Error: "The driver received an unexpected pre-login response. Verify the connection properties and check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. This driver can be used only with SQL Server 2005 or later.". ****

DTS-RETRY-ERR-0188:null value in column (.*)? violates not-null constraint

可能原因:目的端有非空約束的列在任務中被過濾,或在源端沒有相應列的值。

解決方案:請根據實際業務情況進行修改,確保待同步或遷移對象的資料滿足目標端的約束限制,然後重新啟動任務。

報錯樣本:

jobId=hn612sbb16q****, code=03, errMsg=full-greenplum: DTS-65708: copy error, recordRange={id:266622423602823****,schema:ods_ecology1.workflow_yozotopdfconfig,indexName:,fields:[],leftValues:[null],rightValues:[null],partition:null}, copySql=/* DTS-full-hn612sbb16q**** *//* DTS-full-hn612sbb16q**** */COPY "ods_ecology1"."workflow_yozotopdfconfig" ("useWps","useyozo") FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update cause:    PSQLException: ERROR: null value in column "useWps" violates not-null constraint  Detail: Failing row contains (0, null).  Where: COPY workflow_yozotopdfconfig, line 1

DTS-RETRY-ERR-0189:ON CONFLICT DO UPDATE command cannot affect row a second time

可能原因:源端和目標端的唯一索引不一致。

解決方案:請根據實際業務情況進行修改,確保源端和目標端的唯一索引一致,然後重新啟動任務。

報錯樣本:

jobId=hn612sbb16q****, code=03, errMsg=full-greenplum: DTS-65708: copy error, recordRange={id:664004810422773****,schema:ods_ecology1.workflow_requestlog,indexName:,fields:[LOGID INTEGER not nullable],leftValues:[null],rightValues:[null],partition:null}, copySql=/* DTS-full-hn612sbb16q**** *//* DTS-full-hn612sbb16q**** */COPY "ods_ecology1"."workflow_requestlog" ("OPERATORDEPT","OPERATEDATE","speechattachmente9","isSubmitDirect","uuid","NODEID","SIGNDOCIDS","REMARKLOCATION","clientip","SHOWORDER","ANNEXDOCIDS","SIGNWORKFLOWIDS","AGENTTYPE","REMARK","RECEIVEDPERSONS_1","seclevel","SPEECHATTACHMENT","LOGTYPE","RECEIVEDPERSONS","REMARK1","OPERATETIME","operatorJob","DESTNODEID","OPERATORTYPE","LOGID","operatorSub","remarkquote","fulltextannotation","isRobotNode","REQUESTLOGID","RECEIVEDPERSONIDS","WORKFLOWID","OPERATOR","ISMOBILE","AGENTORBYAGENTID","HandWrittenSign","REQUESTID") FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update cause:    PSQLException: ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time  Hint: Ensure that no rows proposed for insertion within the same command have duplicate constrained values.  Where: COPY workflow_requestlog, line 6

DTS-RETRY-ERR-0190:There is no column (.*)? in table

可能原因:目標端的表缺少列。

解決方案:根據源端的表結構和報錯資訊,在目標表中添加缺少的列,然後重新啟動任務。

報錯樣本:

jobId=t0q12vjgl98****, code=07, errMsg=DTS-077100: Record Replicator error in table uat_r3_oms_oc_ip.oc_b_tob_order. cause by [com.alibaba.amp.increment.exception.AmpException: There is no column `echo_status` in table `r3_rc_datasync`.`oc_b_tob_order`] About more information in ****

DTS-RETRY-ERR-0191:Host (.*)? is blocked because of many connection

可能原因:資料庫的串連數量達到上限。

解決方案:請檢查資料庫配置的最大串連數以及資料庫佔用串連的數量,根據結果做相應的修改後(如修改資料庫的最大串連數的參數max_connections),然後重新啟動任務。

報錯樣本:

jobId=kv512kmj15n****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from source table shineserver.tbl_invdata_d_2023_01_07 failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from source table shineserver.tbl_invdata_d_2023_01_07 failed    CriticalAnyAllException: full-mysql: DTS-00000: Fetch meta info failed    DBCommonException: jdbc-burst: DTS-61015: Create connection failed (url: 172.27.XX.XX:XXX, user: root)    SQLException: null,  message from server: "Host '100.104.XX.XX' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

DTS-RETRY-ERR-0192:Get all databases in (.*)? DB failed

可能原因:擷取源庫資訊失敗。

解決方案:請確保源端資料庫的狀態正常且可以正常串連,然後重新啟動任務。

報錯樣本:

jobId=mmbg34h530g****, code=04, errMsg=DTS-070611: Get all databases in v5x0617 DB failed. Source

DTS-RETRY-ERR-0193:schema (.*)? does not exist

可能原因:源或目標端Schema不存在。

解決方案:請確保源和目標端存在報錯資訊中的Schema,然後重新啟動任務。

報錯樣本:

jobId=tycy1xi5d4w****, code=03, errMsg=full-greenplum: DTS-65708: copy error, recordRange={id:65629572036558****,schema:dtstest.master_ld_pg_test,indexName:,fields:[id BIGINT not nullable primary unique],leftValues:[null],rightValues:[null],partition:null}, copySql=/* DTS-full-tycy1xi5d41**** *//* DTS-full-tycy1xi5d4w**** */COPY "dtstest"."master_ld_pg_test" ("name","id","name2") FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update cause:    PSQLException: ERROR: schema "" does not exist  (seg0 172.25.XX.XX:XXX pid=556)

DTS-RETRY-ERR-0194:WRONGPASS invalid username-password pair or user is disabled

可能原因:Redis的帳號或密碼錯誤。

解決方案:請使用正確的Redis帳號和密碼配置任務。

報錯樣本:

jobId=yji127k830v****, code=04, errMsg=redis: DTS-10015: redis: DTS-10010: WRONGPASS invalid username-password pair or user is disabled.cause:    RedisClientInitiationException: redis: DTS-10010: WRONGPASS invalid username-password pair or user is disabled.

DTS-RETRY-ERR-0195:Create Table Exceed limit

可能原因:目標DataHub的Topic數量超過Project限制。

解決方案:請刪除無效的Topic,然後重新啟動任務。刪除Topic的操作,請參見Topic操作

報錯樣本:

jobId=gta119cz22v****, code=02, errMsg=DTS-1029999 The ddlmove task gta119cz22vg6d4 was finished,but 598 objects failed,error message:[DTS]Create Table Exceed limit, max topics for one project is 500, current is 500 in dts (Status Code: 400; Error Code: ResourceLimit; Request ID: 20230111104946510ec50bfb87****),[DTS]Create Table Exceed limit, max topics for one project is 500, current is 500 in dts (Status Code: 400; Error Code: ResourceLimit; Request ID: 202301111049445d0ec50bfb83****),[DTS]Create Table Exceed limit, max topics for one project is 500, current is 500 in dts (Status Code: 400; Error Code: ResourceLimit; Request 

DTS-RETRY-ERR-0196:user (.*)? does not exist

可能原因1:表或視圖不存在。

解決方案1:請根據具體報錯資訊,補充相應的表或者視圖,然後重新啟動任務。

可能原因2:任務使用的資料庫帳號許可權不足。

解決方案2:請給任務中使用的資料庫帳號授予足夠的許可權,然後重新啟動任務。

報錯樣本:

jobId=ssbc18z7113****, code=02, errMsg=ORA-01918: user 'BOND_EXT_ETL' does not exist. ORA-00942: table or view does not exist

DTS-RETRY-ERR-0197:table or view does not exist

可能原因1:表或視圖不存在。

解決方案1:請根據具體報錯資訊,補充相應的表或者視圖,然後重新啟動任務。

可能原因2:任務使用的資料庫帳號許可權不足。

解決方案2:請給任務中使用的資料庫帳號授予足夠的許可權,然後重新啟動任務。

報錯樣本:

jobId=ssbc18z7113****, code=02, errMsg=ORA-01918: user 'BOND_EXT_ETL' does not exist. ORA-00942: table or view does not exist

DTS-RETRY-ERR-0198:FUNCTION (.*)? does not exist

可能原因:結構遷移的VIEW或FUNCTION有依賴的對象,導致VIEW建立失敗。

解決方案:請分別解除VIEW和FUNCTION的依賴,並重啟結構遷移模組。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=n37x1mlh115****, code=02, errMsg=FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetMemLoginName does not exist. FUNCTION riskcenter.fn_GetDistName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetMemLoginName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetDistName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist.

DTS-RETRY-ERR-0199:fetch column info from source table (.*)? failed

可能原因:源端資料庫連接異常,導致無法從源端擷取對應的列資訊。

解決方案:請重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=vtsv5pgl22m7****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from source table [EMWSHANGHAI].[dbo].[OILM] failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from source table [EMWSHANGHAI].[dbo].[OILM] failed    RuntimeException: jdbc-burst: DTS-61015: Create connection failed (url: 172.16.XX.XX:XXX, user: sa)cause:    SQLServerException: Connection reset ClientConnectionId:b2bb965c-e92a-4311-b499-cff270ff****    SocketException: Connection reset    DBCommonException: jdbc-burst: DTS-61015: Create connection failed (url: 172.16.XX.XX:XXX, user: sa)    SQLServerException: Connection reset ClientConnectionId:b2bb965c-e92a-4311-b499-cff270ff****    SocketException: Connection reset

DTS-RETRY-ERR-0200:value too large for column

可能原因:寫入資料的長度,大於表結構定義中該欄欄位的最大長度。

解決方案:請修改該表異常欄欄位的最大長度,使其滿足資料寫入的需要,然後重新啟動任務。

報錯樣本:

jobId=ckwu1nn2100****, code=07, errMsg=common: DTS-100047: retry 4151 times, 43201510 seconds, which exceed the supposed 43200 secondscause:    TransactionReplicateException: transaction-replicate: DTS-70004: execute statement failed: /*ckwu1nn210048jjOraclePrepareStatementSqlEngine(14)*/insert into ****     SQLException: ORA-12899: value too large for column "XFS_OPEN_PLATFORM_EX"."T_PRODUCT_CHANNEL"."CHANNEL_NAME" (actual: 38, maximum: 32)

DTS-RETRY-ERR-0201:Can not find column (.*)? in target table

可能原因:目標端的表缺少列。

解決方案:根據源端的表結構和報錯資訊,在目標表中添加缺少的列,然後重新啟動任務。

報錯樣本:

jobId=zhml16az11q****, code=07, errMsg=DTS-071007: Schema matched failed. cause by [Can not find column bpmSn<-->bpmSn[true] in target table anta_mw_order_prod.bas_warehouse] About more information in ****

DTS-RETRY-ERR-0203:Table (.*)? does not exist

可能原因:源庫或目標庫部分表不存在。

解決辦法:請根據具體報錯任務類型、任務模組選擇解決方案。

  • 資料同步任務:

    • 增量寫入模組報錯,檢查目標庫中對應的表是否存在且表結構是否一致。若表不存在:

      1. 通過修改同步對象功能,將報錯資訊中的表從同步對象中移除。

      2. 將目標庫中報錯資訊表清空。

      3. 使用修改同步對象功能,將報錯資訊中的表加入到同步對象中。

      4. 恢複任務。

    • 全量遷移模組報錯,檢查源庫和目標庫中對應的表是否存在且表結構是否一致,若表不存在,需要重新設定任務。

  • 資料移轉任務:確保源庫和目標庫待遷移的表結構一致,然後重新設定任務。

報錯樣本:

jobId=x3dl1cbm11r****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table tms_service2.tp_3286333_ogl_logistics_trajectory_2 failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from target table tms_service2.tp_3286333_ogl_logistics_trajectory_2 failed    RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: [17003, 202301110800570100020000460315122****] Table adb.tms_service2.tp_3286333_ogl_logistics_trajectory_2 does not exist

DTS-RETRY-ERR-0204:Disk full (.*)? waiting for someone to free some space

可能原因:目標端磁碟空間已滿。

解決方案:升級目標端的磁碟空間,然後重新啟動任務。

報錯樣本:

jobId=h03q1pas10o****, code=03, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-h03q1pas10o**** */insert ignore into **** cause:    BatchUpdateException: Disk full (tb_ms_video_collect_day_20221221); waiting for someone to free some space... (errno: 189 "Disk full")    SQLException: Disk full (tb_ms_video_collect_day_20221221); waiting for someone to free some space... (errno: 189 "Disk full")    Disk full **** waiting for someone to free some space

DTS-RETRY-ERR-0209:relation (.*)? does not exist

可能原因:目標端的Relation不存在。

解決方案:請根據報錯資訊在目標端建立Relation,然後重新啟動任務。

報錯樣本:

id=37908****, jobId=eo3m1z6t11y****, value={"errMsg":"java.lang.RuntimeException: Table '`wk_crm`.`wk_examine_advanced_config`' with columns [`create_user_id`, `node_handle_type`, `modify_permission_type`, `create_time`, `company_id`, `limit_time_status`, `batch_id`, `advanced_config_id`, `examine_id`, `update_time`, `node_handle_user`, `update_user_id`, `reject_handle_type`, `repeat_handle_type`] and batch exception is {[13000, 202301110018191921681780610345332****] (Column => WK_EXAMINE_ADVANCED_CONFIG.NODE_HANDLE_USER), For input string: ****

DTS-RETRY-ERR-0212:batch exception (.*)? For input string

可能原因:目標端寫入資料的類型與表結構定義的資料類型不一致。

解決方案:請修改目標端表結構,使源端和目標端表結構保持一致,然後重新啟動任務。

報錯樣本:

id=37908****, jobId=eo3m1z6t11y****, value={"errMsg":"java.lang.RuntimeException: Table '`wk_crm`.`wk_examine_advanced_config`' with columns [`create_user_id`, `node_handle_type`, `modify_permission_type`, `create_time`, `company_id`, `limit_time_status`, `batch_id`, `advanced_config_id`, `examine_id`, `update_time`, `node_handle_user`, `update_user_id`, `reject_handle_type`, `repeat_handle_type`] and batch exception is {[13000, 202301110018191921681780610345332****] (Column => WK_EXAMINE_ADVANCED_CONFIG.NODE_HANDLE_USER), For input string: \"161281865257152****,161281865208498****\"}","jobId":"t2pa1xp1112****","maxRetryTime":43200,"module":"full","retryCount":9,"retryTarget":"destDB","retryTime":80,"retrying":true}

DTS-RETRY-ERR-0213:mapper (.*)? of different type

可能原因:目標端寫入資料的類型與表結構定義的資料類型不一致。

解決方案:請修改目標端表結構,使源端和目標端表結構保持一致,然後重新啟動任務。

報錯樣本:

PUT **** {  "error" : {    "root_cause" : [      {        "type" : "illegal_argument_exception",        "reason" : "mapper [user_disease_point_id] of different type, current_type [text], merged_type [long]"      }    ],    "type" : "illegal_argument_exception",    "reason" : "mapper [user_disease_point_id] of different type, current_type [text], merged_type [long]"  },  "status" : 400}

DTS-RETRY-ERR-0214:Stream closed

可能原因:網路連接逾時。

解決方案:請確保源端資料庫的狀態正常且可以正常串連,然後重新啟動任務。

報錯樣本:

**** framework: DTS-31009: In process of processing data (recordRange: 827160178650303****) failedcause:RedisServerException: redis: DTS-10015: redis: DTS-10009: Stream closedRedisCannotRetryException: redis: DTS-10009: Stream closedIOException: Stream closed ****

DTS-RETRY-ERR-0215:wait millis (.*)? active (.*)? maxActive

可能原因:資料庫連接異常。

解決方案:請重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

**** wait millis 300000, active 2, maxActive 100, creating 1, createElapseMillis 26952, createErrorCount 66 ****

DTS-RETRY-ERR-0216:OutOfMemoryError

可能原因:任務運行時遇到超大欄位,導致記憶體溢出。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

java.lang.OutOfMemoryError: Requested array size exceeds VM limit ****

DTS-RETRY-ERR-0222:execute statement failed

可能原因:目標端寫入資料時遇到問題,常見於目標端為AnalyticDB for MySQL時,有非法的時間或日期寫入。

解決方案:同步任務可以使用修改同步對象功能,將報錯的表從同步對象移除,然後再重新添加至同步對象,詳情請參見如何解決同步執行個體關於表的報錯?若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

transaction-replicate: DTS-70004: execute statement failed: /* DTS-wri-MysqlEngine(3) */replace into `db_mch_recreation`.`tbl_order` (`time_pay`,`rec_product_detail`,`err_code`,`type`,`device_name`,`total_fee`,`out_sid`,`extra`,`ship_desc`,`sn`,`seller_id`,`time_create`,`device_id`,`err_desc

DTS-RETRY-ERR-0225:DTS-11005: null

可能原因:偶發性錯誤。

解決方案:請重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

framework: DTS-31009: In process of processing data (recordRange: ) failed cause: CriticalAnyAllException: common: DTS-11005: null NullPointerException: null 【URL】: ****

DTS-RETRY-ERR-0226:User (.*)? does not have permission to run DBCC TRACEON

可能原因:任務使用的源端資料庫帳號許可權不足。

解決方案:授予該帳號sysadmin許可權,然後重新啟動任務。授權方法,請參見CREATE USER

報錯樣本:

jobId=juin1gx7166****, code=15, errMsg=dts-k-src: DTS-52102: retry final failedcause:    RecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-00032: Execute sql DBCC TRACEON(2537,-1) failed, case by User 'dtstest' does not have permission to run DBCC TRACEON.    CriticalAnyAllException: sqlserver-reader: DTS-00032: Execute sql DBCC TRACEON(2537,-1) failed, case by User 'dtstest' does not have permission to run DBCC TRACEON.    SQLServerException: User 'dtstest' does not have permission to run DBCC TRACEON.

DTS-RETRY-ERR-0227:Socket closed

可能原因:DTS網路無法串連至Redis執行個體。

解決方案:請確保源和目標端執行個體網路正常,然後重新啟動任務。

報錯樣本:

jobId=z6xb1321161****, code=04, errMsg=framework: DTS-31009: In process of processing data (recordRange: 444887303382577****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 15352498 seconds, which exceed the supposed 600 seconds    RedisServerException: redis: DTS-10015: redis: DTS-10009: Socket closed    RedisCannotRetryException: redis: DTS-10009: Socket closed    SocketException: Socket closed

DTS-RETRY-ERR-0228:Illegal mix of collations

可能原因:源和目標表的字元集或字元集的校對規則不一致。

解決方案:請確保源和目標表的字元集和字元集的校對規則一致,然後重新啟動任務。例如,MySQL 8.0及以上版本可以使用ALTER TABLE XXX default character SET utf8mb4 collate=utf8mb4_general_ci;命令,將預設的校對規則(utf8mb4_0900_ai_ci)修改為utf8mb4_general_ci。

說明

XXX需要替換為對應的表名。

報錯樣本:

jobId=yr6a1h2d161****, code=02, errMsg=Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation 'find_in_set'. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Unknown column 'hjmall_jushuitan_brand_express_template.express_company' in 'on clause'. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Unknown column 'b.excel_name' in 'field list'(advice: the base table may have been modified, you can choose to skip the migration of this View.).

DTS-RETRY-ERR-0232:cannot execute INSERT in a read-only transaction

可能原因:目標端執行個體為唯讀模式。

解決方案:檢查目標端執行個體是否可以修改為常規的讀寫執行個體:

  • 可以:將目標端執行個體修改為常規的讀寫執行個體,然後重新啟動任務。

  • 不可以:使用常規的讀寫執行個體重新設定任務。

報錯樣本:

jobId=f6au9q6b13c****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*f6au9q6b13cg9*****/insert into oms_ord.om_order_line (order_line_id,order_line_nbr,sale_channel,channel_order_nbr,order_time,order_id,cust_id,cust_name,order_type,pre_sale_date,delivery_method,pickup_point_code,contact_man,contact_num,contact_email,delivery_addr_id,delivery_detail_addr,expect_date,expect_time,cust_notes,if_remaining_paid,state,state_reason,state_date,state_desc,created_date,update_date,audit_notes,order_fulfill_id,order_fulfill_nbr,ship_date,order_fulfill_state,prod_desc,logistics_code,warehouse_id,warehouse_name,v_warehouse_id,v_warehouse_name,is_transfer,order_id_nbr,deliver_order_nbr,devy_longitude,devy_latitude,vmi_vendor_id,redo_count,currency_id,delivery_addr_l1,delivery_addr_l2,delivery_addr_l3,delivery_addr_l4,delivery_addr_zipcode,pay_state,delivery_state,delivery_chl_addr,if_oms_fulfill,payment_method,payment_time,region_code,ext_info,channel_type_id,ext_erp_order_nbr,ext_erp_delv_nbr,schedule_result_id,order_schedule_id,inv_chl_group_id,package_id) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)cause:    PSQLException: ERROR: cannot execute INSERT in a read-only transaction

DTS-RETRY-ERR-0234:DTS-70007: resolve failed

可能原因:目標端Kafka的Topic不存在。

解決方案:請在Kafka中建立Topic,然後重新啟動任務。阿里雲訊息佇列Kafka版建立Topic的方法,請參見步驟一:建立Topic

報錯樣本:

jobId=a4ls1hua154****, code=07, errMsg=framework: DTS-31009: In process of processing data (recordRange: 609533659628489****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 300800 seconds, which exceed the supposed 43200 seconds    CriticalAnyAllException: nosql-replicate: DTS-70007: resolve failed

DTS-RETRY-ERR-0235:permission denied to create event trigger

可能原因:任務使用的目標端帳號許可權不足。

解決方案:使用superuser帳號重新設定任務。

報錯樣本:

jobId=ipix1o7u13u****, code=30, errMsg=ERROR: permission denied to create event trigger "dts_intercept_ddl"  Hint: Must be superuser to create an event trigger.permission denied to create event trigger

DTS-RETRY-ERR-0236:Failed connecting to

可能原因:DTS無法串連Redis執行個體。

解決方案:請確保Redis執行個體可以正常串連,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=v41u74p8z4q****, code=07, errMsg=framework: DTS-31007: fetch and merge schemas failedcause:    RedisServerException: redis: DTS-10015: redis: DTS-10010: Failed connecting to 100.115.XX.XX:XXX    RedisClientInitiationException: redis: DTS-10010: Failed connecting to 100.115.XX.XX:XXX

DTS-RETRY-ERR-0238:fetch log failed

可能原因:DTS任務擷取日誌遇到了問題。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=q5lk1uak16g****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52210: fetch log failedcause:    IOException: java.lang.ArrayIndexOutOfBoundsException: 6    ArrayIndexOutOfBoundsException: 6cause:    CriticalAnyAllException: mysql-reader: DTS-52210: fetch log failed    IOException: java.lang.ArrayIndexOutOfBoundsException: 6    ArrayIndexOutOfBoundsException: 6    fetch log failed

DTS-RETRY-ERR-0239:Prematurely reached end of stream

可能原因:DTS讀取源端資料庫逾時。

解決方案:請在業務允許的前提條件,取消資料庫逾時時間的限制。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=mc9g16xe16d****, code=03, errMsg=framework: DTS-31009: In process of processing data (recordRange: 859496203590356****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 66950 seconds, which exceed the supposed 43200 seconds    RuntimeException: com.mongodb.MongoSocketReadException: Prematurely reached end of stream    MongoSocketReadException: Prematurely reached end of stream    Prematurely reached end of stream

DTS-RETRY-ERR-0240:Can not read response from server

可能原因:DTS無法擷取服務端返回的資料。

解決方案:請確保網路連接正常,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=v72o16zi165****, code=03, errMsg=framework: DTS-31009: In process of processing data (recordRange: 71735997624221****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 2181031 seconds, which exceed the supposed 600 seconds    CriticalAnyAllException: framework: DTS-31009: read source data error    SQLException: Error retrieving record: Unexpected Exception: java.io.EOFException message given: Can not read response from server. Expected to read 11,302 bytes, read 6,941 bytes before connection was unexpectedly lost. ****

DTS-RETRY-ERR-0241:Unknown character set

可能原因:目標庫執行個體沒有報錯資訊中的字元集。

解決方案:建議源和目標庫的版本保持一致,或者從低版本同步或遷移至高版本資料庫執行個體,以保障相容性。

報錯樣本:

jobId=n01d11o816q****, code=02, errMsg=Unknown character set: 'latin1'. Unknown character set

DTS-RETRY-ERR-0242:Could not find first log file name in binary log index file

可能原因:Binlog index資訊沒有更新,而Binlog日誌已被清理。

解決方案:請嘗試恢複Binlog日誌,或重新設定DTS任務。

報錯樣本:

jobId=ud3m8u32154****, code=15, errMsg=dts-k-src: DTS-52102: retry final failedcause:    RecoverableAnyAllException: dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52212: MySQL binlog 167384**** is not exists.    CriticalAnyAllException: mysql-reader: DTS-52212: MySQL binlog 167384**** is not exists.    IOException: java.sql.SQLException: Could not find first log file name in binary log index file    SQLException: Could not find first log file name in binary log index file

DTS-RETRY-ERR-0243:Record Convert error in table

可能原因:目標端寫入資料的類型與表結構定義的資料類型不一致。

解決方案:請修改目標端表結構,使源端和目標端表結構保持一致,然後重新啟動任務。

報錯樣本:

jobId=el2m7hna195****, code=07, errMsg=DTS-077400: Record Convert error in table midea_database.midea_mmds_share_link_visit_log msg=[{column:object_id, value:6ba977b23944f68bf7124946aa3f****} To BIGINT]. cause by [{column:object_id, value:6ba977b23944f68bf7124946aa3f****} To BIGINT]    Record Convert error in table

DTS-RETRY-ERR-0245:Authentication failed

可能原因:DTS無法訪問MongoDB的鑒權資料庫。

解決方案:請檢查任務使用的資料庫帳號和資料庫密碼是否可以正常串連資料庫。

報錯樣本:

jobId=qbrn8mcj21p****, code=15, errMsg=dts-k-src: DTS-52102: retry final failedcause:    MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-256, userName='dba_rw', source='admin', password=<hidden>, mechanismProperties={}}    MongoCommandException: Command failed with error 18 (AuthenticationFailed): 'Authentication failed.' on server 172.19.XX.XX:XXX. The full response is {"ok": 0.0, "errmsg": "Authentication failed.", "code": 18, "codeName": "AuthenticationFailed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1673836841, "i": 41}}, "signature": {"hash": {"$binary": "gwps88TJItDHfP+xz0VQlY+****=", "$type": "00"}, "keyId": {"$numberLong": "715470944398737****"}}}, "operationTime": {"$timestamp": {"t": 1673836841, "i": 40}}}    Authentication failed

DTS-RETRY-ERR-0246:run check job timeout

可能原因:資料校正任務啟動逾時。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=q6rh1hi510o****, code=05, errMsg=run check job timeout

DTS-RETRY-ERR-0247:cannot execute DELETE in a read-only transaction

可能原因:在唯讀節點上執行DELETE操作。

解決方案:請重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=amjm8zwvc4h****, code=07, errMsg=DTS-077100: Record Replicator error in table dataintegration.dws_kmzk_stock_info. cause by [org.postgresql.util.PSQLException: ERROR: cannot execute DELETE in a read-only transaction] About more information in ****  cannot execute DELETE in a read-only transaction 

DTS-RETRY-ERR-0248:Socket read timed out

可能原因:DTS讀取源庫資料逾時。

解決方案:請確保DTS可以正常串連源庫,然後重新啟動任務。

報錯樣本:

id=38240****, jobId=vd6e8ylpa42****, value={"errMsg":"IO Error: Socket read timed out@error code:17002","jobId":"qs8x8nf815l****","maxRetryTime":7200,"module":"reader","retryCount":3,"retryTarget":"srcDB","retryTime":66,"retrying":true}

DTS-RETRY-ERR-0249:Version has changed

可能原因:在目標庫中執行的SQL,依賴的對象(如函數或觸發器依賴的函數對象等)不存在。

解決方案:請確保目標庫中存在執行SQL依賴的對象。

報錯樣本:如下報錯資訊,表示目標庫中不存在update_version函數。

jobId=kp0e16ge168****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*we2s1q2p16xc*****/update public.reconciliation set id = ?,create_time = ?,last_update = ?,data = ?,version = ? where id = ? \ncause:\n\tPSQLException: ERROR: Version has changed\n  Where: PL/pgSQL function update_version() line 8 at RAISE","jobId":"we2s1q2p16x****","maxRetryTime":43200,"module":"writer","retryCount":311,"retryTarget":"destDB","retryTime":3316,"retrying":true}  Version has changed

DTS-RETRY-ERR-0250:invalid identifier

可能原因:目標庫的SQL執行失敗。

解決方案:

  • 同步任務:使用修改同步對象功能將報錯的表從同步對象中移除,然後重新啟動任務。移除同步對象的方法,請參見移除同步對象

  • 遷移任務:重新設定任務,待遷移的對象不選擇報錯的表。

報錯樣本:

id=38235****, jobId=thvd19f2136****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*ewjw1e6a13mc9stOraclePrepareStatementSqlEngine(10)*/insert into \"SNPCENTER\".\"BIND\"(\"id\", \"sn\", \"snapshot_id\", \"parent_sn\", \"created_at\", \"updated_at\", \"parent_sn_from\", \"sn_from\") values(?, ?, ?, ?, ?, ?, ?, ?)\ncause:\n\tSQLSyntaxErrorException: ORA-00904: \"ID\": invalid identifier\n","jobId":"ewjw1e6a13m****","maxRetryTime":43200,"module":"writer","retryCount":421,"retryTarget":"destDB","retryTime":4315,"retrying":true}

DTS-RETRY-ERR-0251:unsupported value convert for

可能原因:目標端寫入資料的類型與表結構定義的資料類型不一致。

解決方案:請修改目標端表結構,使源端和目標端表結構保持一致,然後重新啟動任務。

報錯樣本:

id=38235****, jobId=a4410xe0123****, value={"errMsg":"jdbc-utils: DTS-11001: jdbc-utils: DTS-11001: Adb30StringDisperse: unsupported value convert for [****] convert to [chief_account JSON nullable as chief_account] targetDatabase:hdd_prod_1 targetTable:basic_dock_account\ncause:\n\tJdbcUtilsException: jdbc-utils: DTS-11001: Adb30StringDisperse: unsupported value convert for [****] convert to [chief_account JSON nullable as chief_account]","jobId":"vgn10ctk19o****","maxRetryTime":7200,"module":"writer","retryCount":114,"retryTarget":"destDB","retryTime":1142,"retrying":true}

DTS-RETRY-ERR-0253:The network connection is not available, Please check the network connection of the source database and the target database

可能原因:網路連接失敗。

解決方案:請確保源端資料庫的狀態正常且可以正常串連,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

The network connection is not available, Please check the network connection of the source database and the target database

DTS-RETRY-ERR-0254:擷取資料庫 (.*)? 串連失敗

可能原因:無法串連到源端資料庫。

解決方案:請確保源端資料庫可以正常串連,然後重新啟動任務。

報錯樣本:

jobId=ce7v1agz31w****, errMsg=擷取資料庫[S124.221.XX.XX:XXX]串連失敗

DTS-RETRY-ERR-0255:NOSCRIPT No matching script

可能原因:源庫Lua指令碼映射到目標庫存在跨slot情境。

解決方案:請確保源庫Lua指令碼映射到目標庫後在同一個slot中,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=envr2tt1x3b****, errMsg=redis.clients.jedis.exceptions.JedisNoScriptException: NOSCRIPT No matching script. Please use EVAL.

DTS-RETRY-ERR-0256:dayOfMonth must be in the range

可能原因:目標端待寫入的資料中有非法資料(例如非法的日期時間資料),導致資料寫入失敗。

解決方案:請修改目標端表結構,使源端和目標端表結構保持一致,然後重新啟動任務。

報錯樣本:

**** 
2023-02-03 18:23:37 [sink-22] ERROR Adb30ReplicateSink: 269 - 22 execute batch dml failed cause [15018, 20230203182337192168132064031516924991] Cannot parse "2023-02-00 06:08:11.0": Value 0 for dayOfMonth must be in the range [1,28]java.sql.SQLException: [15018, 2023020318233719216813206403151692491] Cannot parse "2023-02-00 06:08:11.0": Value 0 for dayOfMonth must be in the range [1,28]

DTS-RETRY-ERR-0257:Invalid JSON text in argument 1 to function cast_as_json

可能原因:報錯資訊中的JSON欄位內容為空白,無法寫入目標端資料庫。

解決方案:

  • 同步任務:將報錯資訊中的表或熱點表從待同步對象中移除,然後清空目標庫中已移除表的資料,再重新將移除的表添加到同步任務中。更多資訊,請參見如何解決同步執行個體關於表的報錯?

  • 遷移任務:請重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

****  `project_description` = x'E6B58BE8AF95E9A1B9E79BAE303731****',`school_id` = 2632,`project_id` = 1,`group_id` = 36,`is_use` = 1 WHERE `project_id` = 1 limit 1, error detail message:Data truncation: Invalid JSON text in argument 1 to function cast_as_json: "The document is empty." at position 0.     MysqlDataTruncation: Data truncation: Invalid JSON text in argument 1 to function cast_as_json: "The document is empty." at position 0.

DTS-RETRY-ERR-0258:failed to parse date field

可能原因:目標端Elasticsearch中date類型欄位的格式有問題,導致資料寫入失敗。

解決方案:請根據源端資料和具體報錯資訊,修改目標端Elasticsearch中date類型欄位的格式,然後重新啟動任務。

報錯樣本:

****
error detail message:es: DTS-10035: failed to parse field [mark_high_quality_label_time] of type [date] in document with id '30020'. Preview of field's value: '2023-02-03 17:40:27.0', failed to parse date field [2023-02-03 17:40:27.0] with format [strict_date_optional_time||epoch_millis]SQLException errorCode:0, record is: 
****

DTS-RETRY-ERR-0259:User (.*)? has exceeded the 'max_user_connections' resource

可能原因:資料庫連接數達到上限(超過max_user_connections限制)。

解決方案:請適當調巨量資料庫的最大串連數,然後重新啟動任務。關於RDS MySQL調整參數值的方法,請參見串連RDS MySQL時報錯has more than 'max_user_connections'或has exceeded the 'max_user_connections'

報錯樣本:

jobId=v7yw20eea18****, errMsg=com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: User 'rrc_datax' has exceeded the 'max_user_connections' resource (current value: 50)

DTS-RETRY-ERR-0260:Failed For Wait Mysql Server Handshake

可能原因:資料庫執行個體無法串連。

解決方案:請確保資料庫可以正常串連,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=r54w1gex11x****, errMsg=Increment Context Is Not Running..: com.alibaba.dts.exception.message.LocalException: DTS-002010 Unknow connect db 100.100.66.1:12703 failure. Original error: Failed For Wait Mysql Server Handshake, please check the health of db For more information please refer to https://****

DTS-RETRY-ERR-0261:UNSupport sqlserver without database backup

可能原因:當前任務的自建SQL Server執行個體沒有開啟Database Backup功能。

解決方案:請開啟自建SQL Server執行個體的Database Backup功能,然後重新啟動任務。更多資訊,請參見準備工作

報錯樣本:

jobId=ibeh15uc28l****, errMsg=DTS-52102: retry final failed cause:     RecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-52402: UNSupport sqlserver without database backup     CriticalAnyAllException: sqlserver-reader: DTS-52402: UNSupport sqlserver without database backup

DTS-RETRY-ERR-0262:command 'SCRIPT' is not allowed

可能原因:DTS不支援同步或遷移Redis執行個體的SCRIPT指令碼。

解決方案:請確保源端Redis執行個體沒有SCRIPT指令碼,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=mn9e254ps3r****,errMsg=redis.clients.jedis.exceptions.JedisDataException: ERR handle request, command 'SCRIPT' is not allowed

DTS-RETRY-ERR-0263:UnsupportedException (.*)? Cannot support Version

可能原因:DTS暫不支援Redis 7.0及以上版本。

解決方案:無。

報錯樣本:

jobId=hp9m2axpv47****,errMsg=DTS-31009: In process of processing data (recordRange: 27873049260****) failed cause:     FatalAnyAllException: common: DTS-100047: retry 0 times, 1601 seconds, which exceed the supposed 43200 seconds     RedisServerException: redis: DTS-10015: redis: DTS-11005: Cannot support Version: 10     UnsupportedException: redis: DTS-11005: Cannot support Version: 10

DTS-RETRY-ERR-0264:TDDL-4500 (.*)? Do not support partition by

可能原因:DRDS模式的PolarDB-X資料庫不支援分區。

解決方案:

  • 方法一:訂正DDL,刪除分區資訊,然後重新啟動任務。

  • 方法二:請使用AUTO模式的PolarDB-X資料庫配置任務。

報錯樣本:

jobId=c78q2olvv3c****, errMsg=[15a0362958404000][11.117.XXX.XXX:3088][jm_live_data_pool]ERR-CODE: [TDDL-4500][ERR_PARSER] Do not support partition by. . 

DTS-RETRY-ERR-0265:Rejecting mapping update to

可能原因:DTS任務的目標端已經存在需要建立的INDEX。

解決方案:請在業務允許的前提條件下,刪除目標端中報錯資訊的INDEX,然後重新啟動任務。

報錯樣本:

jobId=hvfm2r55y36****, errMsg=PUT http://172.17.XX.XX:XXX/equity_request_log/_mapping/equity_request_log_1?include_type_name=true&pretty=true: HTTP/1.1 400 Bad Request {   "error" : {     "root_cause" : [       {         "type" : "illegal_argument_exception",         "reason" : "Rejecting mapping update to [equity_request_log] as the final mapping would have more than 1 type: [_doc, equity_request_log_1]"       }     ],     "type" : "illegal_argument_exception",     "reason" : "Rejecting mapping update to [equity_request_log] as the final mapping would have more than 1 type: [_doc, equity_request_log_1]"   },   "status" : 400 } . PUT http://172.17.XX.XX:XXX/equity_request_log/_mapping/equity_request_log_10?include_type_name=true&pretty=true: HTTP/1.1 400 Bad Request {   "error" : {     "root_cause" : [       {         "type" : "illegal_argument_exception",         "reason" : "Rejecting mapping update to [equity_request_log] as the final mapping would have more than 1 type: [_doc, equity_request_log_10]"       }     ],     "type" : "illegal_argument_exception",     "reason" : "Rejecting mapping update to [equity_request_log] as the final mapping would have more than 1 type: [_doc, equity_request_log_10]"   },   "status" : 400 }

DTS-RETRY-ERR-0266:Unknown collation

可能原因:目標庫不支援源端表的編碼格式。

解決方案:

  • 方法一:在業務允許的前提條件下,修改原庫的編碼格式,然後重新啟動任務。

  • 方法二:訂正目標庫的DDL,然後重新啟動任務。

報錯樣本:

jobId=eb6o2xm5e3o****, errMsg=Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'.

DTS-RETRY-ERR-0267:列名 (.*)? 無效

可能原因:目標庫報錯資訊中的列不存在,導致依賴該列的對象無法建立。

解決方案:檢查對象有效性,若已失效 ,請忽略該對象,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=ofyn25r1t4b****, errMsg=列名 'TotalAmount' 無效。. 列名 'wx_flag' 無效。. 

DTS-RETRY-ERR-0268:對象名 (.*)? 無效

可能原因:當前任務依賴的對象無效。

解決方案:確認源庫中是否存在當前任務依賴的對象。

  • 存在:將依賴的對象添加為待同步或遷移對象。

  • 不存在:請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=dcpd2mm3p3f****, errMsg=對象名 'dbo.V_BS_INFO' 無效。. 對象名 'dbo.V_BS_INFO' 無效。. 對象名 'V_BS_INFO' 無效。. 對象名 'V_BS_INFO' 無效。. 對象名 'V_CGO_CN_PRE' 無效。. 

DTS-RETRY-ERR-0269:Error column name

可能原因:報錯對象的編碼方式與目標端的編碼方式不一致。

解決方案:請根據具體報錯資訊,確保目標端與源端的編碼方式一致,然後重新啟動任務。

報錯樣本:

jobId=t6ds676q308****, errMsg=DTS-1029999 The ddlmove task t6ds676q308**** was finished,but 1 objects failed,error message:DTS-1020042 Execute sql error sql: DTS-1020042 Execute sql error sql: [13000, 202006301129351720160291070345367****] Error column name: 'id',only support '0-9,a-z,A-Z,_-()' and first letter must be a-z or 

DTS-RETRY-ERR-0270:MongoCommandException (.*)? operation was interrupted

可能原因:建立MongoDB的INDEX逾時。

解決方案:請重新啟動任務。若異常無法解決,請適當調大MongoDB執行DDL的逾時時間,然後重新啟動任務。

報錯樣本:

jobId=b0tm16z731k****, errMsg=com.mongodb.MongoCommandException: Command failed with error 11602: 'operation was interrupted' on server 172.17.XX.XX:XXX. The full response is { "writeConcernError" : { "code" : 11602, "codeName" : "InterruptedDueToReplStateChange", "errmsg" : "operation was interrupted" }, "operationTime" : { "$timestamp" : { "t" : 1675441117, "i" : 2682 } }, "ok" : 0.0, "errmsg" : "operation was interrupted", "code" : 11602, "codeName" : "InterruptedDueToReplStateChange", "$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1675441145, "i" : 65 } }, "signature" : { "hash" : { "$binary" : "HKKlWcyFaBhMJYL5Fk9kGlpIyCU=", "$type" : "00" }, "keyId" : { "$numberLong" : "716938648110917****" } } } }. com.mongodb.MongoCommandException: Command failed with error 11602: 'operation was interrupted' on server 172.17.XX.XX:XXX. The full response is { "writeConcernError" : { "code" : 11602, "codeName" : "InterruptedDueToReplStateChange", "errmsg" : "operation was interrupted" }, "operationTime" : { "$timestamp" : { "t" : 1675441117, "i" : 2667 } }, "ok" : 0.0, "errmsg" : "operation was interrupted", "code" : 11602, "codeName" : "InterruptedDueToReplStateChange", "$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1675441145, "i" : 65 } }, "signature" : { "hash" : { "$binary" : "HKKlWcyFaBhMJYL5Fk9kGlpIyCU=", "$type" : "00" }, "keyId" : { "$numberLong" : "716938648110917****" } } } }.

DTS-RETRY-ERR-0271:fullcheck find different records

可能原因:資料校正任務校正出了不一致的資料。

解決方案:該報錯是任務正常啟動並執行結果,表示全量校正任務發現源庫與目標庫存在不一致的資料。

  • 若您設定的全量校正模式按抽樣比例進行HASH校正:您可以在校正詳情頁簽的操作下方查看或下載檢驗報告,以擷取不一致資訊。

  • 若您設定的全量校正模式按錶行數進行校正:報錯資訊後面的數字表示目標庫與源庫不一致資料的總行數,您可以在校正詳情頁簽查看不一致資料對應的表名。

報錯樣本:

**** fullcheck find different records : 9

DTS-RETRY-ERR-0272:UnSupport this db type

可能原因:當前任務暫不支援ETL功能。

解決方案:去除當前任務ETL功能的配置。

報錯樣本:

jobId=uqct2lfuv57****, errMsg=java.lang.Exception: UnSupport this db type : 131072
  at ****

DTS-RETRY-ERR-0273:Deadlock found when trying to get lock

可能原因:有其他使用者在向目標端寫入資料,導致當前任務在目標端寫入資料時遇到死結。

解決方案:請在業務允許的前提條件下,暫停其他使用者在目標端的資料寫入。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=x1sz2los149****, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-x1sz2los149**** */insert ignore into **** , reason: Deadlock found when trying to get lock; try restarting transactioncause:    BatchUpdateException: Deadlock found when trying to get lock; try restarting transaction    MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction

DTS-RETRY-ERR-0274:Tablespace has been discarded for table

可能原因:源庫資料讀取失敗。

解決方案:請確保源庫中報錯的表可以正常讀取,然後重新啟動任務。

報錯樣本:

jobId=yd0b2c2a148****, errMsg=framework: DTS-31009: In process of processing data (recordRange: 381808368541709****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 712 times, 7205110 seconds, which exceed the supposed 7200 seconds    CriticalAnyAllException: framework: DTS-31009: read source data error    SQLException: Tablespace has been discarded for table 'dtstest'

DTS-RETRY-ERR-0275:is not nullable (.*)? but it's default value is null

可能原因:目標端含非空約束的欄位寫入了null值。

解決方案:在業務允許的前提條件下,修改目標表結構(去除非空約束),然後重新啟動任務。

報錯樣本:

jobId=lg7d2ofq14v****, errMsg=common: DTS-100047: retry 4310 times, 43202322 seconds, which exceed the supposed 43200 secondscause:    RuntimeException: Table '`dw`.`f_fa_fnd_repay_recon`' with columns [****] and batch exception is {[13000, 202302150420401921681740920315141****] F_FA_FND_REPAY_RECON.BANK is not nullable, but it's default value is null, Error : Field 'F_FA_FND_REPAY_RECON.BANK' doesn't have a default value}    BatchUpdateException: [13000, 202302150420401921681740920315141****] F_FA_FND_REPAY_RECON.BANK is not nullable, but it's default value is null, Error : Field 'F_FA_FND_REPAY_RECON.BANK' doesn't have a default value    MySQLSyntaxErrorException: [13000, 202302150420401921681740920315141****] F_FA_FND_REPAY_RECON.BANK is not nullable, but it's default value is null, Error : Field 'F_FA_FND_REPAY_RECON.BANK' doesn't have a default value

DTS-RETRY-ERR-0276:if (.*)? is specified it must not be empty

可能原因:映射到Elasticsearch中_id列的值為空白。

解決方案:請重新設定任務,並在選擇同步或遷移對象時配置過濾條件,過濾掉值為空白字串的資料。更多資訊,請參見設定過濾條件

報錯樣本:

jobId=usbt2jev15uw11k, errMsg=common: DTS-100047: retry 15 times, 265289 seconds, which exceed the supposed 9223372036854775807 secondscause:    IOException: es: DTS-10035: if _id is specified it must not be empty    CriticalAnyAllException: es: DTS-10035: if _id is specified it must not be empty

DTS-RETRY-ERR-0277:The primary key schema is not match which defined in table meta

可能原因:Schema當前的主鍵與DTS擷取的資訊不一致。

解決方案:請重新建立任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=j4qs239715r****, errMsg=common: DTS-100047: retry 0 times, 2056 seconds, which exceed the supposed 43200 secondscause:    ClientException: The primary key schema is not match which defined in table meta.

DTS-RETRY-ERR-0278:Unexpected end of stream

可能原因:DTS串連資料庫執行個體時遇到問題。

解決方案:請檢查網路白名單等,確保資料庫可以正常串連,然後重新啟動任務。更多資訊,請參見源庫串連性檢查目標資料庫連接性檢查

報錯樣本:

jobId=ofmz2m6015t****, errMsg=framework: DTS-31007: fetch and merge schemas failedcause:    RedisServerException: redis: DTS-10015: redis: DTS-10010: Unexpected end of stream.    RedisClientInitiationException: redis: DTS-10010: Unexpected end of stream.

DTS-RETRY-ERR-0279:Unsupport batch replicate in kafka

可能原因:當前任務不支援batch寫入,需要關閉batch功能。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=f3uc324ha1c****, errMsg=kafka: DTS-31005: Unsupport batch replicate in kafka

DTS-RETRY-ERR-0280:Could not get a resource since the pool is exhausted

可能原因:DTS無法串連Redis執行個體。

解決方案:請確保DTS可以正常串連源和目標Redis執行個體,然後重新啟動任務。

報錯樣本:

jobId=sjcg2si2141****, errMsg=redis: DTS-10015: Could not get a resource since the pool is exhaustedcause:    JedisExhaustedPoolException: Could not get a resource since the pool is exhausted    NoSuchElementException: Unable to validate object

DTS-RETRY-ERR-0281:RDB Magic String Error

可能原因:DTS不支援目前的版本的Redis執行個體,從而導致解析RDB失敗。

解決方案:請使用DTS支援的Redis執行個體配置任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=rs1r2ub614****, errMsg=framework: DTS-31009: In process of processing data (recordRange: 2093173747887374336) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 1501 seconds, which exceed the supposed 43200 seconds    RedisServerException: redis: DTS-10015: redis: DTS-10019: RDB Magic String Error: [84, 68, 69, 95, 69, 78, 65, 66, 76]    UnexpectedRDBFromatException: redis: DTS-10019: RDB Magic String Error: [84, 68, 69, 95, 69, 78, 65, 66, 76]

DTS-RETRY-ERR-0282:Can not create connection to source database

可能原因:DTS串連資料庫執行個體時遇到問題。

解決方案:請檢查網路白名單等,確保資料庫可以正常串連,然後重新啟動任務。更多資訊,請參見源庫串連性檢查目標資料庫連接性檢查

報錯樣本:

jobId=sd4q2knu13t****, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: cause:    CriticalAnyAllException: sqlserver-reader: DTS-52410: Sqlserver log fetch failed    CriticalAnyAllException: sqlserver-reader: DTS--0001: Can not create connection to source database    SQLServerException:  ****

DTS-RETRY-ERR-0283:the password has expired

可能原因:Oracle資料庫的帳號到期,導致DTS無法串連資料庫。

解決方案:請修複資料庫帳號(如在資料庫中修改帳號密碼),並確保DTS可以通過該帳號正常串連Oracle資料庫。

報錯樣本:

jobId=h0vu2cqvb73****, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: cause:    CriticalAnyAllException: oracle-reader: DTS-52320: Fetch oracle log failed    CriticalAnyAllException: oracle-reader: DTS-52320: Fetch redo log failed    CriticalAnyAllException: oracle-reader: DTS--0001: Can not create connection to source database, case by ORA-28001: the password has expired    SQLException: ORA-28001: the password has expired

DTS-RETRY-ERR-0284:postgres create local slot failed

可能原因:DTS在源庫建立replication slot失敗。

解決方案:請在源庫執行SELECT * FROM pg_stat_activity WHERE pid != pg_backend_pid() AND (now() - xact_start > INTERVAL '600s');命令,查看是否因存在長事務而阻塞了slot的建立。若存在長事務,請等待長事務結束後重試。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=hkdy2ysl13j****, errMsg=bisId【hl3o2c0n13r****】run fail by ****,errorMsg:reader m36f2x3115g**** start fail,current state failed , msg : dts-k-src: DTS-52111: Increment Context Is Not Running..: cause:    CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed    CriticalAnyAllException: postgresql-reader: DTS-52513: postgres create local slot failed

DTS-RETRY-ERR-0285:Error In Parsing RDB

可能原因:任務使用的帳號許可權不足,從而導致解析RDB失敗。

解決方案:請根據相關配置文檔,確定Redis帳號的許可權是否符合要求。若不符合,請授予帳號正確的許可權後重試;若符合,請聯絡阿里雲技術支援人員處理。

報錯樣本:

jobId=v5i12pl522s****, errMsg=framework: DTS-31009: In process of processing data (recordRange: 27873049260****) failedcause:    RedisServerException: redis: DTS-10015: redis: DTS-10019: Error In Parsing RDB, Format Error, First Line is :-ERR request failed to route, command 'sync' raw ****

DTS-RETRY-ERR-0286:You can't write or read against a disable instance

可能原因:源端資料庫不可讀寫。

解決方案:請確保源端資料庫可以正常讀寫,然後重新啟動任務。

報錯樣本:

jobId=rp4r2jdc14y****, errMsg=framework: DTS-31007: fetch and merge schemas failedcause:    RuntimeException: sourceDB execute info Keyspace return unexpected error, response: null    JedisDataException: ERR DISABLE You can't write or read against a disable instance

DTS-RETRY-ERR-0287:Value (.*)? for monthOfYear must be in the range

可能原因:源庫中的日期數值不符合規範。

解決方案:

報錯樣本:

DTS-077100: Record Replicator error in table hdd_ams.ams_****. cause by [java.sql.SQLException: [15018, 202407231646521720170412240345328****] Cannot parse "0000-00-23 15:30:00": Value 0 for monthOfYear must be in the range [1,12]] About more information in [https://****].

DTS-RETRY-ERR-0288:Invalidate value(.*)? , `year` must be between 1 and 9999

可能原因:源庫中的日期數值不符合規範。

解決方案:

報錯樣本:

DTS-100047: retry 178 times, 1805948 seconds, which exceed the supposed 1800 seconds cause: RuntimeException: Table '`welife****`.`welifehy_welife****`' with columns [`couponId`, `bid`, `cType`, `cSids`, `cAids`, `cName`, `cAmount`, `cValidityType`, `cStartTime`, `cEndTime`, `cValidityDate`, `cValidityDateUnit`, `cSummary`, `cCreator`, `cModifier`, `cCreated`, `cUpdated`, `cDeleted`, `cStatus`, `cLimited`, `wcid`, `cEnabled`, `cProductIds`, `cGiftCouponAmountCustom`, `cLimitTotalAmount`, `cLimitCuponNumber`, `cMixUse`, `cUsingTime`, `cFlag`, `cChannel`, `cCardImg`, `mid`, `cUsingScope`, `cSubCoupons`, `cBelongToPack`, `UpdateTime`, `cGiveFriend`, `cFileder`, `cFiledTime`, `cLimitType`, `cProductExtIds`, `cLimitCoupon`, `cValidTimes`, `cShowName`, `cGiveChannel`, `cSaleMoney`, `cSaleMoneyPriorityRule`, `cAddCardBag`, `cOtherName`, `cDateType`, `cLimitMaxAmount`, `cLimitProductType`, `cExtend`, `cImages`, `cSyncBusifavor`, `cAttribute`, `cPlatform`, `cThirdId`] and batch exception is {[13000, 202407201755101921681291090315124****] (Column => WELIFEHY_WELIFE_COUPONS.CFILEDTIME), Invalidate value=>0000-01-01 00:00:00.0, `year` must be between 1 and 9999} BatchUpdateException: [13000, 2024072017551019216812910903151249727] (Column => WELIFEHY_WELIFE_COUPONS.CFILEDTIME), Invalidate value=>0000-01-01 00:00:00.0, `year` must be between 1 and 9999 MySQLSyntaxErrorException: [13000, 2024072017551019216812910903151249727] (Column => WELIFEHY_WELIFE_COUPONS.CFILEDTIME), Invalidate value=>0000-01-01 00:00:00.0, `year` must be between 1 and 9999

DTS-RETRY-ERR-0289: Source data value(.*)? doesn't match target field(.*)? with type(.*)?

可能原因:源庫與目標庫存在類型不一致的列,導致DTS寫入資料失敗。

說明

可能是由於相關DDL同步失敗導致,您可以在任務日誌中查看失敗的DDL。任務日誌的查看方法,請參見查詢任務日誌

解決方案:

  • 同步任務:

    • 方法一:參考源庫的庫表結構修改目標庫的表結構,使源庫和目標庫的列類型保持一致,然後重新啟動任務。

    • 方法二:若任務包含庫表結構同步,可以使用修改同步對象功能將報錯的表從同步對象中移除,然後再重新添加至同步對象,詳情請參見修改同步對象

  • 遷移任務:參考源庫的庫表結構修改目標庫的表結構,使源庫和目標庫的列類型保持一致,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 4282 times, 43200702 seconds, which exceed the supposed 43200 seconds cause: JdbcUtilsException: jdbc-utils: DTS-11001: jdbc-utils: DTS-11001: Source data value:[course] doesn't match target field:`module` with type:INTEGER, Please check the data types of the source table fields. This issue may be caused by the failure of executing DDL to convert field types on the target side. The failed DDL execution records can be found in dts job's action.log. targetDatabase:new_soke_preview targetTable:approval_templatetargetField: module INTEGER not nullable as module utf8 JdbcUtilsException: jdbc-utils: DTS-11001: Source data value:[course] doesn't match target field:`module` with type:INTEGER, Please check the data types of the source table fields. This issue may be caused by the failure of executing DDL to convert field types on the target side. The failed DDL execution records can be found in dts job's action.log. NumberFormatException: For input string: "course"

DTS-RETRY-ERR-0290:Record Replicator error in table (.*)?. cause by (.*)? Access denied for (.*)?

可能原因:任務使用的帳號許可權不足,無法執行相應的SQL語句。

解決方案:根據報錯資訊給任務使用的資料庫帳號授權,然後重新啟動任務。

報錯樣本:

DTS-077100: Record Replicator error in table mengniu****.osp_sales_plan****. cause by [java.sql.SQLException: [10000, 2024071715225419216806623903151151449] Access denied for INSERT, check db/table/column is MENGNIU_YIPANHUO/OSP_SALES_PLAN_DETAIL/SALES_AREA_CODE, user:mengniu_**** host:% has privilege: UserPrivilege{globalPrivileges=[EXECUTE, INDEX, PROCESS, SELECT, SHOW VIEW, RELOAD, REFERENCES], dbPrivileges={}, tablePrivileges={}, columnsPrivileges={}}] About more information in [https://****].

DTS-RETRY-ERR-0291:column (.*)? is not nullable, can not set null

可能原因:目標表含非空約束的欄位寫入了null值。

解決方案:在業務允許的前提條件下,修改目標表的結構(去除非空約束),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 179 times, 1800006 seconds, which exceed the supposed 1800 seconds cause: RuntimeException: Table '`basic_supp****`.`dict_diagn****`' with columns [`id`, `org_id`, `icd_code`, `diagnosis_name`, `morphological_code`, `pinyin`, `wbm`, `search_code`, `search_instructions`, `diagnostic_instructions`, `diagnostic_type`, `scope_outpatient`, `scope_inpatient`, `scope_emergency`, `infection`, `special_disease`, `enable_state`, `disease_report`, `remark`, `create_by`, `gmt_create`, `modify_by`, `gmt_modify`, `active`, `scope_emergency_keep`, `code`, `global_code`, `scope_physical_examination`, `gmc_id`, `out_validate_classify`] and batch exception is {[13000, 202407171426491720160012290315104****] syntax error :column 'DICT_DIAGN****.GMT_CR****' is not nullable, can not set null} BatchUpdateException: [13000, 202407171426491720160012290315104****] syntax error :column 'DICT_DIAGN****.GMT_CR****' is not nullable, can not set null MySQLSyntaxErrorException: [13000, 202407171426491720160012290315104****] syntax error :column 'DICT_DIAGN****.GMT_CR****' is not nullable, can not set null

DTS-RETRY-ERR-0292:can not find disperser for field (.*)? with value type (.*)?

可能原因:源庫與目標庫列的資料類型不匹配,並且無法進行轉換。

解決方案:

  • 同步任務:

    • 方法一:參考源庫的庫表結構修改目標庫的表結構,使源庫和目標庫的列類型保持一致,然後重新啟動任務。

    • 方法二:若任務包含庫表結構同步,可以使用修改同步對象功能將報錯的表從同步對象中移除,然後再重新添加至同步對象,詳情請參見修改同步對象

  • 遷移任務:參考源庫的庫表結構修改目標庫的表結構,使源庫和目標庫的列類型保持一致,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 4320 times, 43204014 seconds, which exceed the supposed 43200 seconds cause: RuntimeException: Table '`adb_jarvi****`.`jarvis_s****`' with columns [`id`, `org_id`, `factory_id`, `putout_category_id`, `bundle_id`, `handle_amount`, `is_putout_all`, `handle_time`, `remark`, `create_time`, `update_time`, `timestamp`] and batch exception is {can not find disperser for field handle_amount DOUBLE nullable as handle_amount utf8 with value type IntegerNumeric} SQLException: can not find disperser for field handle_amount DOUBLE nullable as handle_amount utf8 with value type IntegerNumeric

DTS-RETRY-ERR-0293:db not found. use `show databases` to see all dbs.

可能原因:目標端不存在對應的資料庫或Schema。

解決方案:手動在目標端建立該資料庫或Schema,並給任務中使用的資料庫帳號授予足夠的許可權,然後重新啟動任務。

報錯樣本:

db not found. use `show databases` to see all dbs. current schemas ****

DTS-RETRY-ERR-0294:Invalid default value for (.*)?

可能原因:庫表結構同步或遷移中,欄位類型映射的預設值不正確。

解決方案:首先在目標端手動建立表,然後在結構遷移模組中跳過該表。

報錯樣本:

Invalid default value for 'active_****'. ****

DTS-RETRY-ERR-0295:do not have enough privileges to use this database.

可能原因:任務中使用的資料庫帳號許可權不足。

解決方案:

  • 方法一:給任務中使用的資料庫帳號授予足夠的許可權,然後重新啟動任務。

  • 方法二:請使用許可權充足的資料庫帳號配置任務。

報錯樣本:

amacadbu**** do not have enough privileges to use this database.. ****

DTS-RETRY-ERR-0296:This connection has been closed

可能原因:源庫或目標庫異常,導致資料庫連接被關閉。

解決方案:請確保源庫或目標庫的狀態正常且可以正常串連,然後重新啟動任務。

報錯樣本:

DTS-61015: Create connection failed (url: 10.25.XX.XX:XX/testdbuser01, user: testdbuser01) cause: PSQLException: This connection has been closed.

DTS-RETRY-ERR-0297:cannot execute (.*)? in a read-only transaction

可能原因:源庫是唯讀資料庫或處於唯讀模式。

解決方案:

  • 源庫是唯讀資料庫:使用可讀寫的源庫,重新設定任務。

  • 源庫處於唯讀模式:將源庫設定為可讀寫入模式後,重新啟動任務。

報錯樣本:

ERROR: cannot execute CREATE FUNCTION in a read-only transaction

DTS-RETRY-ERR-0298:only (.*)? table allowed

可能原因:目標庫對錶的數量存在限制。

解決方案:請聯絡目標資料庫的管理員(DBA),請求放開對錶數量的限制,然後重新啟動任務。

報錯樣本:

[17020, 202408021111130210411290680315193****] only 2500 table allowed. 

DTS-RETRY-ERR-0300:unknown work mode (.*)?

可能原因:執行個體的全量任務不支援當前設定的寫入模式。

解決方案:修改全量任務的寫入模式(sink.worker.type參數),然後重新啟動任務。修改參數的方法,請參見修改執行個體參數

報錯樣本:

DTS-31004: unknown work mode bach

DTS-RETRY-ERR-0301:Invalid character data was found

可能原因:由於目標庫與源庫的庫表字元集不相容,導致資料無法寫入到目標庫。

解決方案:修改目標庫表的字元集,然後重新啟動任務。

報錯樣本:

truncated CriticalAnyAllException: postgresql: DTS-11002: Invalid character data was found.

DTS-RETRY-ERR-0302:(.*)? is none in where causes

可能原因:DTS執行個體設定的過濾條件不正確。

解決方案:

  • 同步執行個體:修改過濾條件中的過濾語句,並重新啟動任務。更多資訊,請參見後續操作

  • 遷移執行個體:重新啟動任務,若執行個體無法恢複,請重新設定任務。

若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

TransactionReplicateException: transaction-replicate: DTS-71001: MysqlRelatedTextSqlBuilderTools: record **** msg is none in where causes.

DTS-RETRY-ERR-0303:The size of attribute column (.*)? has exceeded the max length

可能原因:待寫入資料中部分列的長度,大於目標庫中該列的最大長度。

解決方案:請在目標庫修改該表異常列的最大長度,使其滿足資料寫入的需要,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: ClientException: The size of attribute column 'task_i****' has exceeded the max length: 2097152.

DTS-RETRY-ERR-0306:Error while parsing column ETL value for command

可能原因:ETL的資料處理語句錯誤,導致ETL執行失敗。

解決方案:

  • 同步執行個體:根據報錯資訊,檢查並修正資料處理語句,然後重新啟動任務。更多資訊,請參見在DTS遷移或同步任務中配置ETL

  • 遷移執行個體:重新設定遷移任務,填入正確的資料處理語句。

報錯樣本:

ETL: DTS--0001: Error while parsing column ETL value for command e_switch ****

DTS-RETRY-ERR-0307:Writer has been closed

可能原因:資料無法寫入到目標庫。

解決方案:請確保源庫的增量變更日誌存在、目標庫狀態正常、目標庫結構相容源庫、目標庫帳號許可權滿足要求,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 15 times, 15 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: Writer has been closed.

DTS-RETRY-ERR-0308:Error while executing ETL

可能原因:ETL的資料處理語句錯誤,導致ETL執行失敗。

解決方案:

  • 同步執行個體:根據報錯資訊,檢查並修正資料處理語句,然後重新啟動任務。更多資訊,請參見在DTS遷移或同步任務中配置ETL

  • 遷移執行個體:重新設定遷移任務,填入正確的資料處理語句。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 330151334436352****) failed cause: FatalAnyAllException: common: DTS-100047: retry 4251 times, 43201 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: ETL: DTS--0001: Error while executing ETL: e_switch ****

DTS-RETRY-ERR-0310:Function (.*)? not found

可能原因1:目標庫中不存在報錯資訊中的Function(函數)。

解決方案1:根據報錯資訊和源庫的Function資訊,在目標庫中建立相應的Function。

可能原因2:目標資料庫不支援Function。

解決方案2:重新設定DTS任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 782344968821171****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds DbException: Function "UNIX_TIMESTAMP" not found [90022-193] JdbcSQLException: Function "UNIX_TIMESTAMP" not found [90022-193]

DTS-RETRY-ERR-0311:MongoExecutionTimeoutException: operation exceeded time limit

可能原因:目標MongoDB資料庫執行變更操作逾時。

解決方案:在業務允許的前提下,取消資料庫逾時時間的限制或升級資料庫規格,然後重新啟動任務。

報錯樣本:

FatalAnyAllException: common: DTS-100047: retry 1 times, 45662 seconds, which exceed the supposed 43200 seconds RuntimeException: com.mongodb.MongoExecutionTimeoutException: operation exceeded time limit MongoExecutionTimeoutException: operation exceeded time limit

DTS-RETRY-ERR-0312:The table does not comply with the requirements by an external plugin

可能原因:目標庫因外部外掛程式的限制,無法進行寫入操作。

解決方案:根據報錯資訊對資料庫外掛程式進行排查和處理,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 3957 times, 43202 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** reason: The table does not comply with the requirements by an external plugin. BatchUpdateException: The table does not comply with the requirements by an external plugin. SQLException: The table does not comply with the requirements by an external plugin.

DTS-RETRY-ERR-0313:The connection has been closed

可能原因:資料庫連接被關閉,導致DTS無法串連到資料庫執行個體。

解決方案:根據報錯資訊和資料庫日誌進行排查和處理,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 0 times, 953 seconds, which exceed the supposed 600 seconds cause: SQLServerException: SQL Server returned an incomplete response. The connection has been closed.

DTS-RETRY-ERR-0314:Failed to get global lock for table/view

可能原因:無法在目標庫建立表或視圖。

解決方案:對資料庫狀態、使用的資料庫帳號許可權等進行排查和處理,然後重新啟動任務。

報錯樣本:

DTS-10046: execute sql: CREATE TABLE if not exists **** ENGINE=InnoDB DEFAULT CHARSET=utf8 failed. Create TransactionTable failed. cause: SQLException: Failed to get global lock for table/view 'dts.dts****' on master 1

DTS-RETRY-ERR-0315:Cannot convert NULL value to non-Nullable

可能原因:目標庫具有非空約束的列,有空值寫入。

解決方案:根據報錯資訊和源庫的表結構,修改目標庫的表結構(例如,去除目標庫報錯列的非空約束),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 4123 times, 43209 seconds, which exceed the supposed 43200 seconds cause: BatchUpdateException: Code: 349. DB::Exception: Cannot convert NULL value to non-Nullable type: while converting source column alerting_time to destination column alerting_time: while executing 'FUNCTION _CAST****

DTS-RETRY-ERR-0319:Cannot set null to non-nullable column

可能原因:目標庫具有非空約束的列,有空值寫入。

解決方案:根據報錯資訊和源庫的表結構,修改目標庫的表結構(例如,去除目標庫報錯列的非空約束),然後重新啟動任務。

報錯樣本:

common: DTS-100047: retry 4306 times, 43201 seconds, which exceed the supposed 43200 seconds cause: SQLException: Cannot set null to non-nullable column #7 ****

DTS-RETRY-ERR-0321:Host (.*)? is not allowed to connect to this MySQL server

可能原因:DTS無法串連資料庫。

解決方案:根據報錯資訊,對資料庫的白名單進行排查和處理,然後重新啟動任務。DTS伺服器的IP位址區段,請參見添加DTS伺服器的IP位址區段

報錯樣本:

java.sql.SQLException: null, message from server: "Host '100.104.XX.XX' is not allowed to connect to this MySQL server"

DTS-RETRY-ERR-0322:disk is full

可能原因:目標庫磁碟空間已滿。

解決方案:擴容目標庫的磁碟空間,然後重新啟動任務。

報錯樣本:

DTS-10046: execute sql: CREATE TABLE if not exists **** ENGINE=InnoDB DEFAULT CHARSET=utf8 failed. Create TransactionTable failed. cause: SQLException: Create table/tablespace 'dts****' failed, as disk is full

DTS-RETRY-ERR-0325:disperse error for column

可能原因:目標庫的表結構(例如列的類型或長度)與源庫不一致,導致資料無法寫入到目標庫。

解決方案:根據報錯資訊和源庫的表結構,將目標庫的表結構修改為與源庫一致(或相容),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 15 times, 15 seconds, which exceed the supposed 922337203685477**** seconds cause: CriticalAnyAllException: database-framework: DTS-61001: disperse error for column:bo_**** BIGINT nullable as bo_**** of table ****

DTS-RETRY-ERR-0326:Socket is closed

可能原因:資料庫連接被關閉,導致DTS無法串連到資料庫執行個體。

解決方案:根據報錯資訊和資料庫日誌進行排查和處理,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: SQLException: java.lang.reflect.InvocationTargetException InvocationTargetException: null IOException: Socket is closed

DTS-RETRY-ERR-0327:Error while executing user ETL

可能原因:ETL的資料處理語句錯誤,導致ETL執行失敗。

解決方案:

  • 同步執行個體:根據報錯資訊,檢查並修正資料處理語句,然後重新啟動任務。更多資訊,請參見在DTS遷移或同步任務中配置ETL

  • 遷移執行個體:重新設定遷移任務,填入正確的資料處理語句。

報錯樣本:

framework: DTS-31009: In process of processing data (recordRange: 273076918923611****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: ETL: DTS--0001: Error while executing user ETL: For input string: ****

DTS-RETRY-ERR-0328:Got error IllegalDataException from storage engine

可能原因:目標資料庫發生異常。

解決方案:請確保目標庫的狀態正常且可以正常串連,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: BatchUpdateException: Got error IllegalDataException from storage engine. Detailed error: Must not use byte[0] for BINARY/VARBINARY, please use null instead. ****

DTS-RETRY-ERR-0329:Data conversion error converting

可能原因:目標庫的表結構(例如列的類型或長度)與源庫不一致,導致資料無法寫入到目標庫。

解決方案:根據報錯資訊和源庫的表結構,將目標庫的表結構修改為與源庫一致(或相容),然後重新啟動任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 576317120221859****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds DbException: Data conversion error converting "2024-12-19 00:00:00" [22018-193] JdbcSQLException: Data conversion error converting "2024-12-19 00:00:00" [22018-193] NumberFormatException: For input string: "2024-12-19 00:00:00"

DTS-RETRY-ERR-0330:Error while parsing ETL script

可能原因:ETL的資料處理語句錯誤,導致ETL執行失敗。

解決方案:

  • 同步執行個體:根據報錯資訊,檢查並修正資料處理語句,然後重新啟動任務。更多資訊,請參見在DTS遷移或同步任務中配置ETL

  • 遷移執行個體:重新設定遷移任務,填入正確的資料處理語句。

報錯樣本:

ETL: DTS--0001: Error while parsing ETL script You have an error in your ETL syntax; check the etl document for the right syntax to use near ****

DTS-RETRY-ERR-0331:User (.*)? already has more than (.*)? active connections

可能原因:資料庫連接數達到上限。

解決方案:修改資料庫連接數上限,然後重新啟動任務。

報錯樣本:

DTS-61015: Create connection failed **** cause: MySQLSyntaxErrorException: User hzdball already has more than 'max_****' active connections

DTS-RETRY-ERR-0332:SocketTimeoutException: Read timed out

可能原因:網路連接逾時。

解決方案:請確保源庫的狀態正常且可以正常串連,然後重新啟動任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 513789742289413****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 3667 seconds, which exceed the supposed 600 seconds CriticalAnyAllException: framework: DTS-31009: read source data error CommunicationsException: Application was streaming results when the connection failed. Consider raising value of 'net_****' on the server. SocketTimeoutException: Read timed out

DTS-RETRY-ERR-0333:Operation not allowed on closed connection

可能原因:資料庫連接被關閉,導致DTS無法串連到資料庫執行個體。

解決方案:根據報錯資訊和資料庫日誌進行排查和處理,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: SQLException: java.lang.reflect.InvocationTargetException InvocationTargetException: null MySQLNonTransientConnectionException: Operation not allowed on closed connection

DTS-RETRY-ERR-0334:Cannot get geometry object from data you send to the GEOMETRY field

可能原因:向GEOMETRY類型欄位中寫入的資料,無法被正確解析為幾何對象。

解決方案:根據報錯資訊調整目標庫中相應欄位的類型,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 4316 times, 43206 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** insert ignore into ****,currentRow:null, reason: Data truncation: Cannot get geometry object from data you send to the GEOMETRY field BatchUpdateException: Data truncation: Cannot get geometry object from data you send to the GEOMETRY field MysqlDataTruncation: Data truncation: Cannot get geometry object from data you send to the GEOMETRY field

DTS-RETRY-ERR-0335:Cannot parse (.*)? constant

可能原因:目標庫的表結構(例如列的類型或長度)與源庫不一致,導致資料無法寫入到目標庫。

解決方案:根據報錯資訊和源庫的表結構,將目標庫的表結構修改為與源庫一致(或相容),然後重新啟動任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 436256372039247****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 1 seconds, which exceed the supposed 43200 seconds DbException: Cannot parse "TIMESTAMP" constant "2024-11-01 00:00" [22007-193] JdbcSQLException: Cannot parse "TIMESTAMP" constant "2024-11-01 00:00" [22007-193] IllegalArgumentException: 2024-11-01 00:00

DTS-RETRY-ERR-0336:column (.*)? partition format function error

可能原因:目標庫中存在資料格式不符合要求的欄位,導致函數執行失敗。

解決方案:根據報錯資訊和源庫的表結構,將目標庫的表結構修改為與源庫一致(或相容),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 4222 times, 43200 seconds, which exceed the supposed 43200 seconds cause: RuntimeException: Table **** with columns **** and batch exception is **** column **** partition format function error: date_format(?, %Y%m), value: } BatchUpdateException: **** column **** partition format function error: date_format(?, %Y%m), value: **** 

DTS-RETRY-ERR-0338:java.lang.NumberFormatException

可能原因:目標庫的表結構(例如列的類型或長度)與源庫不一致,導致資料無法寫入到目標庫。

解決方案:根據報錯資訊和源庫的表結構,將目標庫的表結構修改為與源庫一致(或相容),然後重新啟動任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 40009630192186****) failed cause: FatalAnyAllException: common: DTS-100047: retry 1189 times, 43220 seconds, which exceed the supposed 43200 seconds RuntimeException: java.lang.NumberFormatException: For input string: "****" NumberFormatException: For input string: "****"

DTS-RETRY-ERR-0339:Cannot create a JSON value from a string

可能原因:無法將源庫STRING類型的資料寫入目標庫的JSON類型欄位中。

解決方案:根據報錯資訊和源庫的表結構,將目標庫的表結構修改為與源庫一致(或相容),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 1396 times, 43232 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: **** MysqlDataTruncation: Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.

DTS-RETRY-ERR-0340:table engine is (.*)? it is a non-transactional engine

可能原因:目標表使用了非事務型儲存引擎,導致資料無法寫入到目標庫。

解決方案:在業務允許的前提下,將目標表修改為事務型儲存引擎(如InnoDB),然後重新啟動任務。

報錯樣本:

DTS-30021: Optional[cvte_com_zh].Optional[InfoArticle]'s table engine is [MyISAM], it is a non-transactional engine.

DTS-RETRY-ERR-0341:SSL Connection required, but not supported by server

可能原因:源庫或目標庫不支援SSL安全連線。

解決方案:

  • 方法一:開啟源庫或目標庫的SSL加密功能。

  • 方法二:使用非加密的串連方式將源庫或目標庫接入DTS(串連方式選擇非加密串連)。

報錯樣本:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: SSL Connection required, but not supported by server.

DTS-RETRY-ERR-0342:Unsupported encoding

可能原因:由於目標庫與源庫的庫表字元集不相容,導致資料無法寫入到目標庫。

解決方案:修改目標庫表的字元集,然後重新啟動任務。

報錯樣本:

DTS-073602: Record Converter failed for the record of table ****. cause by [Unsupported encoding: utf8mb3] About more information in ****

DTS-RETRY-ERR-0343:PSQLException: ERROR: out of memory

可能原因:目標庫的記憶體不足。

解決方案:升級目標庫的規格以增加記憶體,然後重新啟動任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 343720457685853****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 35444 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error PSQLException: ERROR: out of memory Detail: Failed on request of size 131072 in memory context "ExecutorState".

DTS-RETRY-ERR-0344:Writer is closed

可能原因:資料無法寫入到目標庫。

解決方案:請確保源庫的增量變更日誌存在、目標庫狀態正常、目標庫結構相容源庫、目標庫帳號許可權滿足要求,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 15 times, 15 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: Writer is closed.

DTS-RETRY-ERR-0345:User writes blocked

可能原因:任務使用的目標庫帳號,無法向目標庫中寫入資料。

解決方案:請確保任務使用的目標庫帳號具備足夠的許可權,並且資料庫執行個體未限制該帳號的寫入許可權,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 0 times, 2 seconds, which exceed the supposed 922337203685477**** seconds cause: SQLException: com.mongodb.MongoWriteException: Write operation error on server 10.42.XX.XX:XX. Write error: WriteError{code=371, message='User writes blocked', details={}}. MongoWriteException: Write operation error on server 10.42.XX.XX:XX. Write error: WriteError{code=371, message='User writes blocked', details={}}.

DTS-RETRY-ERR-0346:terminating connection due to out of memory

可能原因:源庫或目標庫因記憶體不足而無法串連。

解決方案:升級源庫或目標庫的規格以增加記憶體,然後重新啟動任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 654419472062768****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 1774 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error PSQLException: FATAL: terminating connection due to out of memory

DTS-RETRY-ERR-0347:Query exceeded maximum time limit

可能原因:在源庫中,查詢SQL語句的已耗用時間逾時。

解決方案:適當調大源庫查詢SQL的運行逾時設定或升級資料庫規格,然後重新啟動任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 305048960847210****) failed cause: FatalAnyAllException: common: DTS-100047: retry 23 times, 43506 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error SQLException: [32005, 202502060853291921682241170345369****] : Query exceeded maximum time limit of 1800000.00ms

DTS-RETRY-ERR-0348:No memory or reach tenant memory limit

可能原因:源庫或目標庫因記憶體不足而無法串連。

解決方案:升級源庫或目標庫的規格以增加記憶體,然後重新啟動任務。

報錯樣本:

jdbc-burst: DTS-61015: Create connection failed (url: 10.29.XX.XX:XX, user: cxmrw) cause: SQLException: No memory or reach tenant memory limit

DTS-RETRY-ERR-0349:The (.*)? server is running with the (.*)? option so it cannot execute this statement

可能原因:資料庫處於唯讀或鎖定狀態,導致資料無法寫入到目標庫。

解決方案:請聯絡資料庫管理員(DBA)恢複資料庫,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 120 times, 1800 seconds, which exceed the supposed 1800 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 6 execute transaction has excess max transaction retry time [64] cause:transaction-replicate: DTS-70004: EXEC statement failed, may try it again RecoverableAnyAllException: transaction-replicate: DTS-70004: EXEC statement failed, may try it again SQLException: ****, error detail message:The MySQL server is running with the LOCK_WRITE option so it cannot execute this statement SQLException: The MySQL server is running with the LOCK_WRITE option so it cannot execute this statement

DTS-RETRY-ERR-0350:replication slot (.*)? is active for PID (.*)?

可能原因:由於網路不穩定等因素,導致源庫與DTS的串連出現異常。

解決方案:請等待5分鐘,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

DTS-100047: retry 0 times, 1005 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed CriticalAnyAllException: postgresql-reader: DTS-52512: postgres open replication steam failed PSQLException: ERROR: replication slot "dts_****" is active for PID 3****

DTS-RETRY-ERR-0352:column is not allowed to be null

可能原因:目標庫具有非空約束的列,有空值寫入。

解決方案:根據報錯資訊和源庫的表結構,修改目標庫的表結構(例如,去除目標庫報錯列的非空約束),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 3600 seconds cause: CriticalAnyAllException: full-lindorm: DTS-61010: column is not allowed to be null: ****

DTS-RETRY-ERR-0353:GC life time is shorter than transaction duration

可能原因:由於源庫的記憶體回收(GC)機制,導致DTS在讀取資料時因逾時而失敗。

解決方案:適當調大源庫記憶體回收(GC)機制的逾時時間,然後重新啟動任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 341070835023137****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 259404 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error SQLException: GC life time is shorter than transaction duration, transaction starts at ****

DTS-RETRY-ERR-0354:No results were returned by the query

可能原因:DTS在源庫進行資料查詢時,未返回任何結果。

解決方案:請排查資料庫的狀態及網路,確保DTS可以正常串連資料庫,然後重新啟動任務。

報錯樣本:

DTS-31007: fetch and merge schemas failed cause: CriticalAnyAllException: full-postgresql: DTS-61006: No results were returned by the query. PSQLException: No results were returned by the query.

DTS-RETRY-ERR-0355:PSQLException: An I/O error occurred while sending to the backend

可能原因:DTS無法正常串連資料庫。

解決方案:請排查資料庫的狀態、網路、防火牆(或安全設定)、驅動設定等,確保DTS可以正常串連資料庫,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 0 times, 1667 seconds, which exceed the supposed 43200 seconds cause: PSQLException: An I/O error occurred while sending to the backend. SocketException: Broken pipe (Write failed)

DTS-RETRY-ERR-0356:NotWritablePrimary

可能原因:任務配置的目標端不是主節點,導致資料無法寫入到目標庫。

解決方案:重新設定任務,目標端使用資料庫的主節點。

報錯樣本:

DTS-100047: retry 0 times, 1 seconds, which exceed the supposed 922337203685477**** seconds cause: SQLException: com.mongodb.MongoNotPrimaryException: Command failed with error 10107 (NotWritablePrimary): 'not master' on server ****

DTS-RETRY-ERR-0357:already exists with different case

可能原因:目標端存在名稱僅大小寫不同的資料庫,導致資料寫入衝突。

解決方案:在業務允許的前提下,清理目標端執行個體,然後重新啟動任務。

說明

若為同步執行個體,可以將報錯的對象從已選擇對象移動至源庫對象,提交本次修改;然後再使用修改同步對象功能重新添加至已選擇對象後,同時使用對象名映射功能,將資料寫入目標端的其他資料庫中。更多資訊,請參見修改同步對象庫表列名映射

報錯樣本:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 922337203685477**** seconds cause: SQLException: com.mongodb.MongoWriteException: Write operation error on server 10.46.XX.XX:XX. Write error: WriteError{code=13297, message='db already exists with different case already have: [subway] trying to create [Subway]', details={}}. MongoWriteException: Write operation error on server 10.46.XX.XX:XX.. Write error: WriteError{code=13297, message='db already exists with different case already have: [subway] trying to create [Subway]', details={}}.

DTS-RETRY-ERR-0359:too many filtered rows

可能原因:待寫入SelectDB資料庫的資料存在問題,導致資料無法寫入到目標庫。

解決方案:根據報錯資訊中的ErrorUrl,排查並處理異常,然後重新啟動任務。若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本:

DTS-100047: retry 2775 times, 43207 seconds, which exceed the supposed 43200 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 2 execute transaction has excess max transaction retry time [64] cause:Failed to stream load data to table: esx_shjydd_com.is_customer_logKey status is fail. Load result: ****

DTS-RETRY-ERR-0360:operation exceeded time limit

可能原因:DTS執行查詢或寫入資料逾時。

解決方案:請排查MongoDB資料庫執行個體的狀態(如負載及慢SQL情況),確保DTS可以正常執行查詢和寫入操作,然後重新啟動任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 561767791805127****) failed cause: FatalAnyAllException: common: DTS-100047: retry 22 times, 43506 seconds, which exceed the supposed 43200 seconds RuntimeException: com.mongodb.MongoExecutionTimeoutException: Executor error during getMore :: caused by :: operation exceeded time limit MongoExecutionTimeoutException: Executor error during getMore :: caused by :: operation exceeded time limit

DTS-RETRY-ERR-0361:Unknown table

可能原因:目標庫中缺少用於接收資料的表。

解決方案:根據報錯資訊和源庫的表結構,手動在目標庫中建立對應的表,然後重新啟動任務。

報錯樣本:

DTS-31007: get table **** detail info failed after retrying. cause: FatalAnyAllException: common: DTS-100047: retry 4312 times, 43209 seconds, which exceed the supposed 43200 seconds RecoverableAnyAllException: replicate-selectdb: DTS-70002: get table **** detail info failed. SQLException: errCode = 2, detailMessage = Unknown table ****

DTS-RETRY-ERR-0362:Not support string len over than `string_type_length_soft_limit_bytes`

可能原因:待寫入目標庫的STRING類型資料的長度,超過了SelectDB資料庫的限制。

解決方案:請根據待寫入目標庫的STRING類型資料的最大長度,適當調大SelectDB資料庫的string_type_length_soft_limit_bytes參數,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 52 times, 602 seconds, which exceed the supposed 600 seconds cause: IOException: Failed to stream load data to SelectDB.Key status is fail. Load result: **** add batch req success but status isn't ok, err: [E-1201]PStatus: (172.16.XX.XX)[E-1201]failed to append block: [NOT_IMPLEMENTED_ERROR]Not support string len over than `string_type_length_soft_limit_bytes` in vec engine., ****

DTS-RETRY-ERR-0363:Can't get text on a START_OBJECT

可能原因:目標Elasticsearch資料庫的結構異常。

解決方案:根據報錯資訊,將目標索引中相應欄位的類型更改為Object,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 15 times, 28 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: es: DTS-10035: failed to parse field **** of type [text] in document with id '13312'. Preview of field's value: '****', Can't get text on a START_OBJECT at 1:2380 CriticalAnyAllException: es: DTS-10035: failed to parse field **** of type [text] in document with id '13312'. Preview of field's value: '****', Can't get text on a START_OBJECT at 1:2380

DTS-RETRY-ERR-0364:no such index

可能原因:目標Elasticsearch資料庫中缺少索引。

解決方案:根據報錯資訊,在目標Elasticsearch資料庫中補充缺少的索引,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 15 times, 25 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: es: DTS-10035: no such index **** and **** contains [-*] which forbids automatic creation of the index CriticalAnyAllException: es: DTS-10035: no such index **** and **** contains [-*] which forbids automatic creation of the index

DTS-RETRY-ERR-0365:index read-only

可能原因:目標Elasticsearch資料庫為唯讀模式,導致資料無法寫入到目標庫。

解決方案:將目標Elasticsearch資料庫修改為可讀寫,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 15 times, 57 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: es: DTS-10035: blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]; CriticalAnyAllException: es: DTS-10035: blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];

DTS-RETRY-ERR-0366:unable to authenticate user

可能原因:任務使用的目標Elasticsearch資料庫的帳號或密碼錯誤。

解決方案:

  • 資料庫密碼錯誤:進入DTS執行個體控制台的基本資料頁面,在目標端地區單擊修改密碼,糾正目標Elasticsearch資料庫的密碼,然後重新啟動任務。

  • 資料庫帳號錯誤:使用正確的資料庫帳號和密碼,重新設定DTS任務。

報錯樣本:

unable to authenticate user [elastic]

DTS-RETRY-ERR-0367:in encoding "UTF8" has no equivalent in encoding "GBK" (.*)?

可能原因:由於目標庫與源庫的庫表字元集不相容,導致資料無法寫入到目標庫。

解決方案:修改目標庫表的字元集(例如修改為GB18030),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 4037 times, 43208 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: ERROR: character with byte sequence 0xee 0x96 0x83 in encoding "UTF8" has no equivalent in encoding "GBK" Where: unnamed portal parameter $12 Call getNextException to see other errors in the batch. PSQLException: ERROR: character with byte sequence 0xee 0x96 0x83 in encoding "UTF8" has no equivalent in encoding "GBK" Where: unnamed portal parameter $12

DTS-RETRY-ERR-0368:alter table (.*)? canceling statement due to user request (.*)?

可能原因:DTS執行個體初始化失敗。

解決方案:在業務低峰期(例如源庫和目標庫的CPU負載在30%以下),重新啟動任務。

報錯樣本:

DTS-52110: PostgresRecordExtractor Init Error: postgresql-reader: DTS-52511: alter replica identity thread exception, readerContext=ReaderContext [****] cause: CriticalAnyAllException: postgresql-reader: DTS-52511: alter replica identity thread exception ExecutionException: postgresql-reader: DTS--0001: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 300019 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 300019 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: canceling statement due to user request CriticalAnyAllException: postgresql-reader: DTS--0001: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 300019 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 300019 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: canceling statement due to user request

DTS-RETRY-ERR-0369:requested WAL segment (.*)? has already been removed

可能原因:源庫的WAL日誌已被移除。

解決方案:請聯絡源庫的管理員(DBA)進行處理,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 0 times, 1000 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed IOException: org.postgresql.util.PSQLException: ERROR: requested WAL segment 00000002000000F000000013 has already been removed PSQLException: ERROR: requested WAL segment 00000002000000F000000013 has already been removed

DTS-RETRY-ERR-0370:password authentication failed for user (.*)?

可能原因:使用任務配置的資料庫帳號和密碼,無法成功串連至資料庫。

解決方案:

  • 資料庫密碼錯誤:進入DTS執行個體控制台的基本資料頁面,在目標端地區單擊修改密碼,糾正資料庫的密碼,然後重新啟動任務。

  • 資料庫帳號錯誤:使用正確的資料庫帳號和密碼,重新設定DTS任務。

報錯樣本:

DTS-100047: retry 1 times, 44134 seconds, which exceed the supposed 43200 seconds cause: PSQLException: FATAL: password authentication failed for user ****

DTS-RETRY-ERR-0371:must be owner of table (.*)?

可能原因:任務配置的資料庫帳號許可權不足(需要owner許可權)。

解決方案:給任務使用的資料庫帳號授予足夠的許可權,然後重新啟動任務;或使用許可權充足的資料庫帳號配置任務。

報錯樣本:

DTS-52110: PostgresRecordExtractor Init Error: postgresql-reader: DTS-52511: alter replica identity thread exception, readerContext=ReaderContext [****] cause: CriticalAnyAllException: postgresql-reader: DTS-52511: alter replica identity thread exception ExecutionException: postgresql-reader: DTS--0001: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: must be owner of table **** CriticalAnyAllException: postgresql-reader: ****

DTS-RETRY-ERR-0372:jdbc-burst (.*)? Create connection failed (.*)?

可能原因:資料庫執行個體無法串連。

解決方案:請確保資料庫可以正常串連,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 1 times, 45377 seconds, which exceed the supposed 43200 seconds cause: DBCommonException: jdbc-burst: DTS-61015: Create connection failed (url: ****, user: ****) PSQLException: The connection attempt failed. EOFException: null

DTS-RETRY-ERR-0373:create publication error for (.*)? PSQLException: ERROR: operation is not allowed on this node Hint: Connect to the coordinator and run it again.

可能原因:源庫或目標庫為PolarDB PostgreSQL分布式版。

解決方案:DTS暫不支援PolarDB PostgreSQL分布式版叢集。

報錯樣本:

DTS-100047: retry 0 times, 1001 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed CriticalAnyAllException: postgresql-reader: DTS-52514: create publication error for **** PSQLException: ERROR: operation is not allowed on this node Hint: Connect to the coordinator and run it again.

DTS-RETRY-ERR-0374:postgres logical log not find (.*)?

可能原因:DTS未在源庫中找到對應位點的資料。

解決方案:請重新設定任務。

報錯樣本:

DTS-100047: retry 0 times, 1001 seconds, which exceed the supposed 600 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed CriticalAnyAllException: postgresql-reader: DTS-52511: postgres logical log not find

DTS-RETRY-ERR-0375:FATAL: terminating connection due to out of memory (.*)?

可能原因:資料庫記憶體OOM(Out of Memory)。

解決方案:請聯絡資料庫的管理員(DBA)進行處理,然後重新啟動任務。

報錯樣本:

DTS-52111: Increment Context Is Not Running..: cause: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed CriticalAnyAllException: postgresql-reader: DTS--0001: execute sql select **** failed, case by common: DTS-100047: retry 0 times, 401 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 401 seconds, which exceed the supposed 43200 seconds PSQLException: FATAL: terminating connection due to out of memory

DTS-RETRY-ERR-0376:function dt_sub is not supported, maybe is op_sub (.*)?

可能原因:ETL的資料處理語句錯誤,導致ETL執行失敗。

解決方案:

  • 同步執行個體:根據報錯資訊,檢查並修正資料處理語句,然後重新啟動任務。更多資訊,請參見在DTS遷移或同步任務中配置ETL

  • 遷移執行個體:重新設定遷移任務,填入正確的資料處理語句。

報錯樣本:

DTS--0001: Error while parsing ETL script function dt_sub is not supported, maybe is op_sub cause: ParseException: function dt_sub is not supported, maybe is op_sub

DTS-RETRY-ERR-0378:An I/O error occurred while sending to the backend (.*)?

可能原因:由於DTS與目標庫的網路通訊逾時,導致資料無法寫入到目標庫。

解決方案:請確保目標庫的狀態正常且可以正常串連,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 11 times, 43315 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: An I/O error occurred while sending to the backend. Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** on conflict do nothing was aborted: An I/O error occurred while sending to the backend. Call getNextException to see other errors in the batch. PSQLException: An I/O error occurred while sending to the backend. SocketTimeoutException: Read timed out

DTS-RETRY-ERR-0379:deadlock detected (.*)?

可能原因:DTS執行個體初始化失敗。

解決方案:在業務低峰期(例如源庫和目標庫的CPU負載在30%以下),重新啟動任務。

報錯樣本:

DTS-52110: PostgresRecordExtractor Init Error: postgresql-reader: DTS-52511: alter replica identity thread exception, readerContext=ReaderContext **** cause: CriticalAnyAllException: postgresql-reader: DTS-52511: alter replica identity thread exception ExecutionException: postgresql-reader: DTS--0001: alter table identity: **** failed, case by common: DTS-100047: retry 0 times, 2003 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 2003 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: deadlock detected Detail: Process 18023 waits for AccessShareLock on relation 122000 of database 16392; blocked by process 18028. Process 18028 waits for AccessExclusiveLock on relation 121960 of database 16392; blocked by process 18023. Hint: See server log for query details.

DTS-RETRY-ERR-0380:index row size (.*)? exceeds maximum (.*)? for index (.*)?

可能原因:目標庫的表結構與源庫不一致(待寫入目標庫的索引長度超過了該資料庫的限制),導致資料無法寫入到目標庫。

解決方案:根據報錯資訊和源庫的表結構,將目標庫的表結構修改為與源庫一致(或相容),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 3798 times, 43209 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: ERROR: index row size 3368 exceeds maximum 2712 for index "company_recommend_t****" Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** values **** on conflict do nothing was aborted: ERROR: index row size 3368 exceeds maximum 2712 for index "company_recommend_t****" Call getNextException to see other errors in the batch. PSQLException: ERROR: index row size 3368 exceeds maximum 2712 for index "company_recommend_t****"

DTS-RETRY-ERR-0381:canceling statement due to statement timeout (.*)?

可能原因:DTS執行個體初始化失敗。

解決方案:在業務低峰期(例如源庫和目標庫的CPU負載在30%以下),重新啟動任務。

報錯樣本:

DTS-52110: PostgresRecordExtractor Init Error: postgresql-reader: DTS-52511: alter replica identity thread exception, readerContext=ReaderContext **** cause: CriticalAnyAllException: postgresql-reader: DTS-52511: alter replica identity thread exception ExecutionException: postgresql-reader: DTS--0001: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 59975 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 59975 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: canceling statement due to statement timeout CriticalAnyAllException: postgresql-reader: DTS--0001: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 59975 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 59975 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: canceling statement due to statement timeout

DTS-RETRY-ERR-0382:violates foreign key constraint (.*)?

可能原因:源庫待同步或遷移的資料中包含外鍵,且目標庫帳號不足(不為高許可權帳號或者super許可權帳號)。

解決方案:手動將目標資料庫中session_replication_role的參數值設定為replica,然後重新啟動任務。在DTS任務結束或釋放後,您可以將session_replication_role的參數值改回origin

說明

如果未配置該參數,在特殊情境下(例如目標庫存在串聯更新、串聯刪除等操作,或目標庫存在觸發器等)可能會導致資料不一致。

報錯樣本:

DTS-100047: retry 717 times, 7200 seconds, which exceed the supposed 7200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: ERROR: insert or update on table **** violates foreign key constraint **** is not present in table ****. Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** on conflict do nothing was aborted: ERROR: insert or update on table **** violates foreign key constraint **** is not present in table ****. Call getNextException to see other errors in the batch. PSQLException: ERROR: insert or update on table **** violates foreign key constraint **** is not present in table ****

DTS-RETRY-ERR-0383:value too long for type (.*)?

可能原因:目標庫的表結構(例如列的類型或長度)與源庫不一致,導致資料無法寫入到目標庫。

解決方案:根據報錯資訊和源庫的表結構,將目標庫的表結構修改為與源庫一致(或相容),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 4297 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing,currentRow **** on conflict do nothing was aborted: ERROR: value too long for type character varying(17) Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** on conflict do nothing was aborted: ERROR: value too long for type character varying(17) Call getNextException to see other errors in the batch. PSQLException: ERROR: value too long for type character varying(17)

DTS-RETRY-ERR-0384:Function "TIMESTAMP" not found (.*)?

可能原因:當前任務配置的過濾條件中,包含源庫不存在的對象。

解決方案:

  • 同步任務:使用修改同步對象功能修改過濾條件。更多資訊,請參見後續操作

  • 遷移任務:請重新設定任務,並使用正確的過濾條件。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 247513824836871****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds DbException: Function "TIMESTAMP" not found [90022-193] JdbcSQLException: Function "TIMESTAMP" not found [90022-193]

DTS-RETRY-ERR-0385:Could not find a server with specified targetServerType: primary (.*)?

可能原因:目標庫發生主備切換,導致資料無法寫入到目標庫。

解決方案:請聯絡資料庫的管理員(DBA)進行處理,然後重新啟動任務。

報錯樣本:

DTS-100047: retry 1 times, 43335 seconds, which exceed the supposed 43200 seconds cause: DBCommonException: jdbc-burst: DTS-61015: Create connection failed **** PSQLException: Could not find a server with specified targetServerType: primary

DTS-RETRY-ERR-0386:syntax error at or near (.*)? alter table identity

可能原因:源庫或目標庫的表名包含特殊字元。

解決方案:請聯絡阿里雲技術支援人員處理。

報錯樣本:

DTS-52110: PostgresRecordExtractor Init Error: postgresql-reader: DTS-52511: alter replica identity thread exception, readerContext=ReaderContext**** cause: CriticalAnyAllException: postgresql-reader: DTS-52511: alter replica identity thread exception ExecutionException: postgresql-reader: DTS-00035: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: syntax error at or near **** Position: 35 CriticalAnyAllException: postgresql-reader: DTS-00035: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: syntax error at or near ****

DTS-RETRY-ERR-0387:terminating connection due to administrator command (.*)?

可能原因:您斷開了DTS與資料庫之間的串連。

解決方案:請重新設定任務。

報錯樣本:

DTS-52111: Increment Context Is Not Running..: cause: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed CriticalAnyAllException: postgresql-reader: DTS-52514: create publication error for dts_sync_**** CriticalAnyAllException: postgresql-reader: DTS--0001: execute sql select prrelid from pg_public**** where prpubid = 6543770; failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds PSQLException: FATAL: terminating connection due to administrator command

DTS-RETRY-ERR-0388:index row size (.*)? exceeds btree version (.*)? maximum (.*)? for index

可能原因:目標庫的表結構與源庫不一致(待寫入目標庫的索引長度超過了該資料庫的限制),導致資料無法寫入到目標庫。

解決方案:根據報錯資訊和源庫的表結構,將目標庫的表結構修改為與源庫一致(或相容),然後重新啟動任務。

報錯樣本:

DTS-100047: retry 4252 times, 43206 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: ERROR: index row size 2808 exceeds btree version 4 maximum 2704 for index **** Detail: Index row references tuple (7968098,6) in relation ****. Hint: Values larger than 1/3 of a buffer page cannot be indexed. Consider a function index of an MD5 hash of the value, or use full text indexing. Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** on conflict do nothing was aborted: ERROR: index row size 2808 exceeds btree version 4 maximum 2704 for index ****" Detail: Index row references tuple (7968098,6) in relation ****. Hint: Values larger than 1/3 of a buffer page cannot be indexed. Consider a function index of an MD5 hash of the value, or use full text indexing. Call getNextException to see other errors in the batch. PSQLException: ERROR: index row size 2808 exceeds btree version 4 maximum 2704 for index **** Detail: Index row references tuple (7968098,6) in relation ****. Hint: Values larger than 1/3 of a buffer page cannot be indexed. Consider a function index of an MD5 hash of the value, or use full text indexing.

其他常見的報錯

DTS-10015

報錯說明:無法串連到Redis。

可能原因:Redis伺服器異常,導致無法串連。

解決方案:請檢查Redis服務端狀態,是否能正常串連,並修複Redis問題。

報錯樣本:

DTS-10015: unreachable redis network.JedisConnectionException: Could not get a resource from the poolJedisConnectionException: Failed connecting to ip_address:portConnectException: Connection timed out (Connection timed out)

DTS-10046

報錯說明:SQL執行異常。

可能原因:資料庫帳號缺失CREATE TABLE許可權。

解決方案:檢查許可權並賦予相應許可權。

說明

一般情況下,伴隨此錯誤碼,系統會同時輸出資料庫層面的具體報錯資訊。請參考具體報錯內容,檢查錯誤訊息中的SQL語句並進行修複。

報錯樣本:

DTS-10046: execute sql: CREATE TABLE if not exists`dts`.`table_name` ( `id` int(11) NOTNULL,`column1` bigint(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULTCHARSET=utf8 failed. Create TransactionTable failed. cause:MySQLSyntaxErrorException: CREATE command denied to user 'username'@'ip_address' for table 'table_name'

DTS-30005

報錯說明:內部處理中儲存中繼資料資訊失敗。

可能原因:源庫存在表名相同,但是大小寫不同的表(如,TABLE和table),DTS當前不支援這種形式。

解決方案:檢查源庫並核實商務邏輯,修改源庫中其中1個表名,並重建任務。

報錯樣本:

DTS-30005: save changed job progress info failed cause: SQLException:result content unexpected. expect 3 time 1, actually [2, 1, 1]

DTS-30011

報錯說明:寫入資料異常。

可能原因1:

  • 磁碟空間已滿。

  • 表的大小已達上限。

解決方案1:

  • 擴容磁碟後重新啟動任務。

  • 在資料庫層面解決表的上限值問題。解決後重新啟動任務。

    說明

    針對MySQL資料庫,表的上限值設定,可參考B.3.2.10 The table is full

報錯樣本1:

DTS-30011:put 2048 records error, currentRunningSQL:insert ignore into `xxx`.`yyy`(...), currentRunningRecordRange:{id:5362875948821643265,xxx.yyy,field:DefaultRecordField:{fieldName=aaa, dataType={typeName:BIGINT, typeId:-5, isLobType:false,encoding:null}, sourceDataType=null, aliases=[], defaultValue=null,nullable=false, unique=true, primary=true,generated=false},leftValue:1293615822270500864,rightValue:1311217506282770432,partition:null}cause: BatchUpdateException: The table 'yyy' is full SQLException: The table'yyy' is full

可能原因2:目標庫存在鎖等待逾時。

解決方案2:目標庫為MySQL時,可通過以下命令檢查目標庫鎖的狀況。

SHOW FULL PROCESSLIST;
SELECT
* FROM innodb_trx;
說明

修複完成後,需要重新啟動任務。

報錯樣本2:

DTS-30011: put 2048 records error, currentRunningSQL:insert ignore into`xxx`.`yyy`(...:{id:4958981218625388545,schema:xxx.yyy,field:DefaultRecordField:{fieldName=aaa, dataType={typeName:INTEGER, typeId:4, isLobType:false,encoding:null}, sourceDataType=null, aliases=[], defaultValue=null,nullable=false, unique=true, primary=true,generated=false},leftValue:512021,rightValue:1024022,partition:null} cause:BatchUpdateException: Lock wait timeout exceeded; try restarting transactionMySQLTransactionRollbackException: Lock wait timeout exceeded; try restartingtransaction

可能原因3:目標庫的狀態為Read-Only。

解決方案3:

  • 通過SELECT @@read_only;語句檢查目標庫的狀態是否為唯讀狀態。

  • 通過SET GLOBAL read_only=0;語句關閉唯讀狀態。

說明

關閉唯讀狀態後,需要重新啟動任務。

報錯樣本3:

DTS-30011: put 2048 records error, currentRunningSQL:insert ignore into`xxx`.`yyy`(`...,currentRunningRecordRange:{id:4050997257913237860,schema:xxx.yyy,field:DefaultRecordField:{fieldName=id, dataType={typeName:BIGINT, typeId:-5, isLobType:false, encoding:null},sourceDataType=null, aliases=[], defaultValue=null, nullable=false,unique=true, primary=true,generated=false},leftValue:5424204045,rightValue:5424982251,partition:null}cause: SQLException: The MySQL server is running with the --read-only option soit cannot execute this statement

DTS-30018

報錯說明:列不存在。

可能原因:

  • 配置任務時未選擇結構遷移,從而導致源端和目標端的表結構不一致。

  • 任務配置後,在源端或目標端執行DDL修改了表結構,從而導致源端和目標端的表結構不一致。

解決方案:調整源端和目標端的表結構,確保兩端表結構一致。

說明

如果您的實際情況不符合以上原因,請嘗試以下方法:

  • 嘗試重新啟動任務看能否恢複。

  • 嘗試將報錯的表從同步對象刪除並重新添加,看能否恢複任務。

報錯樣本:

DTS-30018: Can not find column [column_in_source<-->column_in_target] in target table db_name.table_name

DTS-30019

報錯說明:列不存在。

可能原因:

  • 配置任務時未選擇結構遷移,從而導致源端和目標端的表結構不一致。

  • 任務配置後,在源端或目標端執行DDL修改了表結構,從而導致源端和目標端的表結構不一致。

解決方案:調整源端和目標端的表結構,確保兩端表結構一致。

說明

如果您的實際情況不符合以上原因,請嘗試以下方法:

  • 嘗試重新啟動任務看能否恢複。

  • 嘗試將報錯的表從同步對象刪除並重新添加,看能否恢複任務。

報錯樣本:

DTS-30019: Can not find column [column_in_source<-->column_in_target] in target table db_name.table_name

DTS-30020

報錯說明:SQL執行異常。

可能原因:資料庫帳號缺失CREATE TABLE許可權。

解決方案:檢查許可權並賦予相應許可權。

說明

一般情況下,伴隨此錯誤碼,系統會同時輸出資料庫層面的具體報錯資訊。請參考具體報錯內容,檢查錯誤訊息中的SQL語句並進行修複。

報錯樣本:

DTS-30020: execute sql: CREATE TABLE if not exists`dts`.`table_name` ( `id` int(11) NOTNULL,`column1` bigint(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULTCHARSET=utf8 failed. Create TransactionTable failed. cause:MySQLSyntaxErrorException: CREATE command denied to user 'username'@'ip_address' for table 'table_name'

DTS-31009/DTS-51009/DTS-50019

報錯說明:DTS寫入模組讀取不到DTS緩衝模組中指定時間點的資料。

可能原因1:任務暫停過久,重啟後DTS緩衝模組中已沒有相應位點(2021-5-20 21:17:51)的資料。

說明

報錯提示顯示的時間格式為Unix時間戳記,您可以使用搜尋引擎擷取Unix時間戳記轉換工具,將Unix時間戳記轉換為UTC時間。

解決方案1:

  • 方法一:請查看源庫中用於增量資料解析的日誌(如Binlog或Redolog等),其時間範圍是否包括該時間點。若包括,請聯絡阿里雲技術支援人員處理。

  • 方法二:需重新建立任務。後續執行任務時,請勿長時間暫停任務,暫停超過6個小時,任務將不能成功啟動。

可能原因2:任務失敗過久,修複後DTS緩衝模組中已沒有相應位點的資料。

解決方案2:需重新建立任務。後續執行任務時,如遇任務報錯,請儘快修複問題並恢複任務,避免任務因失敗過久而無法恢複。

可能原因3:全量遷移或全量同步期間,DTS本地會迴圈儲存源庫近24小時或者50 GB的資料日誌,用於增量資料解析。如果全量遷移或全量同步期間較長,DTS本地可能已經清除全量任務啟動後緩衝的資料日誌,導致用於增量解析的資料日誌不完整。

解決方案3:需重新建立任務。建立任務前,請評估遷移或同步資料量,如資料量較大,建議拆分成多個遷移或同步任務。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 911705268553777****) failed cause: CriticalAnyAllException: 
capture-dstore: DTS-51009: Failed to fetch records from dstore CriticalAnyAllException: capture-dstore: DTS-50019: 
seek timestamp for topic [-0] with position [{"timestamp":1621516671, "offset":-1}] failed

DTS-31009/DTS-51009

報錯說明:DTS寫入模組讀取DTS緩衝模組時,顯示連線逾時。

可能原因:網路抖動等原因導致當前資料寫入模組串連緩衝模組逾時。

解決方案:您可以嘗試重新啟動任務,查看重啟後任務是否恢複正常。

報錯樣本:

DTS-31009: In process of processing data (recordRange: 579980698763814****) failed cause: CriticalAnyAllException: 
capture-dstore: DTS-51009: Failed to fetch records from dstore TimeoutException: Failed to get offsets by times in 
120000 ms

DTS-60001

報錯說明:無法串連到源端資料庫。

可能原因:使用者名稱或密碼不正確。

解決方案:輸入正確的使用者名稱和密碼,並重新啟動任務。

說明

若您的實際情況不符合上述原因,請嘗試以下方法:

報錯樣本:

DTS-60001: Create connection failed (url:ip_address:port, user: username) cause: SQLException: Access denied for user'username'@'ip_address' (using password: YES)

DTS-61015

報錯說明:無法串連到源端資料庫。

可能原因:源端資料庫連接數過多。

解決方案:請檢查資料庫配置的最大串連數以及資料庫佔用串連的數量,根據結果做相應的修改後(如修改資料庫的最大串連數的參數max_connections),然後重新啟動任務。

報錯樣本:

DTS-61015: Create connection failed(url:ip_address:port, user: username) cause:MySQLNonTransientConnectionException: Data source rejected establishment ofconnection, message from server: "Too many connections"

DTS-70002

報錯說明:無法串連資料庫,或對應的庫或表不存在。

可能原因:結構遷移報錯,導致相應表沒有遷移到目標端,也未在目標端手動建立表結構。

解決方案:根據報錯資訊中的內容檢查庫或表是否存在。若不存在:

  • 同步任務:將報錯的表從同步對象中移除並重新添加,看能否恢複任務。

  • 遷移任務:重建鏈路。

報錯樣本:

DTS-70002: get table detail info failed after 151times (user: db_name, database:table_name) MySQLSyntaxErrorException: Table 'db_name.table_name'doesn't exist

DTS-70004

報錯說明:SQL執行異常。

說明

一般情況下,目標庫為AnalyticDB for MySQL時,會出現樣本報錯資訊。

可能原因1:鏈路不支援該類型的DDL操作,從而導致DDL執行失敗。

解決方案1:

  • 非整庫同步:建議重新同步這張表(即先從同步對象中去掉,然後刪除目標庫的表,再把這張表加入到同步對象中)。DTS會重新進行包括Schema拉取的全量同步,這樣會跳過此類型的DDL操作。

  • 整庫同步:在AnalyticDB for MySQL中建立一張表,表名要不同於報錯的表,表結構需要和源表的表結構一致。通過INSERT INTO SELECT將源表中的資料寫入建立表中,刪除報錯的表,然後通過RENAME將新表更名為報錯的表名,重新啟動任務即可。

報錯樣本1:

DTS-70004: execute statement failed: /*dts_id=dtsaaaaaaaaaa*/alter table`xxx`.`yyy` modify column `aaa` INT default 0 comment 'bbb' cause:SQLException: [15018, 2021030506452201000000420803151947572] modify column type is not supported, col=x, oldType=bigint, newType=int

可能原因2:目標庫執行了SHUTDOWN操作。

解決方案2:確認目標庫正常後,重新啟動任務。

報錯樣本2:

DTS-70004:execute statement failed: /*aaaaaaaaaaMysqlEngine(28)*/update `xxx`.`yyy` set... error detail message:Server shutdown in progress MySQLNonTransientConnectionException: Server shutdown in progress

可能原因3:網路問題或帳號許可權問題,AnalyticDB for MySQL資料庫不允許對應帳號進行遠程登入。

解決方案3:

說明

修複完成後,需要重新啟動任務。

報錯樣本3:

DTS-70004:execute statement failed: /*aaaaaaaaaaMysqlEngine(27)*/update `xxx`.`yyy` set... cause: SQLException: null, message from server: "Host '192.10.XX.XX' isnot allowed to connect to this MySQL server"

可能原因4:對應表不存在。

解決方案4:

  • 檢查該表在目標庫是否已被刪除。

  • 檢查該表的結構是否已同步或遷移到目標庫。

說明

修複完成後,需要重新啟動任務。

報錯樣本4:

DTS-70004: execute statement failed: /*bg6l15vf29l1b0vMysqlEngine(16)*/insertinto `xxx`.`yyy` ... error detail message:Table 'xxx.yyy' doesn't existMySQLSyntaxErrorException: Table 'xxx.yyy' doesn't exist

可能原因5:不符合資料庫的完整性規範約束,例如,不允許為空白的列插入了NULL。

解決方案5:檢查表結構和DML語句涉及的記錄,確保源和目標表結構一致,或者訂正資料後重新啟動任務。

報錯樣本5:

DTS-70004: execute statement failed:/*o3z5bntMysqlEngine(0)*/insert into`xxx`.`yyy` ...error detail message:Column 'aaa' cannot be nullMySQLIntegrityConstraintViolationException: Column 'aaa' cannot be null

可能原因6:目標庫帳號相關許可權不足。

解決方案6:檢查目的庫帳號是否具有報錯資訊中提示的許可權,如有缺失,補足許可權後重新啟動任務。

報錯樣本6:

DTS-70004: execute statement failed:/*s2gb356ds228bt8MysqlEngine(0)*/insert into `xxx`.`yyy` (`...`)values(...)error detail message:INSERT command denied to user'user'@'100.104.175.31' for table 'yyy' MySQLSyntaxErrorException: INSERTcommand denied to user 'user'@'100.104.175.31' for table 'yyy'

DTS-70019

報錯說明:列不存在。

可能原因:

  • 配置任務時未選擇結構遷移,從而導致源端和目標端的表結構不一致。

  • 任務配置後,在源端或目標端執行DDL修改了表結構,從而導致源端和目標端的表結構不一致。

解決方案:調整源端和目標端的表結構,確保兩端表結構一致。

說明

如果您的實際情況不符合以上原因,請嘗試以下方法:

  • 嘗試重新啟動任務看能否恢複。

  • 嘗試將報錯的表從同步對象刪除並重新添加,看能否恢複任務。

報錯樣本:

DTS-70019: Can not find column [column_in_source<-->column_in_target] in target table db_name.table_name

DTS-71016

報錯說明:無法串連到目標端資料庫。

可能原因1:目標端資料庫連接數過多。

解決方案1:調整目標端資料庫的最大串連數,並重新啟動任務。

報錯樣本1:

DTS-71016: connect target failed (url: jdbc:mysql://ip_address:port?parameters)cause: MySQLNonTransientConnectionException: Data source rejected establishmentof connection, message from server: "Too many connections"

可能原因2:同一個IP地址在短時間內產生太多失敗的資料庫連接,從而導致串連被阻塞。

解決方案2:在目標端資料庫側修複問題(比如提高MAX_CONNECTION_ERRORS的值)後,重新啟動任務。

報錯樣本2:

DTS-71016: connect target failed (url: jdbc:mysql://ip_address:port?parameters)cause: SQLException: null, message from server: "Host 'ip_address' isblocked because of many connection errors; unblock with 'mysqladminflush-hosts'"

DTS-1051009

報錯說明:DTS解析MySQL資料庫Binlog日誌異常。

可能原因:Binlog中的表結構與DTS本地的表結構不一致,導致Binlog解析失敗。出現這種表結構不一致的主要原因是:該表結構變更DDL語句未記錄到Binlog中,導致DTS解析不到DDL,未更新本機存放區的表結構。例如:執行SET SESSION sql_log_bin=0語句修改某個表的欄位類型,比如INT(11)修改為BIGINT(20)。

解決方案:需重新載入DTS本機存放區的表結構。請聯絡阿里雲技術支援人員處理。

報錯樣本:

java.IOEException: java.lang.IllegalArgumentException: Valid type fail, Column:column_name,Type:type_number

DTS-100047

報錯說明:DTS串連資料庫執行個體逾時。

可能原因:資料庫執行個體的逾時時間參數過小。

解決方案:請適當調大net_read_timeout和net_write_timeout的參數值,然後重新啟動任務。

報錯樣本:

****
FatalAnyAllException:common:DTS-100047:retry0times,4791628seconds,whichexceedthesupposed600seconds
CriticalAnyAllException:framework:DTS-31009:readsourcedataerror
****