【OceanBase诊断调优】—— 错误码 5065 和 5066 的区别

适用版本:V2.1.x、V2.2.x、V3.1.x、V3.2.x

5065 与 5066 是两个近似的报错。

  • OB_ERR_QUERY_INTERRUPTED(-5065):

    • Message: Query execution was interrupted。

    • 含义为执行中断, 例如终端执行 SQL 过程中按 ctrl+c 终止 SQL 执行会报 -5065。

  • OB_ERR_SESSION_INTERRUPTED(-5066):

    • Message: Session interrupted。

    • 含义为 session 中断, 例如 SQL 执行过程中连接池超时断开网络链接,或者终端执行过程中 kill 掉 OBServer 进程断开网络链接。

问题复现模拟上述报错的示例:

  1. 发起某个业务查询语句,数秒后,并通过 Ctrl + C 取消此语句。

    复制代码
    obclient [SYS]> select count(*) records from NGCRM_XX.CM_SUBS_PRODATTR tsa;
    ^CCtrl-C -- query killed. Continuing normally.
    ORA-00600: internal error code, arguments: -5065, Query execution was interrupted
  2. 查询当前会话的 ID ,并再次发起业务查询语句。

    1. 查询当前会话 ID.

      复制代码
      obclient [SYS]> show processlist;

      输出结果如下:

      复制代码
      +--------+----------+------+---------------------+------+-------------+-------------------+-------------------+---------+---------+
      | Id     | Tenant   | User | Host                | db   | trans_count | svr_session_count | state             | tid     | pid     |
      +--------+----------+------+---------------------+------+-------------+-------------------+-------------------+---------+---------+
      | 219088 | oboracle | SYS  | 10.xxx.xxx.xx:43752 | SYS  |           0 |                 1 | MCS_ACTIVE_READER | 2059664 | 2059653 |
      +--------+----------+------+---------------------+------+-------------+-------------------+-------------------+---------+---------+
      1 row in set (0.006 sec)
    2. 发起执行业务查询语句。

      复制代码
      obclient [SYS]> select count(*) records from NGCRM_XX.CM_SUBS_PRODATTR tsb;
  3. 在另一个窗口,执行终止会话的操作。

    复制代码
    [root@xxxx] kill -9 219088
  4. 返回原窗口,此时可看到第二次发起的业务查询语句也报错了。

    复制代码
    ERROR-02013: Lost connection to MySQL server during query
  5. 登录 SYS 租户,通过 SQL_AUDIT 查询报错信息,可分别看到 5065 以及 5066 的报错。

    复制代码
    obclient [oceanbase]>  select svr_ip,ret_code,query_sql from gv$sql_audit where query_sql like 'select%count%CM_SUBS_PRODATTR ts%'\G;

    输出结果如下:

    复制代码
    *************************** 1. row ***************************
    svr_ip: xxx.xxx.xxx.xxx
    ret_code: -5065
    query_sql: select count(*) records from NGCRM_XX.CM_SUBS_PRODATTR tsa
    *************************** 2. row ***************************
    svr_ip: xxx.xxx.xxx.xxx
    ret_code: -5066
    query_sql: select count(*) records from NGCRM_XX.CM_SUBS_PRODATTR tsb
    2 rows in set (20.974 sec)
相关推荐
世界尽头与你2 分钟前
MySQL 三大日志(binlog、redo log 和 undo log)深度解析
数据库·mysql
a285282 分钟前
MS SQL Server 实战 统计与汇总重复记录
数据库·oracle
tod11324 分钟前
深入理解 Redis 事务:从原理到实践的完整解析
数据库·redis·缓存
升职佳兴42 分钟前
SQL 窗口函数入门教程基础篇
数据库·sql
dreams_dream1 小时前
MySQL 主从复制(小白友好 + 企业级)
android·数据库·mysql
XLYcmy1 小时前
智能体大赛 技术架构 数据根基层
数据库·ai·llm·api·agent·幻觉·万方
014-code1 小时前
MySQL 事务隔离级别
java·数据库·mysql
Je1lyfish1 小时前
CMU15-445 (2026 Spring) Project#1 - Buffer Pool Manager
linux·数据库·c++·后端·链表·课程设计·数据库架构
Re.不晚1 小时前
Redis——哨兵机制
数据库·redis·bootstrap
代码星辰2 小时前
MySQL 面试题——深度分页优化
数据库·mysql·覆盖索引·深度分页