客户端在执行 SQL 时直接报错 Lost connection to MySQL server during query。通常,此类报错是因为服务器端出现异常导致,导致链接中断。
服务器侧发生断链可能是正常的超时处理导致,也可能是异常中断导致,还有可能是环境因素(操作系统、网络)导致。常见的原因有以下几种:
- observer 进程意外退出,比如突然 core 掉后。
- obproxy 进程意外退出,比如 OOM 或者 obproxy core 掉,导致断链。
- observer 内存满或者是 sys 租户的队列积压。
- 连接在 OBProxy 或者 OBServer 侧被 kill 掉。
- OBServer 回包错误导致结果集混乱,触发 OBProxy 的主动断链。
- OBServer 中两条 SQL 的执行间隔超过了
ob_trx_idle_timeout,触发事务空闲超时,强制停止会话,断开与客户端的链接,同时回滚事务。
适用版本
OceanBase 数据库所有版本。