OceanBase 租户,哪些参数可以通过 alter tenant 进行修改()
A. replica_num 副本数
B. 租户字符集
C. 租户资源池
D. OBServer 进程端口号
正确答案:A、C
逐项解析
A. replica_num 副本数 ![]()
ALTER TENANT 支持通过修改 LOCALITY 来调整租户的副本数和副本分布策略。例如:
sql
编辑
ALTER TENANT tenant1 LOCALITY = "F@zone1,F@zone2,F@zone3,F@zone4";
这条命令将租户的副本从 3 副本扩展为 4 副本。LOCALITY 描述了副本在各 Zone 间的分布情况,F 表示全功能型副本,每增加一个 Zone 的副本配置就相当于增加了一个副本。
B. 租户字符集 ![]()
租户字符集是在 CREATE TENANT 时通过 charset 参数指定的,创建后不可修改 。OceanBase 官方文档明确指出"数据库字符集暂不支持修改"。 如果需要不同的字符集,只能重新创建租户。
C. 租户资源池 ![]()
ALTER TENANT 支持通过 RESOURCE_POOL_LIST 修改租户关联的资源池,从而实现租户的扩缩容。例如:
sql
编辑
-- 为租户添加资源池
ALTER TENANT tenant1 RESOURCE_POOL_LIST = ('pool1', 'pool2');
需要注意的限制是:不支持直接替换 租户的资源池(如将 pool1 直接换成 pool2 会报错),只能通过添加或删除资源池的方式来调整。
D. OBServer 进程端口号 ![]()
OBServer 进程端口号(如 2882 )是 OBServer 进程级别的配置,属于集群级配置项 (scope 为 CLUSTER),通过 ALTER SYSTEM SET 命令来修改,而不是通过 ALTER TENANT 。ALTER TENANT 是租户级别的管理命令,无法修改进程级别的网络端口配置。
总结 :
ALTER TENANT可修改的内容包括:LOCALITY(副本分布)、PRIMARY_ZONE(主 Zone)、RESOURCE_POOL_LIST(资源池)、COMMENT(注释)、DEFAULT TABLEGROUP(默认表组)、LOCK/UNLOCK(锁定/解锁)、RENAME(重命名)以及通过SET VARIABLES修改租户系统变量等。字符集和进程端口号不在其可修改范围内。