OceanBase数据库环境本来datafile_size 设的比较大,导致预占太多,想降低此预占配置,并增加配置datafile_maxsize来配合用以进行后续动态扩容。我看之前版本可以手动降低,但是4.x没看到此文档?
https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000059#3-title-%E8%B0%83%E5%B0%8F%20data%20%E7%9B%98%E7%9A%84%E5%8D%A0%E7%94%A8%E5%A4%A7%E5%B0%8F
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在OceanBase数据库中,如果datafile_size设置得过大,确实会导致预占用磁盘空间过多的问题。降低此预占用配置以及增加datafile_maxsize以配合进行后续动态扩容的方法具体如下:
首先,你可以调整datafile_size或者datafile_disk_percentage的大小来降低预占用的磁盘空间。其中,如果你保持datafile_size的默认值为0,可以通过调整datafile_disk_percentage的大小来达到目的。例如,你可以使用以下命令来将datafile_disk_percentage设置为93:
obclient> ALTER SYSTEM SET datafile_disk_percentage = 93;
需要注意的是,如果datafile_size的值大于0,系统会忽略datafile_disk_percentage的设置。也就是说,datafile_size和datafile_disk_percentage这两个参数是互斥的。
然后,为了实现后续的动态扩容,你需要增大datafile_maxsize的值以确保磁盘空间的增长上限。你可以通过以下命令来手动设置datafile_maxsize的值:
obclient> ALTER SYSTEM SET datafile_maxsize = '400G';
请确保你设置的datafile_maxsize的值大于datafile_size的值,或者大于根据比例换算得出的值。此外,OceanBase数据库在版本3.1.4中引入了datafile_next参数来控制磁盘空间的增长步长。你可以在调整datafile_maxsize的同时,也设置这个参数来进一步优化你的数据库配置。
正常的 ob采用预占磁盘空间的方式 是datafile_size 和 log_disk_size 参数控制数据盘和日志盘大小
这个是检查服务器资源是否满足生产环境使用参数,测试环境建议关闭。
datafile_size是不支持调小的。 只能调大。
或者可以把现有环境的数据进行备份,然后重新部署一个集群。从而把datafile_size调小。之后通过备份恢复来恢复数据。 ,此回答整理自钉群“[社区]技术答疑群OceanBase”