个人随笔
目录
Oracle生产故障:inode空间不足
2020-06-11 23:22:20

场景:突然之间,oracle数据库链接不上了,报获取链接失败,然后用oracle
登录服务器,执行如下命令登录。

  1. sqlplus '/as sysdba'

登录失败,报如下错误:

  1. ORA-09925:Unable to create audit trail fail
  2. Linux-x86_64 Error:28:No space left on device

分析:一开始看到第二行,设备没有剩余空间,以为是磁盘空间满了,登录上服务器执行df -h命令查看磁盘空间使用情况,发现没毛病,还有很多剩余。后面再看第一行,创建审计跟踪失败?这个不就是创建文件失败么,记起以前遇到过的情况,一个目录下文件太多了,然后就写不了文件了,原因是inode超过限制,想到会不会也是这样,果断执行命令df -i查看inode空间使用情况,一看结果用到了100%,问题定位成功。

解决办法:
1、找出文件数目最多的文件夹
在根目录下执行如下命令

  1. find / -xdev -printf '%h\n' |sort |uniq -c |sort -k 1 -n

然后最后就是文件数目最多的文件夹,我们发现是oracle的审计跟踪文件。

2、判断是否可以删除,若是可以则删除。
删除命令是用

  1. ls |xargs rm -rf

因为目录下文件太多,用rm -rf *会报太长了,删除不了。

注意:一定要确定文件可删除再删除,这里可能需要先把Oracle停止再删除,不然不知道会出什么毛病,我们就只删除删到一半,这个目录突然变成只读了,用root用户都删除不了了,所以文件不能乱删,最好明确可以删除再删,搞得只能重启机器,好像重启机器都报错,可能磁盘空间被损坏了,也有可能是我们再这个目录下执行了
ls,然后界面卡死,我们强行关闭导致的。

3、最后还是找运维重启机器才搞定,不知道为啥变得只读了。


inode在linux中,每个文件,不管大小是多少都会对应一个inode,inode就是一个专门用来保存文件属性,权限和指针(指向block),都有一个上限。

 467

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2