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

[复制链接]
发表于 2024-10-14 01:07:34 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
实用版本: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 进程断开网络链接。

题目复现模仿上述报错的示例:

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

    • 查询当前会话 ID.
      1. obclient [SYS]> show processlist;
      复制代码
      输出效果如下:
      1. +--------+----------+------+---------------------+------+-------------+-------------------+-------------------+---------+---------+
      2. | Id     | Tenant   | User | Host                | db   | trans_count | svr_session_count | state             | tid     | pid     |
      3. +--------+----------+------+---------------------+------+-------------+-------------------+-------------------+---------+---------+
      4. | 219088 | oboracle | SYS  | 10.xxx.xxx.xx:43752 | SYS  |           0 |                 1 | MCS_ACTIVE_READER | 2059664 | 2059653 |
      5. +--------+----------+------+---------------------+------+-------------+-------------------+-------------------+---------+---------+
      6. 1 row in set (0.006 sec)
      复制代码
    • 发起实行业务查询语句。
      1. obclient [SYS]> select count(*) records from NGCRM_XX.CM_SUBS_PRODATTR tsb;
      复制代码

  • 在另一个窗口,实行终止会话的操作。
    1. [root@xxxx] kill -9 219088
    复制代码
  • 返回原窗口,此时可看到第二次发起的业务查询语句也报错了。
    1. ERROR-02013: Lost connection to MySQL server during query
    复制代码
  • 登录 SYS 租户,通过 SQL_AUDIT 查询报错信息,可分别看到 5065 以及 5066 的报错。
    1. 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. *************************** 1. row ***************************
    2. svr_ip: xxx.xxx.xxx.xxx
    3. ret_code: -5065
    4. query_sql: select count(*) records from NGCRM_XX.CM_SUBS_PRODATTR tsa
    5. *************************** 2. row ***************************
    6. svr_ip: xxx.xxx.xxx.xxx
    7. ret_code: -5066
    8. query_sql: select count(*) records from NGCRM_XX.CM_SUBS_PRODATTR tsb
    9. 2 rows in set (20.974 sec)
    复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表