配置查询超时参数不生效

【 使用版本 】5.7.25-OceanBase_CE-v4.3.3.1

查询超时报错:
Timeout, query has reached the maximum query timeout: 10000000(us), maybe you can adjust the session variable ob_query_timeout or query_timeout hint, and try again.

使用 SHOW VARIABLES LIKE 'ob_query_timeout';查询后

Variable_name Value
ob_query_timeout 1000000000

1000000000这个是我之前通过set global ob_query_timeout=1000000000; 设置的。

为什么在执行满查询的时候10000000us就要超时?

1 个赞

你好,
修改全局超时时间后,需要断开当前会话,打开新会话即可生效

这都配置了2个多月了。。。应该不会是这个原因

select sleep(10); 试一下 让他超时 测试一下 看看

select sleep(12)

OK
查询时间: 12.025s

没问题,没有超时,那这个错误提示是什么个情况呢

你当前的session 别设置全局 设置一下超时 设置10s 在用select sleep(10); 测试一下 看看

set session ob_query_timeout=1000000

OK
查询时间: 0.025s

select sleep(12)

4012 - Timeout, query has reached the maximum query timeout: 1000000(us), maybe you can adjust the session variable ob_query_timeout or query_timeout hint, and try again.
查询时间: 1.026s

当前session设置 看着是生效了 全局设置的不应该呀 你在重新设置 退出当前session 在测试一下

我们生产这个是设置半小时还是二线建议的1800000000

set global ob_query_timeout=1000000000
执行后需要重启集群么? 官方文档这个参数默认值就是10000000(10秒) 我怎么感觉我之前做的这个set没生效。但是SHOW VARIABLES LIKE 'ob_query_timeout’的时候又确实是我设置的,在navicat上执行也是最新的,但是用Net程序中 MySqlConnector 驱动在程序中执行的时候又是按10,秒超时来的。

摸不着头绪

不用重启 重新设置以后 生效了么?

有没有相关的缓存,我们现在都情况是多次尝试连接有时候返回7个0,有时候返回9个0,这就很诡异。 这个超时策略跟客户端有关系么?或者客户端有什么办法能影响到服务器的这个值麽,如果有,我如何在OB上确认?

这个测试有截图么?没有太理解你说的



循环三次,第一次9个0,后两次7个0

我们还有一台服务器,版本号一模一样:
5.7.25-OceanBase_CE-v4.3.3.1

就不会出现这种情况,稳定输出9个0

已经重新执行:set global ob_query_timeout=1000000000;
还是不行,只会在第一次输出9个0,后续就开始7个0

集群有没有其他异常告警?可以捞点日志看看


昨晚进一步测试,重启OB集群实例后当场在进行测试问题小时,但是今天早上再试,仍旧变成上述问题。
log.zip (935.5 KB)
这里有些日志看有没有帮助定位问题
看了一下Sql Audit日志,并没有其他命令修改当前会话的Timeout值