暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase数据库集群配置项的分类及设置

Tonyhacks 2023-10-17
167

在 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 即可生效。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论