环境为 OceanBase 社区版 4.4.2,3 个 OBServer 节点,目前遇到数据盘被 block_file 占满、其中一个节点下线的问题。实际业务数据量很小,但 block_file 已经扩到了约 5T。
1、数据文件动态扩容相关参数:
datafile_size ≈ 57G
datafile_next ≈ 552G
datafile_maxsize ≈ 5T
2、ls -lh block_file
du -h block_file 均为5T
3、 CDB_OB_SERVER_SPACE_USAGE 汇总所有租户、各类空间后,总量只有一百多 GB
4、SELECT
SVR_IP,
ROUND(DATA_DISK_CAPACITY/1024/1024/1024,2),
ROUND(DATA_DISK_ALLOCATED/1024/1024/1024,2),
ROUND(DATA_DISK_IN_USE/1024/1024/1024,2)
FROM oceanbase.GV$OB_SERVERS;
DATA_DISK_CAPACITY
DATA_DISK_ALLOCATED
DATA_DISK_IN_USE 均为5T
5、ocp中查看,只有节点1的数据盘接近5T,节点2和节点3的数据盘都不到100G
预占用 和你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_ALLOCATED/1024/1024/1024),2) as DATA_DISK_ALLOCATED,
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;
show parameters where name in (‘memory_limit’,‘memory_limit_percentage’,‘system_memory’,‘log_disk_size’,‘log_disk_percentage’,‘datafile_size’,‘datafile_disk_percentage’,‘datafile_next’,‘datafile_maxsize’); 查一下参数设置
不过61看着确实是奇怪 其他的节点数据文件大小 看看
这个信息 查一下
ls -lh block_file
du -h block_file 均为5T
什么时候 发现的 有做过什么操作么?例如:在线修改DDL
还有一个线索,前几天有个同事往这个节点的数据盘目录中rsync了1T左右的csv文件,我看了ocp的历史告警,在开始rsync之后就开始报observer节点不工作,cpu使用率超限,observer坏盘告警
从节点文件信息 来看预占用的文件大小 应该没有问题 目前不确定是不是这个导致的 还有当时的observer.log日志么?
当时的observer日志没有了
如果数据盘没有放其它东西时,只给OB的data使用时,当设置
datafile_maxsize <= DATA_DISK_ALLOCATED 时 ,DATA_DISK_CAPACITY取值DATA_DISK_ALLOCATED;
操作系统磁盘空间> = datafile_maxsize> DATA_DISK_ALLOCATED 时,DATA_DISK_CAPACITY取值 datafile_maxsize;
操作系统磁盘空间< datafile_maxsize 时,DATA_DISK_CAPACITY取值 操作系统磁盘空间;
当操作系统上的这个数据盘放其它东西时,当设置
datafile_maxsize <= DATA_DISK_ALLOCATED 时 ,DATA_DISK_CAPACITY取值DATA_DISK_ALLOCATED;
操作系统磁盘空闲空间+DATA_DISK_ALLOCATED>= datafile_maxsize > DATA_DISK_ALLOCATED时,DATA_DISK_CAPACITY取值 datafile_maxsize;
操作系统磁盘空闲空间+DATA_DISK_ALLOCATED < datafile_maxsize 时,DATA_DISK_CAPACITY近似取值 操作系统磁盘空闲空间+DATA_DISK_ALLOCATED
OCP上这里的“数据盘”,是指OB数据当前可用的空间
给你解释一下 这几个含义
好的,谢谢~







