作者简介:海芊,一个致力于当网红的OceanBase文档工程师。
个人频道:
Amber loves OB
不少刚入坑使用 OceanBase 的小伙伴都有这样一种困惑:参数和变量傻傻分不清楚。每次想查询一个参数/变量,总是拿不准到底用
SHOW PARAMETERS
还是
SHOW [GLOBAL] VARIABLES
,能不能查到全靠运气。今天,就让我们一起撸一遍 OceanBase 的常见参数和变量,彻底把这个问题搞清楚。
参数与变量对比
下面的表格从多方面对参数和变量进行了对比。通常集群级别的设置用参数,租户级别的设置用变量。
|
|
|
生效范围 |
分为集群、Zone、机器和租户。 |
分为租户的 Global 或 Session 级别。 |
生效方式 |
分为动态生效和重启生效。 |
设置 Session 级别的变量仅对当前 Session 有效,对其他 Session 无效。 |
修改方式 |
通过
语句修改。 |
仅支持通过 语句修改。 |
持久化 |
持久化到内部表与配置文件,可以在
与 文件中查询已持久化的参数。 |
仅 GLOBAL 级别的变量会持久化,SESSION 级别的变量不会进行持久化。 |
生命周期 |
长,从进程启动到退出。 |
短,需要租户的 Schema 创建成功以后才生效。 |
查询方式 |
可以使用 语句查询。 |
可以使用 语句查询。 |
参数
通过设置参数,可以控制集群的负载均衡、合并时间、合并方式、资源分配和模块开关等。参数的生效方式有两种,即动态生效和重启生效。大部分参数为动态参数,也就是说无需重启 OceanBase 服务即可生效。
查看参数
以参数
max_syslog_file_count
为例。使用以下方式查看参数:
obclient> SHOW PARAMETERS LIKE 'sql_work_area';
+-------+----------+----------------+----------+---------------+-----------+-------+----------------------------------------+----------+--------+---------+------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+-------+----------+----------------+----------+---------------+-----------+-------+----------------------------------------+----------+--------+---------+------------------+
| zone3 | observer | XXX.XX.XXX.XXX | 2882 | sql_work_area | NULL | 1G | Work area memory limitation for tenant | OBSERVER | TENANT | DEFAULT | STATIC_EFFECTIVE |
| zone1 | observer | XXX.XX.XXX.XXX | 2882 | sql_work_area | NULL | 1G | Work area memory limitation for tenant | OBSERVER | TENANT | DEFAULT | STATIC_EFFECTIVE |
| zone2 | observer