日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

如何解決關于表結構的報錯?

本文介紹如何解決DTS實例運行過程中,關于表結構報錯的問題。

目標庫為MySQL

報錯:Specified key was too long; max key length is 767 bytes

可能原因:MySQL的InnoDB引擎支持的表索引字段最大長度為767字節。

解決方法:對于5.6和5.7版本的RDS MySQL,您可以將目標實例innodb_large_prefix參數的值修改為ON,然后重新啟動任務。修改參數的方法,請參見修改實例參數

報錯:Unknown collation: 'XXX'

可能原因:當前MySQL版本數據庫不支持的字符集排序。

解決方法:手動修改字符集排序訂正DDL語句。

報錯:Unknown database 'XXX'

可能原因1:DTS任務使用的數據庫賬號權限不足,無法在目標端創建該數據庫。

解決方法1:手動在目標端創建報錯信息中的數據庫,然后重新啟動任務。

可能原因2:同步或遷移對象中,有與報錯數據庫相關聯的對象。

解決方法2:確認報錯信息中的數據庫是否需要同步或遷移。

  • 需要:將報錯信息中的數據庫,添加為待同步或遷移對象。

  • 不需要:忽略報錯信息中的數據庫。

報錯:Access denied for user 'XXXX'@'%' to database 'XXXX'

可能原因:DTS任務使用的數據庫賬號,沒有訪問報錯信息中的數據庫的權限。

解決方法:

  • 方法一:使用權限足夠的數據庫賬號,創建DTS任務。

  • 方法二:給報錯信息中的賬號,授予足夠的權限。

報錯:Table ' XXX' doesn't exist

可能原因:創建VIEW等對象時,依賴的對象不存在。

解決方法:確認源庫中是否存在依賴的對象。

  • 存在:將依賴的對象,添加為待同步或遷移對象。

  • 不存在:可以選擇忽略對象。

報錯:Unknown column 'xx.xxx' in 'field list'

可能原因:查詢的VIEW已經失效,字段已經不在所屬表中。

解決方法:確認是否繼續使用此對象。

  • 是:可以選擇忽略對象。

  • 否:修改DDL訂正表的結構,然后重新啟動任務。

報錯: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).

可能原因:目標庫開啟了Binlog,對于開啟Binlog的實例,創建的函數有條件限制。

解決方法:確認是否繼續使用此對象。

  • 是:手動執行set log_bin_trust_function_creators = 1后,再執行修改對象的DDL。

  • 否:可以選擇忽略對象。

目標庫為PostgreSQL

報錯:relation "XXX" does not exist

可能原因:報錯信息中的對象依賴的對象不存在。

解決方法:

  • 方法一:重新配置任務,將依賴的對象加入待同步或遷移的對象中。

  • 方法二:手動將依賴的對象遷移到目標庫,再重新啟動任務。

報錯:type XXX does not exist

可能原因:待同步或遷移對象依賴的自定義類型不存在。

解決方法:

  • 方法一:重新配置任務,將依賴的自定義類型加入待同步或遷移的對象中。

  • 方法二:手動在目標庫創建依賴的自定義類型或插件,然后重新啟動任務。

報錯:permission denied to create extension "XXXX" Hint: Must be superuser or user with all of rds_superuser to create this extension.

可能原因:DTS任務使用的數據庫賬號權限不足,無法執行報錯信息中的插件。

解決方法:

  • 方法一:使用權限足夠的數據庫賬號,創建DTS任務。

  • 方法二:手動在目標庫創建報錯信息中的插件,然后重新啟動任務。

目標庫為云原生數據倉庫 AnalyticDB MySQL 版

報錯:XXXX=> db not found. use `show databases` to see all dbs.

可能原因:目標庫中不存在報錯信息中的數據庫。

解決方法:手動在目標庫創建報錯信息中的數據庫,然后重新啟動任務。

目標庫為SQL Server

報錯:列名 'XXX' 無效

可能原因:待同步或遷移的表結構發生變化,刪除了部分列,導致VIEW、PROC或FUNC不可用。

解決方法:

  • 方法一:可以選擇忽略對象。

  • 方法二:請根據報錯信息修正DDL語句,然后重新啟動任務。

報錯:The server principal "XXX" is not able to access the database "XXX" under the current security context.

可能原因:DTS任務使用的數據庫賬號權限不足。

解決方法:

  • 方法一:使用權限足夠的數據庫賬號,創建DTS任務。

  • 方法二:給報錯信息中的賬號,授予足夠的權限。

報錯:VIEW、PROC或FUNC中的DDL語句報錯

可能原因:依賴的對象沒有遷移或者已經不存在。

解決方法:

  • 方法一:可以選擇忽略對象。

  • 方法二:請根據報錯信息修正DDL語句,然后重新啟動任務。