关于inode使用量达到100%影响文件创建及数据库的问题

近日处理了一个故障,业务侧登录数据库系统后,执行命令报错,报错内容如下:
在这里插入图片描述
在CRT中远程操作提示资源暂时不可用。
进一步需要核查,
一般情况下,出现这个报错内容,表明linux文件打开数、最大线程数超过了系统默认设置。具体步骤如下:
修改系统最大进程数vim /etc/security/limits.d/20-nproc.conf
* soft nproc 65535
root soft nproc unlimited
文件打开数过多,可以修改/etc/security/limits.conf
* - nofile 65535
* - noproc 65535
但在实际问题处理上,发现还是报错,问题没有解决。
核查文件系统情况如下,未发现磁盘空间使用率占满的情况。

在这里插入图片描述
备份了tcp端口数据和oracle用户打开的文件后,决定重启系统,系统重新启动成功。
业务侧在启动数据库的时候,oracle启动监听的时候会在/var/tmp/.oracle/下创建文件,但在创建文件的时候,提示空间不足。通过排查,发现/var/log/maillog,占用空间比较大,约占用12G的空间,清理完之后,发现/var/tmp/.oracle/还是不能创建文件。
在排查的时候,通过df -h命令,未发现根节点挂载情况,如下图:
在这里插入图片描述

而通过mount -a重新挂载的时候,也报错,提示已被挂载。如下图:
在这里插入图片描述

而通过检查/etc/fstab,发现根目录挂载情况是正常的,如下图所示:
在这里插入图片描述
最后检查/etc/mtab文件,发现根目录缺失,通过grep -v rootfs /proc/mounts命令修复。通过df -h,可以查看到根节点挂载情况。但在/var/tmp/.oracle/还是不能创建文件,提示空间不足,实际问题仍然没有解决。
最后通过df -i查看inode使用情况,发现inode使用量已达到100%,如下图:
在这里插入图片描述
通过命令for i in /*;do echo $i;find $i |wc -l;done查找,哪个目录下inode占用最高。最后发现是/var/spool/目录占用inode最高。如下图:
在这里插入图片描述

默认情况下,redhat6.4,inode分区为50GB,inode大小为3276800。而/var/spool/占用inode为3172604。核查此文件下内容,如下图:
在这里插入图片描述
清理完之后,通过df -i 命令,发现inode占用情况恢复正常。如下图:
在这里插入图片描述

后续数据库人员可以正常操作,创建文件,到此为止,故障解决。

【故障总结】
默认情况下,Redhat6.4,分区为50GB,inode大小为3276800。此参数是创建操作系统时系统根据磁盘分区自动设置的大小,不可修改。根目录分区容量小,需要数据库管理员考虑重做系统,重新分区,增加容量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值