在 OceanBase 数据库 V3.x 版本,数据文件根据 observer 安装时的初始参数配置进行预分配,独占分配空间。从 V4.2 版本开始,OceanBase 数据库提供了数据文件按需扩展的能力。
适用版本
OceanBase 数据库 V4.2 版本。
OceanBase 数据库 V4.2 之前
数据文件按照配置项来预分配:
datafile_size表示磁盘数据文件占用磁盘可用空间大小。datafile_disk_percentage表示磁盘数据文件占用磁盘可用空间的比例。
优先级:datafile_size > datafile_disk_percentage。
OceanBase 数据库 V4.2
既可以继续使用之前的预分配模式,也可以配置按需分配模式。
datafile_size、datafile_disk_percentage优先级和之前版本一样。- 如果手动配置了
datafile_size或datafile_disk_percentage,则按指定来设置数据文件最大可使用的磁盘空间。 - 如果不配置
datafile_size或datafile_disk_percentage,OceanBase 数据库会根据 clog 和数据文件 blockfile 是否共用一个物理盘决定磁盘数据文件大小,并具有以下分配逻辑:- 如果 clog 和数据文件 blockfile 共用物理盘,则默认 blockfile 预分配 60% 的磁盘空间。
- 如果 clog 和数据文件 blockfile 非共用物理盘,则默认 blockfile 预分配 90% 的磁盘空间。
- 如果手动配置了
datafile_next、datafile_maxsize控制按需分配的方式:datafile_next表示磁盘数据文件自动扩容的步长。datafile_maxsize表示磁盘数据文件自动扩容的最大空间。
当 datafile_next、datafile_maxsize 配置为大于 0 的值时,表示开启按需分配。此时,datafile_size 或 datafile_disk_percentage 影响的是磁盘初始数据文件的大小。