DTS-077100 向目標庫同步資料時出錯
DTS向目標庫表同步DML/DDL資料操作時出錯,一般是目標庫的某些原因導致的.
首先,DTS不支援目標表上建有觸發器的場景,在該種情況下,任何錯誤都有可能發生(包括資料不一致等資料質量問題).
一.錯誤列表
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '3205385' for key 'PRIMARY'.
主鍵或唯一鍵衝突的錯誤.
原因:該錯誤一般是由目標表'xxx'.'xxx'上的觸發器引起的(DTS的操作對'xxx'.'xxx'表不會引起主鍵或唯一鍵衝突,而是這張表上的觸發器內部sql引起的).參考DTS遷移觸發器的說明.
解決方案: 刪除目標表'xxx'.'xxx'上的觸發器,點選重新啟動即可恢復.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '***' in 'field list'.
列不存在的錯誤.
原因:該錯誤一般是由於使用者在目標表'xxx'.'xxx'上刪除了'***'列導致的(如果使用者真的不需要該列的話,可以在源表中刪除該列,DTS會自動同步該刪除列的DDL到目標表;如果使用者想在源表上保留該列的話,就應該在建立任務時選擇過濾該列).
解決方案: 使用者手動在目標表'xxx'.'xxx'上建上該列'***',點選重新啟動即可恢復.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'xxx.xxx' doesn't exist.
表不存在的錯誤.
原因:該錯誤一般是使用者在目標表'xxx'.'xxx'上刪除了該表導致的(如果使用者真的不需要該列的話,可以在源表中刪除該列,DTS會自動同步該刪除列的DDL到目標表;如果使用者想在源表上保留該列的話,就應該在建立任務時選擇過濾該列).
解決方案: 使用者手動在目標庫上建上該不存在的表'xxx'.'xxx',點選重新啟動即可恢復.
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column '***' cannot be null.
列不允許為null的錯誤.
原因:該錯誤一般是由使用者在目標表'xxx'.'xxx'上修改該列不允許為null導致的.
解決方案: 使用者手動在目標庫表上將該列修改為允許為null,點選重新啟動即可恢復.
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (...).
違反外來鍵約束錯誤.
原因:該錯誤一般是由使用者目標庫不支援session級別禁止外來鍵檢查導致的(使用者自研的MySQL分支版本).
解決方案: 使用者手動在目標庫表上刪除響應的外來鍵約束,點選重新啟動即可恢復.
java.sql.SQLException: The MySQL server is running with the --read-only option so it cannot execute this statement.
目標庫只允許讀操作了(--read-only).
原因:目標庫被設定只讀了,可能是使用者操作或者是RDS例項過期(磁碟滿/內部主備切換)等原因.
解決方案: 使用者可設定目標庫可寫或者續費RDS例項(升級RDS例項磁碟空間)之後,點選重新啟動即可恢復.
java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction.
在目標庫執行寫操作時獲取鎖超時(Lock wait timeout exceeded).
原因:目標庫可能存在與該表相關的長查詢或者DDL.
解決方案:等待目標庫的相關長查詢或者DDL執行完之後,點選重新啟動即可恢復.
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: INSERT(DELETE/UPDATE) command denied to user 'xxx'@'***' for table '*'.
在目標庫執行寫操作時無許可權錯誤(INSERT(DELETE/UPDATE) command denied to user).
原因:目標RDS磁碟滿或者過期鎖定.
解決方案:升級RDS磁碟空間或者續費之後,點選重新啟動即可恢復.
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (12014078 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.
在目標庫執行寫操作的sql超過max_allowed_packet限制(Packet for query is too large...).
原因:目標庫的max_allowed_packet設定太小.
解決方案:在目標例項上用高許可權調整max_allowed_packet的大小(SET global max_allowed_packet=***),點選重新啟動即可恢復.
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool.
在目標庫執行寫操作時獲取連線失敗.
原因:無法連線目標Redis庫.
解決方案:確認目標Redis庫可訪問之後,點選重新啟動即可恢復.
相關文章
- django資料庫同步時報錯“Table 'XXX' already exists”Django資料庫
- ogg在異構資料庫實時雙向同步中如何防止資料死迴圈同步資料庫
- 在Linux中,rsync同步時,如何刪除目標資料多出來的資料,即源上不存在,但目標卻存在的檔案或者目錄?Linux
- 向PostgreSQL資料庫插入Date型別資料包錯SQL資料庫型別
- 利用python實現mysql資料庫向sqlserver的同步PythonMySql資料庫Server
- 資料庫同步資料庫
- cdc目標端資料庫初始化(backup restore)資料庫REST
- 做資料庫分離讀寫時,sqlServer資料庫資料同步的問題:資料庫SQLServer
- 阿里 Canal 實時同步 MySQL 增量資料至 ClickHouse 資料庫阿里MySql資料庫
- python將目標檢測資料匯入到指定資料庫中Python資料庫
- laravel 資料庫遷移時報錯Laravel資料庫
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- 【mysql】關於連線mysql資料庫時出現的時區錯誤time zoneMySql資料庫
- SQLYOG連線資料庫時報錯1251SQL資料庫
- 康孚備份資料庫時報錯資料庫
- SQL Server資料庫遠端更新目標表資料的儲存過程SQLServer資料庫儲存過程
- SQL Server 2014如何使用遊標迴圈向遠端資料庫插入資料SQLServer資料庫
- 資料庫同步利器 otter 雙A同步配置資料庫
- DataX將MySql資料庫資料同步到Oracle資料庫MySql資料庫Oracle
- windows10時間同步出錯怎麼辦Windows
- asp網站提示資料庫連線出錯網站資料庫
- 目標檢測資料集分析
- 實時資料庫與時序資料庫資料庫
- DataX將Oracle資料庫資料同步到達夢資料庫Oracle資料庫
- 雲資料庫逐漸成熟,阿里雲提出“去O”小目標資料庫阿里
- Error infos:DedeCms錯誤警告:連線資料庫失敗,可能資料庫密碼不對或資料庫伺服器出錯!Error資料庫密碼伺服器
- Error infos: DedeCms錯誤警告:連線資料庫失敗,可能資料庫密碼不對或資料庫伺服器出錯!Error資料庫密碼伺服器
- Oracle資料庫——資料匯出時出現匯出成功終止, 但出現警告。Oracle資料庫
- 小白QT tableView實時修改同步到QSqlTableModel MODEL 即時修改資料庫QTViewSQL資料庫
- 【MybatisPlus】資料庫的datetime型別欄位為空的時候,報錯空指標?MyBatis資料庫型別指標
- 【MySQL 資料庫】MySQL目錄MySql資料庫
- PbootCMS資料庫配置,修改為Mysql資料庫,配置Mysql出錯解決辦法boot資料庫MySql
- [BUG反饋]使用mysqli資料庫驅動時,還原資料庫備份時,出錯,提示沒有 free_result()函式未找到!MySql資料庫函式
- 資料庫非同步操作資料庫非同步
- [資料庫]MYSQL主從同步資料庫MySql主從同步
- 什麼是資料實時同步,為什麼資料實時同步很重要
- python標準庫目錄Python
- 【資料庫資料恢復】Oracle資料庫檔案出現壞塊報錯的資料恢復案例資料庫資料恢復Oracle