1、业务高峰期接客户通知,业务客户端无法连接到数据库,远程连接到客户服务器,用户为oracle rac环境,通过grid用户使用sysasm权限登录报错,报错如下:

linux inode节点满处理之ORA-09925_Linux inode

2、根据报错看来是空间问题导致的audit审计日志无法写入导致的故障发生,于是通过df -hT查看空间利用率,发现空间利用率并不高,如图:

linux inode节点满处理之ORA-09925_经验_02

3、磁盘空间还有剩余,但是报错提示没有剩余空间,想到应该是inode节点占用率100%导致,通过df -i进行查看发现根目录inode节点占用率100%,如图:

linux inode节点满处理之ORA-09925_oracle audit_03

然后开始排查根路径下inode节点占用率过高的目录,定位是adump目录大量aud文件占用了大量的inode节点,如图:

linux inode节点满处理之ORA-09925_经验_04

4、在adump路径先执行rm -rf * 出现报错Argument list too long,如图:

linux inode节点满处理之ORA-09925_oracle audit_05

5、由于需要删除的文件太多了,rm无法直接删除,改成如下脚本删除,删除一天前的aud后缀的文件,如图:

linux inode节点满处理之ORA-09925_oracle audit_06

6、经过长时间的运行发现才删除了几十万个文件,此种方式实在太慢,于是想到了rsyn命令同步删除的方式,打断上一步的操作改用rsyn同步的方式进行删除吗,发现1千万多个小文件很快删除完成,删除命令如图:

linux inode节点满处理之ORA-09925_Linux inode_07

在生产服务器上有时候看着空间还有剩余,但是提示没有空间写入,有可能inode节点占用到达100%导致,建议平时巡检也要关注inode节点使用率。