您可以通过 SQL 语句修改集群参数。
通过 SQL 语句修改集群参数
集群参数即集群级配置项,修改集群级配置项的语法如下所示,同时修改多个集群级配置项时,需要使用英文逗号(,)分隔。
ALTER SYSTEM [SET]
parameter_name = expression [SCOPE = {MEMORY | SPFILE | BOTH}]
[COMMENT [=] 'text']
[SERVER [=] 'ip:port' | ZONE [=] 'zone'];
语句说明:
仅
sys租户可以修改集群级配置项,普通租户无法修改集群级配置项。expression用于指定修改后该配置项的值。SCOPE用于指定本次配置项修改的生效范围,默认值为BOTH。其中:MEMORY:表示仅修改内存中的配置项,修改立即生效,且本修改在 Server 重启以后会失效(当前暂无配置项支持这种方式)。SPFILE:表示仅修改配置表中的配置项值,当 Server 重启以后才生效。BOTH:表示既修改配置表,又修改内存值,修改后立即生效,且 Server 重启以后配置值仍然生效。
SERVER表示指定集群中要修改的 Server,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> ALTER SYSTEM SET net_thread_count=1 SCOPE = SPFILE;
obclient> ALTER SYSTEM SET mysql_port=8888;
obclient> ALTER SYSTEM SET mysql_port=8888 ZONE='z1';
obclient> ALTER SYSTEM SET mysql_port=8888 SERVER='192.168.100.1:2882';



