在 OceanBase 数据库中通过配置项的设置可以控制集群的功能行为,例如负载均衡、合并时间、合并方式、资源分配和模块开关等功能。
OceanBase 数据库的 observer 进程首次启动时需要指定某些必需配置项。除了必需配置项以外,如果没有指定,则使用系统指定的 Default 值。进程启动成功后,参数值将持久化到 /home/admin/oceanbase/etc/observer.config.bin 文件中,可以通过 strings observer.config.bin 命令来查看文件中的内容。非首次启动时,系统会读取持久化文件中的配置项,如果无需修改,则无需再次指定任何配置项。
配置项级别
OceanBase 数据库的配置项分为集群级配置项和租户级配置项。
- 集群级配置项:作用范围为整个集群所有 OBServer 节点。
- 租户级配置项:作用范围为当前租户在集群内所在的 OBServer 节点。
名称以 “_” 开头的配置项称为隐藏配置项,如:_ob_max_thread_num 。仅供开发人员在故障排查或紧急运维时使用。本文不对隐藏配置项进行详细介绍,下文中的配置项均不包含隐藏配置项。
不同租户对配置项的查看和修改级别如下表所示:
| 租户类型 | 参数查看 | 参数设置 |
|---|---|---|
| 系统租户 | 集群级配置项、租户级配置项 说明:SHOW PARAMETERS 语句通过指定 TENANT 关键字来查看指定租户的配置项信息。 |
集群级配置项、租户级配置项 说明:系统租户下,可以通过指定 TENANT 关键字来修改全部或指定租户的租户级配置项。 |
| 普通租户 | 集群级配置项和本租户的租户级配置项 | 本租户的租户级配置项 |
当前 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)。单位不区分大小写字母。 |
配置项的生效方式
配置项一般分为动态生效和重启生效两种方式,大部分配置项为动态生效方式,即不需要重启 OBServer 即可生效。
查看配置项的级别和生效方式
查询某个配置项的方式如下:
obclient [oceanbase]> SHOW PARAMETERS LIKE 'memory_limit';
+-------+----------+--------------+----------+--------------+-----------+-------+---------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+-------+----------+--------------+----------+--------------+-----------+-------+---------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone2 | observer | 10.5.200.101 | 2882 | memory_limit | NULL | 10G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [1G,). | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone1 | observer | 10.5.200.100 | 2882 | memory_limit | NULL | 10G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [1G,). | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
| zone3 | observer | 10.5.200.102 | 2882 | memory_limit | NULL | 10G | the size of the memory reserved for internal use(for testing purpose), 0 means follow memory_limit_percentage. Range: 0, [1G,). | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+-------+----------+--------------+----------+--------------+-----------+-------+---------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
其中:
-
scope 列表示该配置项的级别,如果对应的值为 CLUSTER ,则表示该配置项为集群级别;如果对应的值为 TENANT,则表示该配置项为租户级别。
-
edit_level 列表示该配置项的生效方式,一般分为动态生效和重启生效两种方式,dynamic_effective 表示动态生效;static_effective 表示重启生效。大部分配置项为动态生效方式,即不需要重启 OBServer 即可生效。




