Oracle审计日志导致数据库挂起--原因是inode耗尽

本文描述了一个Oracle数据库虚拟机因操作系统inode资源耗尽,导致无法创建审计日志文件,进而使得数据库无法访问的问题。通过分析磁盘空间与inode使用情况,揭示了问题根源,并提供了检查和解决inode耗尽的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.说明

装有Oracle数据库的虚拟机,运行一段时间后突然数据库无法访问了。后查看日志发现报错:操作系统空间满了,无法创建审计日志文件。
查看操作系统磁盘空间:
但是查看磁盘空间明明还有很多没有使用

[root@rac1 ~]# df -h 
Filesystem Size Used Avail Use% Mounted on 
/dev/mapper/vg_rac1-lv_root 
46G 28G 16G 65% / 
devtmpfs 1.4G 296K 1.4G 1% /dev 
/dev/sda1 477M 41M 411M 9% /boot 
tmpfs 1.4G 8.0K 1.4G 1% /dev/shm 
tmpfs 1.4G 8.0K 1.4G 1% /dev/shm 
tmpfs 1.4G 8.0K 1.4G 1% /dev/shm

自己手动创建一个文件试试,无法创建

[root@rac1 ~]# touch test.txt
touch: cannot touch `test.txt': No space left on device

奇怪了,查看inode的使用情况,/根目录的inode已经使用了100%,问题就出在这

[root@rac1 ~]# df -i 
Filesystem Inodes IUsed IFree IUse% Mounted on 
/dev/mapper/vg_rac1-lv_root 
3055616 3055616 0 100% / 
devtmpfs 356754 895 355859 1% /dev 
/dev/sda1 128016 39 127977 1% /boot 
tmpfs 360468 3 360465 1% /dev/shm 
tmpfs 360468 3 360465 1% /dev/shm 
tmpfs 360468 3 360465 1% /dev/shm 

原因就是inode被使用完了,导致没有空闲的inode来使用,而创建新的问题,文件夹等都是需要inode,inode是用来记录文件,文件夹的创建者,创建时间,大小等等信息。
所以一个文件占用一个inode,所以解决方法就是删除不用的文件,例如:日志,临时文件,oracle的审计日志等。
可通过下面命令来查看各个文件夹下的文件数

for i in /*; do echo $i; find $i | wc -l; done

如果知道了是哪个文件夹,可以直接去删除。而关于删除大量小文件的方法:
可以通过rsync来删除:

  • 创建一个文件夹

      mkdir /tmp/rm_dir
    
  • 执行删除命令

      rsync -a --delete /tmp/rm_dir/ /u01/app/oracle/admin/cndba/adump/
    

注:如果inode可用为0,将无法创建文件夹,那么需要先删除一点文件释放一点inode即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值