7.6 KiB
7.6 KiB
系统变量概述
OceanBase 数据库的系统变量主要分为全局变量和 Session 变量:
-
全局变量:表示 Global 级别的修改,数据库同一租户内的不同用户共享全局变量。全局变量的修改不会随会话的退出而失效。此外,全局变量修改后,对当前已打开的 Session 不生效,需要重新建立 Session 才能生效。
-
Session 变量:表示 Session 级别的修改。当客户端连接到数据库后,数据库会复制全局变量来自动生成 Session 变量。Session 变量的修改仅对当前 Session 生效。
与系统配置项对比
| 对比项 | 系统配置项 | 系统变量 |
|---|---|---|
| 生效范围 | 分为集群、Zone、机器和租户。 | 分为租户的 Global 或 Session 级别。 |
| 生效方式 | * 动态生效:edit_level 为dynamic_effective。 * 重启生效:edit_level 为 static_effective 。 |
* 设置 Session 级别的变量仅对当前 Session 有效,对其他 Session 无效。 * 设置 Global 级别的变量对当前 Session 无效,需要重新登录建立新的 Session 才会生效。 |
| 修改方式 | * 支持通过 SQL 语句修改,示例如下: sql obclient> Alter SYSTEM SET schema_history_expire_time='1h' * 支持通过启动参数修改,示例如下: sql cd /home/admin && ./bin/observer -o "schema_history_expire_time='1h'" |
仅支持通过 SQL 语句修改,示例如下: * MySQL 模式 sql obclient> SET ob_query_timeout = 20000000; obclient> SET GLOBAL ob_query_timeout = 20000000; * Oracle 模式 sql obclient> SET ob_query_timeout = 20000000; obclient> ALTER SYSTEM SET ob_query_timeout = 20000000; |
| 持久化 | 持久化到内部表与配置文件,可以在 /home/admin/oceanbase/etc/observer.config.bin 与 /home/admin/oceanbase/etc/observer.config.bin.history 文件中查询该配置项。 |
仅 GLOBAL 级别的变量会持久化,SESSION 级别的变量不会进行持久化。 |
| 生命周期 | 长,从进程启动到退出。 | 短,需要租户的 Schema 创建成功以后才生效。 |
| 查询方式 | 可以使用 SHOW PARAMETERS 语句查询。 |
可以使用 SHOW [GLOBAL] VARIABLES 语句查询。 |
本章主要介绍 OceanBase 数据库中的所有系统变量及其缺省值说明(包括参数含义、取值范围和使用说明等)。系统变量的查看和设置相关操作,请参见 租户管理变量章节。