首批通过分布式安全可靠测评,为关键业务系统打造
修改集群配置项
更新时间:2026-01-22 18:51:24
通过修改集群配置项,可以使 OceanBase 数据库的行为符合业务的要求。OceanBase 数据库的集群配置项即集群参数,同时参数还分为动态生效和重启生效两类。通过集群配置项的设置可以控制集群的负载均衡、合并时间、合并方式、资源分配和模块开关等功能。
注意
系统租户(即 sys 租户),可以查看和设置集群级配置项,用户租户只能查看集群级配置项,无法设置集群级配置项。
有关配置项的更多说明,请参见 配置项和系统变量概述。
操作步骤
系统租户或用户租户登录到集群。
连接示例如下,连接数据库时请以实际环境为准。
obclient -h10.xx.xx.xx -P2883 -utest@mysql#obdemo -p***** -A有关更加详细的连接数据库的操作指引,参见 连接数据库概述(MySQL 模式) 和 连接数据库概述(Oracle 模式)。
执行以下命令,查看集群配置项的值。
示例:
obclient [(none)]> SHOW PARAMETERS LIKE '%syslog_level%';查询结果如下:
+-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ | 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 | syslog_level | STRING | WDIAG | specifies the current level of logging. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | WDIAG | 1 | +-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ 1 row in set更多集群配置项的查看方法,请参见 查看集群配置项。
执行以下命令,修改集群配置项的值。
语句如下:
ALTER SYSTEM [SET] parameter_name = expression [SCOPE = {SPFILE | BOTH}] [SERVER [=] 'svr_ip:svr_port' | ZONE [=] 'zone' | TENANT [=] {all | all_user | all_meta | tenant_name}];相关参数说明如下:
expression用于指定修改后该配置项的值。SCOPE用于指定本次配置项修改的生效范围,默认值为BOTH。其中:SPFILE:表示仅修改配置表中的配置项值,当 OBServer 节点重启以后才生效。BOTH:表示既修改配置表,又修改内存值,修改后立即生效,且 OBServer 节点重启以后配置值仍然生效。
TENANT:用于系统租户修改所有用户租户、所有 Meta 租户或指定租户的租户级配置项。all和all_user:所有用户租户。说明
OceanBase 数据库从 V4.2.1 版本开始,
TENANT = all_user与TENANT = all语义相同,在需要生效范围为所有用户租户时,推荐使用TENANT = all_user,后续TENANT = all将废弃不再使用。all_meta:所有 Meta 租户。tenant_name:指定租户的租户名。
SERVER表示指定集群中要修改的 OBServer 服务器,ZONE表示指定集群中要修改的 Zone。ALTER SYSTEM语句不能同时指定 Zone 和 Server。并且在指定 Zone 时,仅支持指定一个 Zone;指定 Server 时,仅支持指定一个 Server。如果修改集群级配置项时,不指定 Zone 也不指定 Server,则表示该修改在整个集群内生效。
在修改集群配置项时,集群级别的配置项不能通过用户租户设置,也不可以通过系统租户(即
sys租户) 指定为用户租户设置。例如,执行
ALTER SYSTEM SET memory_limit='100G' TENANT='test_tenant'语句将导致报错,因为memory_limit是集群级别的配置项。确认一个配置项为集群级别还是租户级别,可根据SHOW PARAMETERS LIKE 'parameter_name';语句执行结果中的scope列对应的值来判断:scope值为CLUSTER则表示为集群级别的配置项。scope值为TENANT则表示为租户级别的配置项。
系统租户修改集群级配置项的示例如下:
obclient [(none)]> ALTER SYSTEM SET syslog_level='ERROR' SCOPE = SPFILE;obclient [(none)]> ALTER SYSTEM SET log_disk_utilization_threshold = 20 TENANT = all_user;obclient [(none)]> ALTER SYSTEM SET system_memory = '50G' ZONE = 'zone1';obclient [(none)]> ALTER SYSTEM SET syslog_io_bandwidth_limit = '5M';obclient [(none)]> ALTER SYSTEM SET memory_limit = '250G' SERVER='xx.xx.xx.238:2882';修改成功后,可以根据实际情况(重启 OBServer 或不重启 OBServer),通过
SHOW PARAMETERS语句验证配置项的值是否修改成功。obclient [(none)]> SHOW PARAMETERS LIKE '%syslog_level%';查询结果如下:
+-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ | 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 | syslog_level | STRING | ERROR | specifies the current level of logging. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels. | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE | WDIAG | 0 | +-------+----------+----------------+----------+--------------+-----------+-------+------------------------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+---------------+-----------+ 1 row in set
相关文档
关于集群配置项的更多内容,请参见以下信息:
有关每个配置项的详细介绍,请参见 配置项和系统变量概述。