首批通过分布式安全可靠测评,为关键业务系统打造
配置项和系统变量概述
更新时间:2026-03-22 10:40:56
本文通过介绍 OceanBase 数据库配置项和系统变量的修改、查询等相关信息,展示配置项和系统变量的使用区别。
配置项
通过配置项的设置可以控制集群的负载均衡、合并时间、合并方式、资源分配和模块开关等功能。
配置项分类
OceanBase 数据库的配置项分为集群级配置项和租户级配置项。
集群级配置项:指适用于整个 OceanBase 数据库集群的配置选项,它们具有全局性质,用于配置整个集群的基本信息、性能参数、安全选项等等。这些配置项通常包括数据备份和恢复、负载均衡等方面的配置选项。集群级配置项通常是在集群启动时进行配置,配置后不轻易修改。
租户级配置项:指适用于租户级别的配置选项,它们是针对单个租户或多个租户的配置选项。用于对单个租户或多个租户进行特定的配置和优化。这些配置项通常包括存储引擎参数、SQL 执行策略、访问控制等方面的配置选项。租户级配置项通常可以在租户创建和管理时进行配置,可以随时根据需要进行修改。
说明
配置项一般分为动态生效和重启生效两种方式,大部分配置项为动态生效方式,即不需要重启 OBServer 节点就可以生效。
配置项查询
查询某个配置项为集群级别还是租户级别的方法如下:
obclient> SHOW PARAMETERS LIKE 'max_syslog_file_count';
返回结果如下:
+-------+----------+----------------+----------+-----------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | default_value | isdefault |
+-------+----------+----------------+----------+-----------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+
| zone1 | observer | 172.xx.xxx.xxx | 2882 | max_syslog_file_count | INT | 0 | specifies the maximum number of the log files that can co-exist before the log file recycling kicks in. Each log file can occupy at most 256MB disk space. When this value is set to 0, no log file will be removed. Range: [0, +∞) in integer | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | 0 | 1 |
+-------+----------+----------------+----------+-----------------------+-----------+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+
1 row in set
其中,scope 列对应的值为 CLUSTER 表示该配置项为集群级别;如果 scope 列对应的值为 TENANT,则表示该配置项为租户级别。
系统变量
通过系统变量的设置可以控制数据库系统的各种行为,如缓存大小、并发连接数、CPU 使用率、内存使用率等等。同时,系统变量也可以用于配置数据库系统的各种功能。
系统变量分类
OceanBase 数据库的系统变量分为全局变量和 Session 变量。
Global 变量:表示 Global 级别的修改,数据库同一租户内的不同用户共享全局变量。全局变量的修改不会随会话的退出而失效。此外,全局变量修改后,对当前已打开的 Session 不生效,需要重新建立 Session 才能生效。
Session 变量:表示 Session 级别的修改。当客户端连接到数据库后,数据库会复制全局变量来自动生成 Session 变量。Session 变量的修改仅对当前 Session 生效。
系统变量查询
查询某个系统变量的方法如下:
查询当前系统变量的值,语句如下:
obclient [oceanbase]> SHOW VARIABLES LIKE 'ob_query_timeout';
obclient [oceanbase]> SHOW GLOBAL VARIABLES LIKE 'ob_query_timeout';
如果需要查询 Global 级别变量的修改记录及变量的默认值,可以使用如下语句查询:
obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_SYS_VARIABLES WHERE NAME='ob_query_timeout';
查询当前系统变量的值,语句如下:
obclient [SYS]> SELECT * FROM SYS.TENANT_VIRTUAL_SESSION_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
obclient [SYS]> SELECT * FROM SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE WHERE VARIABLE_NAME = 'ob_query_timeout';
如果需要查询 Global 级别变量的修改记录及变量的默认值,可以使用如下语句查询:
obclient [SYS]> SELECT * FROM SYS.DBA_OB_SYS_VARIABLES WHERE NAME='ob_query_timeout';
配置项与系统变量的区分
| 对比项 | 配置项 | 系统变量 |
|---|---|---|
| 生效范围 | 分为集群、Zone、机器和租户。 | 分为租户的 Global 或 Session 级别。 |
| 生效方式 |
|
|
| 修改方式 |
|
仅支持通过 SQL 语句修改,示例如下:
|
| 查询方式 | 可以使用 SHOW PARAMETERS 语句查询。示例:SHOW PARAMETERS LIKE 'schema_history_expire_time'; |
可以使用 SHOW [GLOBAL] VARIABLES 语句查询。示例如下:
|
| 持久化 | 持久化到内部表与配置文件,可以在 /home/admin/oceanbase/etc/observer.config.bin 与 /home/admin/oceanbase/etc/observer.config.bin.history 文件中查询该配置项。 |
仅 Global 级别的变量会持久化,Session 级别的变量不会进行持久化。 |
| 生命周期 | 长,从进程启动到退出。 | 短,需要租户的 Schema 创建成功以后才生效。 |