oceanbase zone 扩容问题

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】 4.2.1.10
【问题描述】zone 节点服务器 内存扩容 修改 /cluster/config.yaml memory_limit 执行 reload 提示无变更
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

2 个赞

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

为了更好地帮助您解决此问题,在此需要您提供一些额外的信息:

  1. 您能否提供修改 memory_limit 前后的具体值,以及期望达到的效果?
  2. 在执行 reload 操作时,是否有任何警告或错误信息输出?
  3. 除了 memory_limit,是否还修改了其他配置项?
  4. 能否提供执行 reload 操作前后一段时间内的日志文件?这将有助于我们了解是否存在潜在的问题或异常情况。

根据您的描述,目前没有明确的根因分析场景适用于该问题。建议先通过上述的日志采集命令获取集群的基础信息,并提供以上所列的问题答案,以便我们进一步分析和诊断。如果可以的话,请将采集回来的日志压缩包提供给我们。

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

2 个赞

ob 修改前是 23G 修改后是28G
reload start 集群均无报错

根据文档库中的信息,memory_limit 参数是 OBServer 的一个配置项,用于设置整个 OBServer 进程的最大内存使用量。在 OceanBase 4.2.1 版本中,修改 memory_limit 参数后需要重启 OBServer 节点才能使配置生效。

您提到的修改 /cluster/config.yaml 文件中的 memory_limit 并执行 reload 操作提示无变更,这可能是因为 memory_limit 参数不会热生效,即不重启 OBServer 节点的情况下,即使重新加载配置也不会改变当前运行实例的内存限制。

以下是建议的操作步骤:

  1. 确认配置文件:确保您修改的是正确的配置文件,并且修改后的值已经保存。
  2. 重启 OBServer 节点:由于 memory_limit 参数修改后需要重启 OBServer 节点才能生效,请按照以下命令重启相关节点:
    obd cluster restart <cluster_name>
    
    其中 <cluster_name> 是您的集群名称。
  3. 验证配置是否生效:重启完成后,可以通过查询系统表或使用 obclient 工具连接到 OceanBase 数据库并执行如下 SQL 语句来验证配置是否已更新:
    SHOW PARAMETERS LIKE 'memory_limit';
    

如果上述操作仍然无法解决问题,建议进一步检查日志文件以获取更多信息。您可以使用 obdiag 工具收集诊断信息,并提供给技术支持团队进行更深入的分析。

检索到的文档如下:

  1. datafile_size
  2. storage_rowsets_size
  3. range_optimizer_max_mem_size
  4. obshell-sdk-go 快速上手
  5. system_memory
  6. ALTER RESOURCE UNIT
  7. backup_data_file_size
  8. 扩容
  9. 配置磁盘数据文件的动态扩容
  10. lob_enable_block_cache_threshold

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

2 个赞


这个可分配内存没有增加啊

1 个赞

这边刚才测试修改memory,并无你描述的异常现象,你那边有修改记录么,麻烦贴图看看

1 个赞


这个改成28G 但是zone 显示内存还是23

别再ocp上看, obclient 直接连接过去。看看是否有变化?

  1. 不知道ocp是否有缓存或者ocp的数据库里面没有变,
1 个赞

你这个是obd搭建的ocp-express集群么。
重启集群使用的obd启动的吧?yaml文件发一份看看~/.obd/cluster/xxxx/,是否修改yaml文件中的内存参数了?

同步修改了

我先去数据库尝试分配看一下

连接数据库无法变更 unit

SHOW PARAMETERS LIKE ‘memory_limit%’

再发下 真实的 server的内存。 memory_limit 可以设置的无限大。

image

select zone,
concat(svr_ip, ‘:’, svr_port) observer,
cpu_capacity,
cpu_total,
cpu_assigned,
cpu_assigned_percent,
mem_capacity,
mem_total,
mem_assigned,
mem_assigned_percent,
unit_Num,
round(‘load’, 2) ‘load’,
round(‘cpu_weight’, 2) ‘cpu_weight’,
round(‘memory_weight’, 2) ‘mem_weight’,
leader_count
from __all_virtual_server_stat
order by zone, svr_ip ;

看看能不能执行

表不存在