v4.3.5社区版生产,datafile_size初始化的时候分配过高

v4.3.5社区版生产,datafile_size初始化的时候分配过高,有办法缩小吗?

6 个赞

block_file 是 oceanbase建集群后使用的数据文件,这个文件是预占用的空间,目前不支持缩容,但可以动态扩容, 配置项 datafile_disk_percentage 用于设置数据文件占用其所在磁盘总空间的百分比,建议在创建集群时,datafile_disk_percentage设置的小一些,后面使用可以动态扩容。如果不设置这个参数,使用默认配置(datafile_size和datafile_disk_percentage 都是0),则数据文件(block_file)与 Redo 日志分别占用其所在磁盘总空间的 90%。

4 个赞

学习总结经验 :+1: :+1: :+1:

2 个赞

一楼正解,自己测试环境倒是无碍,生产标准化一般不会设置默认的90%

2 个赞

测试环境有啥办法可以快速重建的?除了重装

2 个赞

创建新系统,做迁移

1 个赞

学习了

1 个赞

集群的所有数据都在block_file中,除了重建集群,目前没有其他的办法进行缩容或重建数据文件。

1 个赞

请问下,log_pool预分配的有办法缩小吗

1 个赞

可以设置log_disk_size或log_disk_percentage 参数调整一下,log_disk_size优先级> log_disk_percentage,设置一个参数就可以。然后使用GV$OB_SERVERS的LOG_DISK_CAPACITY 字段查看实际生效的值。

1 个赞

这个设置了后,log_pool那里面的空间没有被回收,那里面都是64M的文件

CLOG文件回收规则是什么 @论坛小助手

CLOG文件的回收规则主要由两个配置项控制:

  1. log_disk_utilization_limit_threshold,这是Clog磁盘空间使用的上限,默认值是95%,表示Clog可以使用的磁盘空间占总磁盘空间的百分比。当超过这个值时,OBServer节点将不再接受新的写入请求,也不再接收其他节点同步的日志,此时外部对节点的所有读写事务都会报错transaction needs rollback
  2. log_disk_utilization_threshold,这是Clog磁盘复用的下限,默认值是80%。在系统正常工作时,Clog会在这一水平开始复用最老的日志文件。正常情况下,Clog磁盘空间占用不会超过80%,如果超过了80%,则会报告错误clog disk is almost full,提醒管理员进行处理。
    另外,Clog文件只有在其所涉及的分区数据完全转储到SSTable中,并且分区的元信息已经持久化到宕机重启后的起始位点后,才能被回收。如果发现log_pool目录下的空间没有被回收,可能是因为转储过程失败或停滞导致的。

检索到的文档如下:

  1. Redo 日志
  2. oceanbase数据库运行过程中手动删除clog日志
  3. 集群管理 FAQ

学习一下

学习一下

不太确定你的部署方式。但是如果是生产环境的话,建议对一些初始化参数严格设置,还有一些隐藏配置,比如:默认百分比、文件位置等等。

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013496#5-title-步骤二:配置%20obd