OB社区版4.2.3.0 租户新增副本失败

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】OB
【 使用版本 】社区版4.2.3.0
【问题描述】OB规模(1-1-1),有一个租户当前只在一个zone上,准备将租户的副本增加到所有zone。在另外两个zone上创建完资源池,之后使用 ALTER TENANT XXX locality=“FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3”; 命令扩容副本报错

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

您在尝试为 OceanBase 的租户新增副本时遇到了错误代码 1210,错误详情提示“非法的 locality zone 名称”。这通常意味着您指定的 zone 名称不符合 OceanBase 的命名规则或存在其他格式上的问题。

为了更准确地定位问题并提供解决方案,建议使用 obdiag 工具来采集相关日志信息。

日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base

这条命令会帮助我们收集集群的基础信息,包括但不限于配置文件、系统参数等,这对于理解您的环境设置非常有帮助。

请您执行上述命令并将生成的日志压缩包发送给我们,以便我们进一步分析。

此外,请您提供一些额外的信息以便我们更好地帮助您:

  1. 您尝试添加的 locality zone 名称是什么?
  2. 您当前集群的 locality 设置是什么样的?
  3. 您是在使用 OCP 管理平台还是通过其他方式(如命令行)尝试新增副本?
  4. 是否有完整的错误信息或日志片段可以分享?特别是与该错误相关的部分。

详情请参考:

  1. 900.9000-9499-of-mysql-mode.md
  2. 0001 ~ 3999
  3. 4000 ~ 4499
  4. 4500 ~ 4999

附上敏捷诊断工具 obdiag 使用帮助链接

查看租户 xxx 修改前的 Locality 看下

SELECT TENANT_ID,TENANT_NAME,TENANT_TYPE,PRIMARY_ZONE,LOCALITY FROM oceanbase.DBA_OB_TENANTS;

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001429408

查下集群的所有zone

select * from dba_ob_zones;

另外扩缩容建议使用ocp操作,更方便,不过 当租户所属数据库为 单机集中式 时,不支持新增副本操作。
https://www.oceanbase.com/docs/common-ocp-1000000001406108


那个报错是什么意思

根据您提供的信息,您在执行 ALTER TENANT ... locality 命令时遇到了错误,错误信息显示为 ErrorCode = 1210, SQLState = HY000, Details = invalid arguments to locality zone name illegal。这意味着在您尝试修改租户的 locality 时,所提供的 zone 名称不合法。

您还提供了两张截图,一张是通过 SELECT * FROM dba_ob_zones; 查询得到的结果,另一张是通过 SELECT TENANT_ID, TENANT_NAME, TENANT_TYPE, PRIMARY_ZONE, LOCALITY FROM oceanbase.DBA_OB_TENANTS; 查询得到的结果。然而,这两张截图的 OCR 文本提取似乎并不完整,但从截图本身可以看出:

  1. dba_ob_zones 表中显示了您的集群中有三个 zone,分别是 zone1zone2zone3
  2. DBA_OB_TENANTS 表中显示了您尝试修改的租户的 LOCALITY 设置。

结合这些信息,我们可以推测问题可能是由于您在 ALTER TENANT 命令中使用的 zone 名称与实际存在的 zone 名称不匹配导致的。请确保您在命令中使用的 zone 名称与 dba_ob_zones 表中列出的 zone 名称完全一致。

建议步骤

  1. 验证 zone 名称:再次确认您在 ALTER TENANT 命令中使用的 zone 名称是否正确无误。
  2. 检查租户配置:确保租户的 PRIMARY_ZONELOCALITY 设置符合您的预期,并且与您尝试添加的 zone 相匹配。
  3. 命令示例:如果您希望将租户的副本分布到所有三个 zone,请确保使用正确的命令格式,例如:
    ALTER TENANT <tenant_name> locality='FULL{1}@zone1,FULL{1}@zone2,FULL{1}@zone3';
    

请确保 <tenant_name> 替换为您实际要修改的租户名称,并且 zone 名称与 dba_ob_zones 表中列出的一致。

如果以上步骤仍然无法解决问题,请提供更多详细的错误信息或日志片段,以便进一步分析。

检索到的文档如下:

  1. 查看租户和资源信息

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

OCP这个确实可以,但是黑屏命令就是不行,很奇怪 :joy:

使用单引号这个语法试下呢

ALTER TENANT <tenant_name> locality='FULL{1}@zone1,FULL{1}@zone2,FULL{1}@zone3';

好的,晚点我试下,谢谢