/data/store/sstable/block_file 过大

【 使用环境 】测试环境
【 OB or 其他组件 】ob
【 使用版本 】oceanbase/oceanbase-ce:3.1.3
【问题描述】block_file 过大
【复现路径】没有操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

ob是与占用磁盘空间,可以通过参数查看 datafile_disk_percentage, datafile_size当前预占用大小

在OceanBase数据库中,存储数据的文件名为 block_file,block_file 文件位于 OBServer 节点安装目录/store/sstable 目录下,该文件是在 OBServer 节点启动后创建。且 block_file 文件的大小由配置项 datafile_size 或 datafile_disk_percentage 控制。

对于 OceanBase 数据库 V4.2.0 之前的版本,系统主要采用预分配的方式,采用磁盘预分配策略,默认值为95%,文件创建后无法调整大小,V4.2.0 之前的版本不支持单机的磁盘级扩容和缩容。将一部分磁盘空间预留给数据文件,以保证数据文件占有一段尽可能连续的磁盘空间,避免其他应用程序对磁盘的抢占引起的磁盘资源不足。但这种预分配的方式占用了很大的磁盘空间,即使磁盘空间没有被使用,也不能被释放。

从 V4.2.0 版本开始,OceanBase 数据库引入了数据文件渐进式使用磁盘空间的用户配置选项,即系统先预分配一个合理的磁盘大小给数据文件,再根据磁盘的实际使用情况和用户的配置进行自动扩容。

1 个赞

关于datafile_disk_percentage参数 - #3,来自 obpilotq4bldj_gaODc4ODAzODIzLjE2OTg4ODU0NzQ._ga_T35KTM57DZ*MTcxOTgxODMxMS4yNC4xLjE3MTk4MTk1NTAuNjAuMC4w

最终解决:只能调整大不能调整小。
步骤如下:
1.需要先备份数据,
2.调小 datafile_disk_percentage, datafile_size
3.重新构建节点,或重启服务。

2 个赞