【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
如何设置永久ob_query_timeout?
【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
如何设置永久ob_query_timeout?
永久呢
set seesion/或者为空 xxx 代表会话级别(非永久)
set global xxx 代表全局级别(永久)
详细内容参考一楼的文章
global 就是对当前租户永久生效。
集群重启就不行了,session代表会话,global代表全局。
global 会写系统表的,重启集群也可以
行,有机会试一下,那和别的数据库还不一样
别的数据库我不太了解,OB 里的 global 设置应该是会改 oceanbase.__all_sys_variable 这张系统表,改动会持久化下来,所以重启也没关系。
用 global 改完之后,可以查下系统表简单验证下:
set global ob_query_timeout = 12345678;
Query OK, 0 rows affected (0.34 sec)
select * from oceanbase.__all_sys_variable where name = 'ob_query_timeout'\G
*************************** 1. row ***************************
gmt_create: 2024-12-19 18:04:35.266317
gmt_modified: 2025-01-14 11:04:36.710416
tenant_id: 0
zone:
name: ob_query_timeout
data_type: 5
value: 12345678
info: Query timeout in microsecond(us)
flags: 131
min_val:
max_val:
1 row in set (0.01 sec)
查了一下ob修改全局参数确实会利用 schema 机制进行持久化,存在__all_sys_variable中
根据文档库中的信息,ob_query_timeout
可以通过设置为全局(GLOBAL
)来实现持久化配置,这样即使集群重启,该参数的设置仍然有效。具体来说,您可以通过以下几种方式设置 ob_query_timeout
:
SQL 级别设置(仅对当前 SQL 语句生效):
使用 Hint 来指定单个查询的超时时间。例如:
SELECT /*+ query_timeout(100000000) */ * FROM t1;
会话级别设置(仅对当前会话生效):
使用 SET SESSION
命令来设置当前会话的超时时间。例如:
SET SESSION ob_query_timeout = 100000000;
租户级别设置(全局设置,对所有会话生效,并且持久化):
使用 SET GLOBAL
命令来设置租户级别的超时时间,这将影响所有会话并且在集群重启后仍然有效。例如:
SET GLOBAL ob_query_timeout = 100000000;
您可以使用以下命令来验证 ob_query_timeout
的当前设置:
SHOW VARIABLES LIKE 'ob_query_timeout';
或者查询系统表来获取更详细的信息:
SELECT * FROM oceanbase.DBA_OB_SYS_VARIABLES WHERE NAME='ob_query_timeout';
ob_query_timeout
时需要注意单位是微秒(us),因此如果要设置为 100 秒,则应设置为 100000000
。GLOBAL
) 会影响所有新创建的会话,但不会立即改变现有会话的设置。现有会话需要重新连接或显式设置会话级别的超时时间。以上信息依据的是文档片段中关于 ob_query_timeout
的描述以及如何设置和验证该参数的方法。希望这些信息能帮助您正确设置并理解 ob_query_timeout
的行为。
更多信息请查看:
还真有 oceanbase.DBA_OB_SYS_VARIABLES 这张字典视图,AI 小助手可以的~