OB 数据文件会预占用其所在磁盘总空间的 90%

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】 block_file文件和clog目录纸坊街占用磁盘超90%
【复现路径】
【附件及日志】我服务器有3.7T空间, 就只装了应用及数据库,跑了几天之后发现磁盘占用超过了90%,看了一下文件主要是OB数据的block_file文件和clog事物日志,AI了一下,这个是OB数据库的与占用机制,求教各位大佬,这个怎么解决啊,这与占用也太高了吧,AI还给不出来解决方案。

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

3 个赞

您提到的OceanBase数据文件(包括block_file和clog事务日志)预占用磁盘空间达到90%的情况,通常并不被视为预期行为。在健康的OceanBase集群中,合理的磁盘使用率应当保持在一个较低水平,以便于应对突发的数据增长或维护操作需求。如果磁盘占用过高,可能会引发性能下降甚至是服务中断等问题。

对于这种情况,建议首先通过obdiag工具来采集相关日志并进行初步分析,看看是否有任何异常导致了磁盘空间的过度消耗。

日志采集场景: clog盘满
日志采集命令: obdiag gather scene run --scene=observer.clog_disk_full

此外,也可以直接尝试执行根因分析命令,以识别可能导致磁盘使用率过高的具体原因:

根因分析场景: clog日志磁盘空间满的问题
根因分析命令: obdiag rca run --scene=clog_disk_full

请您运行上述命令收集信息,并将生成的日志文件分享给我们做进一步检查。同时,为帮助我们更准确地定位问题,请回答以下几个问题:

  1. 您最近是否对集群进行了任何调整或升级?如果有,请提供详细的操作步骤。
  2. 数据库负载近期是否有显著变化?例如增加了新的大容量写入任务。
  3. 是否存在长时间运行而未提交的大事务?
  4. 除了clog目录外,其他目录(如data目录)的空间利用率如何?
  5. 能否分享一下当前设置的clog相关参数值,比如clog_disk_usage_limit_percentage等?

以上信息将有助于我们理解问题背景,从而提供更加针对性的帮助。

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

2 个赞

SHOW PARAMETERS LIKE ‘datafile_disk_percentage’;
是不是这个设置了90

2 个赞

数据导一份出来,看看多大。

1、检查参数配置是不是90%
SHOW PARAMETERS LIKE ‘datafile_disk_percentage’;

2、目前不支持在线缩容数据文件,只能重建集群
2.1、单实例重建步骤(可支持长时间停机)

  • 备份数据,可以使用obdumper或者物理备份
  • 卸载集群
  • 重新部署集群,在安装过程中根据实际情况配置datafile_disk_percentage参数
  • 恢复数据

2.2、单实例重建步骤(不支持长时间停机)

  • 申请一台新的主机,部署集群,在安装过程中根据实际情况配置datafile_disk_percentage参数
  • 新建备租户
  • 做swithover
  • 更改VIP指向新的集群,或者需要更改应用数据源地址
  • 回收旧集群资源

2.3、分布式集群缩容步骤

  • 修改zone的优先级,把待删除的节点修改为非primary zone
  • 删除副本
  • 删除节点
  • 重新添加节点,根据实际情况配置datafile_disk_percentage参数
  • 添加副本
  • 参考这个步骤依次替换集群中的所有节点,完成缩容操作

安装的时候你没设置磁盘相关参数。默认就是90%。预分配的。跟oracle的数据文件类似