v4.3.5社区版生产,datafile_size初始化的时候分配过高,有办法缩小吗?
block_file 是 oceanbase建集群后使用的数据文件,这个文件是预占用的空间,目前不支持缩容,但可以动态扩容, 配置项 datafile_disk_percentage 用于设置数据文件占用其所在磁盘总空间的百分比,建议在创建集群时,datafile_disk_percentage设置的小一些,后面使用可以动态扩容。如果不设置这个参数,使用默认配置(datafile_size和datafile_disk_percentage 都是0),则数据文件(block_file)与 Redo 日志分别占用其所在磁盘总空间的 90%。
学习总结经验
一楼正解,自己测试环境倒是无碍,生产标准化一般不会设置默认的90%
测试环境有啥办法可以快速重建的?除了重装
创建新系统,做迁移
学习了
集群的所有数据都在block_file中,除了重建集群,目前没有其他的办法进行缩容或重建数据文件。
请问下,log_pool预分配的有办法缩小吗
可以设置log_disk_size或log_disk_percentage 参数调整一下,log_disk_size优先级> log_disk_percentage,设置一个参数就可以。然后使用GV$OB_SERVERS的LOG_DISK_CAPACITY 字段查看实际生效的值。
这个设置了后,log_pool那里面的空间没有被回收,那里面都是64M的文件
CLOG文件的回收规则主要由两个配置项控制:
-
log_disk_utilization_limit_threshold
,这是Clog磁盘空间使用的上限,默认值是95%,表示Clog可以使用的磁盘空间占总磁盘空间的百分比。当超过这个值时,OBServer节点将不再接受新的写入请求,也不再接收其他节点同步的日志,此时外部对节点的所有读写事务都会报错transaction needs rollback
。 -
log_disk_utilization_threshold
,这是Clog磁盘复用的下限,默认值是80%。在系统正常工作时,Clog会在这一水平开始复用最老的日志文件。正常情况下,Clog磁盘空间占用不会超过80%,如果超过了80%,则会报告错误clog disk is almost full
,提醒管理员进行处理。
另外,Clog文件只有在其所涉及的分区数据完全转储到SSTable中,并且分区的元信息已经持久化到宕机重启后的起始位点后,才能被回收。如果发现log_pool
目录下的空间没有被回收,可能是因为转储过程失败或停滞导致的。
检索到的文档如下:
学习一下
学习一下
不太确定你的部署方式。但是如果是生产环境的话,建议对一些初始化参数严格设置,还有一些隐藏配置,比如:默认百分比、文件位置等等。
https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013496#5-title-步骤二:配置%20obd