OceanBase 租户,哪些参数可以通过 alter tenant 进行修改() A. replica_num 副本数 B. 租户字符集 C. 租户资源池 D. OBServer 进程端口号

OceanBase 租户,哪些参数可以通过 alter tenant 进行修改()
A. replica_num 副本数
B. 租户字符集
C. 租户资源池
D. OBServer 进程端口号

正确答案:A、C

逐项解析

A. replica_num 副本数 :white_check_mark:

ALTER TENANT 支持通过修改 LOCALITY 来调整租户的副本数和副本分布策略。例如:

sql

编辑

ALTER TENANT tenant1 LOCALITY = "F@zone1,F@zone2,F@zone3,F@zone4";

这条命令将租户的副本从 3 副本扩展为 4 副本。LOCALITY 描述了副本在各 Zone 间的分布情况,F 表示全功能型副本,每增加一个 Zone 的副本配置就相当于增加了一个副本。

B. 租户字符集 :x:

租户字符集是在 CREATE TENANT 时通过 charset 参数指定的,创建后不可修改 。OceanBase 官方文档明确指出"数据库字符集暂不支持修改"。 如果需要不同的字符集,只能重新创建租户。

C. 租户资源池 :white_check_mark:

ALTER TENANT 支持通过 RESOURCE_POOL_LIST 修改租户关联的资源池,从而实现租户的扩缩容。例如:

sql

编辑

-- 为租户添加资源池
ALTER TENANT tenant1 RESOURCE_POOL_LIST = ('pool1', 'pool2');

需要注意的限制是:不支持直接替换 租户的资源池(如将 pool1 直接换成 pool2 会报错),只能通过添加或删除资源池的方式来调整。

D. OBServer 进程端口号 :x:

OBServer 进程端口号(如 2882 )是 OBServer 进程级别的配置,属于集群级配置项 (scope 为 CLUSTER),通过 ALTER SYSTEM SET 命令来修改,而不是通过 ALTER TENANTALTER TENANT 是租户级别的管理命令,无法修改进程级别的网络端口配置。

总结ALTER TENANT 可修改的内容包括:LOCALITY (副本分布)、PRIMARY_ZONE (主 Zone)、RESOURCE_POOL_LIST (资源池)、COMMENT (注释)、DEFAULT TABLEGROUP (默认表组)、LOCK/UNLOCK (锁定/解锁)、RENAME (重命名)以及通过 SET VARIABLES 修改租户系统变量等。字符集和进程端口号不在其可修改范围内。