常见错误代码列表如下:
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’
问题描述:用户访问被拒绝。
排查方法:
确认是否是连接到的正确的数据访问代理实例,且账号密码正确。账号需要和数据库名保持一致,密码是在数据访问代理管控台界面上由用户输入。
确认数据库是否已经上线。
文档内容是否对您有帮助?