【 使用环境 】生产环境 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 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手 ] 即可召唤小助手,欢迎试用!
论坛小助手
2024 年10 月 14 日 10:32
#3
您在尝试为 OceanBase 的租户新增副本时遇到了错误代码 1210,错误详情提示“非法的 locality zone 名称”。这通常意味着您指定的 zone 名称不符合 OceanBase 的命名规则或存在其他格式上的问题。
为了更准确地定位问题并提供解决方案,建议使用 obdiag
工具来采集相关日志信息。
日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base
这条命令会帮助我们收集集群的基础信息,包括但不限于配置文件、系统参数等,这对于理解您的环境设置非常有帮助。
请您执行上述命令并将生成的日志压缩包发送给我们,以便我们进一步分析。
此外,请您提供一些额外的信息以便我们更好地帮助您:
您尝试添加的 locality zone 名称是什么?
您当前集群的 locality 设置是什么样的?
您是在使用 OCP 管理平台还是通过其他方式(如命令行)尝试新增副本?
是否有完整的错误信息或日志片段可以分享?特别是与该错误相关的部分。
详情请参考:
900.9000-9499-of-mysql-mode.md
0001 ~ 3999
4000 ~ 4499
4500 ~ 4999
附上敏捷诊断工具 obdiag 使用帮助链接
旭辉
2024 年10 月 14 日 11:15
#4
查看租户 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
旭辉
2024 年10 月 14 日 11:26
#6
查下集群的所有zone
select * from dba_ob_zones;
另外扩缩容建议使用ocp操作,更方便,不过 当租户所属数据库为 单机集中式 时,不支持新增副本操作。
https://www.oceanbase.com/docs/common-ocp-1000000001406108
论坛小助手
2024 年10 月 14 日 11:35
#8
根据您提供的信息,您在执行 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 文本提取似乎并不完整,但从截图本身可以看出:
dba_ob_zones
表中显示了您的集群中有三个 zone,分别是 zone1
、zone2
和 zone3
。
DBA_OB_TENANTS
表中显示了您尝试修改的租户的 LOCALITY
设置。
结合这些信息,我们可以推测问题可能是由于您在 ALTER TENANT
命令中使用的 zone 名称与实际存在的 zone 名称不匹配导致的。请确保您在命令中使用的 zone 名称与 dba_ob_zones
表中列出的 zone 名称完全一致。
建议步骤
验证 zone 名称 :再次确认您在 ALTER TENANT
命令中使用的 zone 名称是否正确无误。
检查租户配置 :确保租户的 PRIMARY_ZONE
和 LOCALITY
设置符合您的预期,并且与您尝试添加的 zone 相匹配。
命令示例 :如果您希望将租户的副本分布到所有三个 zone,请确保使用正确的命令格式,例如:ALTER TENANT <tenant_name> locality='FULL{1}@zone1,FULL{1}@zone2,FULL{1}@zone3';
请确保 <tenant_name>
替换为您实际要修改的租户名称,并且 zone 名称与 dba_ob_zones
表中列出的一致。
如果以上步骤仍然无法解决问题,请提供更多详细的错误信息或日志片段,以便进一步分析。
检索到的文档如下:
查看租户和资源信息
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
旭辉
2024 年10 月 14 日 13:50
#10
使用单引号这个语法试下呢
ALTER TENANT <tenant_name> locality='FULL{1}@zone1,FULL{1}@zone2,FULL{1}@zone3';