常見錯誤代碼列表如下:
ERROR 7022: Physical database connection pool is full, database name: x
ERROR 7022: Get connection from physical database timeout, database name: x
ERROR 7031: Cannot execute update SQLs cross databases in transaction
ERROR 7001: Table rule execute error
問題描述:出現該錯誤是表示規則計算出錯,請檢查數據訪問代理管控臺上的分庫分表規則是否配置正確。
排查方法:
檢查分庫分表規則,如果使用自定義規則的話,需要返回 int 值。
如果檢查分庫分表沒有問題,請確認是否已生效了數據庫配置。
ERROR 7002: Unable to find table rule
問題描述:無法找到表的規則,查看用戶 SQL 中的表有沒有在數據訪問代理控制臺上配置分表規則。
排查方法:
檢查分庫分表規則,是否有配置當前表的分庫分表規則。
如果檢查分庫分表沒有問題,請確認一下是否有生效數據庫配置。
ERROR 7022: Physical database connection pool is full, database name: x
問題描述:數據訪問代理連接后端數據庫的連接池已滿。
排查方法:
查看是否有耗時 SQL 影響連接池。
如果耗時 SQL 是合理的,則應該是連接池本身設置不合理導致,需在連接參數界面調整連接數。
ERROR 7022: Get connection from physical database timeout, database name: x
排查方法:和物理數據庫連接池已滿類似,這個錯誤是由于連接池比較繁忙而導致超時,應該是建立連接耗時較長導致。
ERROR 7031: Cannot execute update SQLs cross databases in transaction
問題描述:事務內,多條更新 SQL 不允許跨物理數據庫執行。
排查方法:檢查事務內的 SQL 是否跨物理庫。
ERROR 7100: Getting next sequence error, xx
問題描述:由于 sequence 的步長用光后,會向數據庫取下一個步長的 sequence,如果一瞬間取 sequence 的請求太多的話,會導致數據庫的鎖沖突嚴重從而拋出該異常。
排查方法:
建議獲取 sequence 失敗通過業務層重試解決。
ERROR 1003: Transaction error, need to rollback
問題描述:在事務中執行時如果出現了 SQL 執行異常,數據訪問代理為了數據安全,會強制將事務狀態設置為中斷,需要顯式調用 rollback 后才能繼續執行其他 SQL。
排查方法:確認是否有數據庫異常沒有處理,或者捕獲了數據庫異常但沒有調用 rollback 回滾事務。如確認異常后,則客戶端需要強制調用 rollback。
ERROR: Server connection execute error: x
問題描述:數據訪問代理將 SQL 發往后端物理數據庫執行失敗,不同的錯誤碼對應不同的錯誤。
排查方法:此錯誤一般是由于業務自身的 SQL 導致,請檢查 SQL 是否可以優化。
ERROR: Access denied for user ‘xx’
問題描述:用戶訪問被拒絕。
排查方法:
確認是否是連接到的正確的數據訪問代理實例,且賬號密碼正確。賬號需要和數據庫名保持一致,密碼是在數據訪問代理管控臺界面上由用戶輸入。
確認數據庫是否已經上線。
文檔內容是否對您有幫助?