OceanBase 数据库的配置项分为集群级配置项和租户级配置项。您可以通过配置项的设置使 OceanBase 数据库的行为符合您业务的要求。
参数分类
OceanBase 数据库的配置项分为集群级配置项和租户级配置项。通过配置项的设置可以控制整个集群的负载均衡、合并时间、合并方式、资源分配和模块开关等功能。
集群级配置项:作用范围为整个集群所有 OBServer。
租户级配置项:作用范围为当前租户在集群内所在的 OBServer。
名称以 "_" 开头的配置项称为隐藏配置项,如:_ob_max_thread_num 。仅供开发人员在故障排查或紧急运维时使用。本文不对隐藏配置项进行详细介绍,下文中的配置项均不包含隐藏配置项。
不同租户对配置项的查看和修改级别如下表所示:
| 租户类型 | 参数查看 | 参数设置 |
|---|---|---|
| 系统租户 | 集群级配置项、租户级配置项说明 | 集群级配置项、租户级配置项说明 |
| 普通租户 | 集群级配置项和本租户的租户级配置项 | 本租户的租户级配置项 |
当前 OceanBase 数据库中配置项的主要数据类型及其相关说明如下表所示:
| 数据类型 | 说明 |
|---|---|
| BOOL | boolean 类型(布尔),支持 true/false。 |
| CAPACITY | 容量单位,支持 b (字节)、k (KB,千字节)、m (MB,百万字节)、 g (GB,10亿字节)、t (TB,万亿字节)、p(PB,千万亿字节)。单位不区分大小写字母,默认为 m。 |
| DOUBLE | 双精度浮点数,占用 64 bit 存储空间,精确到小数点后 15 位,有效位数为 16位 。 |
| INT | int64 整型,支持正负整数和 0。 |
| MOMENT | 时刻。格式为 hh:mm(例如 02:00);或者特殊值 disable,表示不指定时间。目前仅用于 major_freeze_duty_time 参数。 |
| STRING | 字符串。用户输入的字符串的值。 |
| STRING_LIST | 字符串列表,即以分号 (;)分隔的多个字符串。 |
| TIME | 时间类型。支持 us (微秒)、ms (毫秒)、s (秒), m (分钟)、h (小时)、d (天)等单位。如果不加后缀,默认为秒(s)。单位不区分大小写字母。 |
通过 SQL 语句修改配置项
修改配置项的 SQL 语法如下:
ALTER SYSTEM [SET]
parameter_name = expression [SCOPE = {SPFILE | BOTH}] [COMMENT [=] 'text']
[ TENANT [=] ALL|tenant_name ] {SERVER [=] 'ip:port' | ZONE [=] 'zone'};
参数说明:
parameter_name:指定要修改的配置项名称。expression:指定修改后的配置项的值。COMMENT 'text':用于添加关于本次修改的注释。该参数为可选,建议不要省略。SCOPE:指定本次配置项修改的生效范围,默认为BOTH。SPFILE:表示只修改内部表中的配置项值,当 OBServer 重启以后才生效。仅重启生效的配置项支持。BOTH:表示既修改内部表中的配置项值,又修改内存中的配置项值,修改立即生效,且 OBServer 重启以后配置值仍然生效。
TENANT:用于在系统租户下,修改所有或指定租户的租户级配置项。ALL:所有租户。tenant_name:指定租户。
SERVER:只修改指定 Server 实例的某个配置项。ZONE:表明本配置项的修改针对指定集群的特定 Server 类型,否则,针对所有集群的特定 Server 类型。
说明
- 同时修改多个配置项时,以逗号(,)分隔。
- 集群级配置项不能通过普通租户设置,也不可以通过系统租户(即
sys租户) 指定为普通租户设置,仅支持在系统租户下配置。例如,执行ALTER SYSTEM SET memory_limit='100G' TENANT='test_tenant'语句将导致报错,因为memory_limit是集群级配置项。- 租户级配置项可以直接在本租户下修改,也可以在系统租户下通过指定
TENANT关键字来修改。ALTER SYSTEM语句不能同时指定 Zone 和 OBServer。并且在指定 Zone 时,仅支持指定一个 Zone;指定 OBServer 时,仅支持指定一个 OBServer。如果修改时,不指定 Zone 也不指定 OBServer,则集群级配置项会在整个集群所有 OBServer 上生效;租户级配置项会在当前租户在集群内所在的 OBServer 上生效。- 确认一个配置项为集群级别还是租户级别,可根据
SHOW PARAMETERS语句执行结果中的scope列对应的值来判断:scope值为CLUSTER则表示为集群级配置项。scope值为TENANT则表示为租户级配置项。
示例
修改 log_disk_utilization_threshold 配置项的示例如下:
obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20;
修改指定 Zone 的 log_disk_utilization_threshold 配置项的示例如下:
obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20 ZONE='z1';
修改指定 OBServer 的 log_disk_utilization_threshold 配置项的示例如下:
obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20 SERVER='XXX.XXX.XXX.XXX:XXXXX';
在系统租户下,修改所有或指定租户的租户级配置项。示例如下:
obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20 TENANT='ALL';
obclient> ALTER SYSTEM SET log_disk_utilization_threshold = 20 TENANT='MYSQL';
说明
执行成功以后,所有被指定租户的配置项均会被修改。
通过 SQL 语句查看配置项
查看配置项的 SQL 语法如下:
SHOW PARAMETERS [LIKE 'pattern' | WHERE expr] [TENANT = tenant_name]
说明
- 系统租户下,可以查看本租户的租户级配置项和集群级配置项信息。同时,可以通过指定
TENANT关键字来查看指定租户的配置项信息。- 普通租户下,可以查看本租户的租户级配置项以及系统租户的集群级配置项信息。
WHERE expr中可以指定的列属性与SHOW PARAMETERS返回结果中的列属性一致。
通过 SHOW PARAMETERS 语句查看配置项的示例如下:
obclient> SHOW PARAMETERS WHERE scope = 'tenant';
obclient> SHOW PARAMETERS WHERE svr_ip != 'XXX.XXX.XXX.XXX';
obclient> SHOW PARAMETERS WHERE INFO like '%ara%';
obclient> SHOW PARAMETERS LIKE 'large_query_threshold';
+-------+----------+-----------------+----------+-----------------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+---------+---------+---------+-------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+-------+----------+-----------------+----------+-----------------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+---------+---------+---------+-------------------+
| zone1 | observer | XXX.XXX.XXX.XXX | 2882 | large_query_threshold | NULL | 5s | threshold for execution time beyond which a request may be paused and rescheduled as a \'large request\'. Range: [1ms, +∞) | TENANT | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+-----------------+----------+-----------------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+---------+---------+---------+-------------------+
1 row in set (0.01 sec)
返回结果中的列属性如下表所示:
| 列名 | 含义 |
|---|---|
| zone | 所在的 Zone |
| svr_type | 机器类型 |
| svr_ip | 机器 IP |
| svr_port | 机器端口 |
| name | 配置项名 |
| data_type | 配置项数据类型,包括 NUMBER 、STRING 、CAPACITY 等 |
| value | 配置项值 说明 由于在修改配置项值时,支持修改指定 Zone 或 Server 的配置项值,故不同 Zone 或 Server 对应的配置项的值可能不同。 |
| info | 配置项的说明信息 |
| section | 配置项所属的分类:
|
| scope | 配置项范围属性:
|
| source | 当前值来源:
|
| edit_level | 定义该配置项的修改行为:
|
更多信息
更多配置项参考信息,请参见《系统参考》中的 系统配置项 。




