datafile设置了10G,datafile_maxsize为50G,再没有数据写入的情况下,block_file会涨到50G

OB社区版4.3.5.1
datafile设置了10G,datafile_maxsize为50G,再没有数据写入的情况下,block_file会涨到50G?

1 个赞

global:
devname: eth0
memory_limit: 10G # The maximum running memory for an observer
system_memory: 2G
datafile_size: 10G # Size of the data file.
log_disk_size: 10G # The size of disk space used by the clog files.
datafile_next: 1G
datafile_maxsize: 50G
enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.
max_syslog_file_count: 4 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.
appname: hlsc_ob
这个是obd的配置

1 个赞

理论应该是不会的 目前可以查看一下大小
datafile_size磁盘数据文件占用磁盘可用空间大小。
datafile_disk_percentage 磁盘数据文件占用磁盘可用空间的比例。
datafile_next 磁盘数据文件自动扩容的步长。
datafile_maxsize 磁盘数据文件自动扩容的最大空间。
select zone,concat(SVR_IP,’:’,SVR_PORT) observer,
cpu_capacity_max cpu_total,cpu_assigned_max cpu_assigned,
cpu_capacity-cpu_assigned_max as cpu_free,
round(memory_limit/1024/1024/1024,2) as memory_total,
round((memory_limit-mem_capacity)/1024/1024/1024,2) as system_memory,
round(mem_assigned/1024/1024/1024,2) as mem_assigned,
round((mem_capacity-mem_assigned)/1024/1024/1024,2) as memory_free,
round(log_disk_capacity/1024/1024/1024,2) as log_disk_capacity,
round(log_disk_assigned/1024/1024/1024,2) as log_disk_assigned,
round((log_disk_capacity-log_disk_assigned)/1024/1024/1024,2) as log_disk_free,
round((data_disk_capacity/1024/1024/1024),2) as data_disk,
round((data_disk_in_use/1024/1024/1024),2) as data_disk_used,
round((data_disk_capacity-data_disk_in_use)/1024/1024/1024,2) as data_disk_free
from oceanbase.gv$ob_servers;

这个大概率是obd的策略导致,避免后续频繁扩容动作。
blockfile大小可以查询下,SELECT svr_ip, data_disk_allocated / 1024 / 1024 / 1024 AS datafile_allocated_GB, data_disk_capacity / 1024 / 1024 / 1024 AS datafile_max_GB FROM oceanbase.GV$OB_SERVERS;

–data_disk_allocated 大小应该等于blockfile大小。查询结果结合配置文件参数再对比一次

查询结果都是50G

data_disk_allocated =50g是吗

所以就很奇怪不知道是什么操作导致数据文件到50G的,目前查到只使用了1G,初始化的时候我确认过只占了10G

对的

查一下 这个值 看看是否是50G select data_disk_allocated/1024/1024/1024 as datafile_G from GV$OB_SERVERS;

是的

show parameters like ‘%datafile_%’; 查一下配置项 截图看一下

应该是符合预期的 这个是你启动之前就配置好了 此等配置下集群启动后扩容会生效
自动扩容生效后,原本GV$OB_SERVERS视图的data_disk_capacity字段将展示datafile_maxsize的值,表示当前自动扩容的最大上限空间,data_disk_allocated表示当前磁盘数据文件实际空间大小。
select data_disk_allocated/1024/1024/1024 as datafile_G, data_disk_capacity/1024/1024/1024 as datafile_max_G from GV$OB_SERVERS;

关键没数据写入也会自动扩吗?

应该也是会的

这个查看一下

啊?这个是出于什么考虑?需要怎么设置才不会自动扩到最大值?

这个查过了都是50G

那磁盘空间 就是对的 已经扩容生效了 不过也是预占用空间 不用这么慌张

我主要是想知道是什么原因导致的扩容,这个对于我后面设置最大值也有影响。如果我设的很大,会不会实际没那么大也被预占用磁盘空间