ALTER SYSTEM MODIFY REPLICA 命令修改副本类型未生效

【 使用环境 】测试环境
【 OB or 其他组件 】4.2.5.2
【 使用版本 】
【问题描述】使用alter system modify replica命令修改副本类型未生效

【复现路径】
使用root@sys系统租户登录集群,执行:
ALTER SYSTEM MODIFY REPLICA LS = 1001 SERVER = ‘xxx:2882’ REPLICA_TYPE = ‘F’ PAXOS_REPLICA_NUM
= 4;
报错:ERROR 4018 (HY000): LS does not exist

使用root@tenant_name租户登录集群,执行相同命令,可以执行成功,但是发现只读副本并未修改未全能副本。

参考官网:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001500272

注:通过ocp测试全能副本和只读副本是可以正常互相转换的
【附件及日志】

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

2 个赞

针对您遇到的“使用 ALTER SYSTEM MODIFY REPLICA 命令修改副本类型未生效”的问题,建议首先使用 obdiag 工具进行日志采集,这将有助于我们分析为何副本类型的更改没有按预期生效。

日志采集场景: 修改副本类型未生效
由于 obdiag 当前预设的场景中没有直接对应“修改副本类型未生效”的选项,您可以选择采集集群的基础信息,同时可以考虑收集与副本管理相关的日志,以帮助定位问题。
日志采集命令: obdiag gather scene run --scene=observer.base

另外,为了能够更准确地定位并解决问题,还需要您提供更多详细的信息:

  1. 您是在哪个版本的 OceanBase 上执行的该操作?
  2. 能否提供执行 ALTER SYSTEM MODIFY REPLICA 命令的具体语法及参数?
  3. 执行命令后是否收到了任何错误消息或警告?
  4. 修改副本类型前后的状态是否有变化?例如,通过 SHOW REPLICA STATUS; 查询的状态信息。
  5. 能否提供执行该命令的时间点附近的操作日志?

请您先执行上述日志采集命令,并将生成的日志文件提供给我们,以便于进一步分析。如果在执行过程中遇到任何问题,请随时联系我们。

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

需要指定租户。


不指定应该是默认当前租户吧

测试了下指定租户也没效果

不指定应该是默认当前租户,sys租户只有 1 日志流没有1001。而且需要指定只读副本

ALTER SYSTEM MODIFY REPLICA LS = 1001 SERVER=‘xxx:2882’ REPLICA_TYPE=‘F’ PAXOS_REPLICA_NUM=4 TENANT=‘xxx’,租户不是系统租户,普通租户的

这个1001是只读的么?

指定一个租户试试呢?

指定租户也试了,执行成功但是实际并未生效

系统租户查一下
SELECT TENANT_NAME,TENANT_ID,LOCALITY FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME=‘tenant1’;

SELECT * FROM oceanbase.CDB_OB_LS WHERE TENANT_ID=10xx;

SELECT * FROM oceanbase.CDB_OB_LS_LOCATIONS WHERE LS_ID=1001 AND TENANT_ID=1002;

系统租户查询:



当前租户查询:

当前租户root用户执行命令:
ALTER SYSTEM MODIFY REPLICA LS = 1001 SERVER = ‘1xxx1:2882’ REPLICA_TYPE = ‘F’ PAXOS_REPLICA_NUM = 4 TENANT=‘bxxxest’;

这个信息 查询一下
SELECT * FROM oceanbase.DBA_OB_TENANT_JOBS WHERE JOB_TYPE = ‘ALTER_TENANT_LOCALITY’ AND tenant_id = 1002 ORDER BY START_TIME DESC LIMIT 10;


这个应该是之前ocp上的转换任务生成的,通过ocp界面是能够正常实现全能副本和只读副本之间的转换的,今天黑屏又重新执行转换命令了,黑屏依旧没有效果

ALTER TENANT xxx LOCALITY=“F@zone1,F@zone2,F@zone3,R@zone4”;这个执行是有效果的

看着指定的PAXOS_REPLICA_NUM=4应该有问题

原来是3个全能副本,再将只读副本修改为全能副本,我理解应该就是4吧

计算PAXOS_REPLICA_NUM=4应该没有问题 你在执行一次 查询一次这个信息 看着SELECT * FROM oceanbase.DBA_OB_TENANT_JOBS WHERE JOB_TYPE = ‘ALTER_TENANT_LOCALITY’ AND tenant_id = 1002 ORDER BY START_TIME DESC LIMIT 10; 之前查询的信息没有看到你执行的ALTER SYSTEM MODIFY REPLICA LS = 1001 SERVER = ‘1xxx1:2882’ REPLICA_TYPE = ‘F’ PAXOS_REPLICA_NUM = 4 TENANT=‘bxxxest’;这个命令