【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)
相关推荐
code_slave(码畜)12 小时前
微服务架构落地:分库分表实战(下) —— 分布式主键、跨分片查询与分页聚合防坑
数据库·spring boot·分布式·spring cloud·微服务·架构·分库分表
dishugj12 小时前
https://blog.csdn.net/dishugj/article/details/162068579
数据库·系统架构
时间售卖铺12 小时前
MySQL 安装部署
运维·数据库·mysql·云原生
泡海椒13 小时前
JQuick-SQL 子查询:WHERE、SELECT、HAVING 与派生表实践
数据库·sql
用户05101225729613 小时前
SQLite 学习博客(一):从零建库,理解 SQLite 的角色与第一张表
数据库·sqlite
福娃筱欢13 小时前
金仓数据库配置SSL双向认证
数据库·网络协议·ssl
captain37613 小时前
MyBatis操作数据库(入门1)
数据库·oracle·mybatis
snpgroupcn13 小时前
SAP 系统退役的归档架构怎么设计:可检索、可理解、可追溯、可证明
java·数据库·架构
清水白石00813 小时前
React Native与Flutter长期维护成本对比
开发语言·数据库
弦儿13 小时前
MySQL 数据库从入门到实践:SQL 四大分类 + DDL/DML/DQL 全梳理(附全套代码)
数据库