专栏首页tiane12记一次由Oracle引起的No space left on device问题

记一次由Oracle引起的No space left on device问题

一大早有用户反映,系统登录不上去。我马上用手机看了一眼,数据库连接失败。我们这台数据库是最新迁移的一台独立的数据库服务器。

到了单位之后,开始着手研究,先执行df -h发现还有剩余空间。这时候,如果开始认为是Oracle的问题了,就跑偏了~

执行df -i发现是Inode满了。

空间没满,但inode满了

简单回顾一下Linux的Inode:

inode 和 block 概述# 文件是存储在硬盘上的,硬盘的最小存储单位叫做扇区sector,每个扇区存储512字节。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个块block。这种由多个扇区组成的块,是文件存取的最小单位。块的大小,最常见的是4KB,即连续八个sector组成一个block。

文件数据存储在块中,那么还必须找到一个地方存储文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种存储文件元信息的区域就叫做inode,中文译名为索引节点,也叫i节点。因此,一个文件必须占用一个inode,至少占用一个block。

元信息 → inode 数据 → block

好,接下来就是找这些海量文件的位置了。从/目录下,开始执行

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

usr路径下文件多,然后一层一层cd下去

然后不断的cd到文件最多的目录去,最终定位在/usr/app/oracle/admin/orcl/adump/ 路径下,里面都是*.aud文件。

然后去找这个文件是干嘛的,找到另一篇文章: https://blog.csdn.net/yifeng0504/article/details/103468970

删除后重启,问题解决。附删除方法:

一定要注意:不要直接删除adump目录,否则,你会sqlplus不了数据库。

1.进入审计日志目录:

cd ORACLE_BASE/admin/ORACLE_SID/adump

2.查询3个月前的审计文件:

find ./ -type f -name “*.aud” -mtime +91

3.删除3个月的审计文件:

find ./ -type f -name “*.aud” -mtime +91|xargs rm -f

4.清空所有审计文件: find ./ -type f -name “*.aud”|xargs rm -f

5.新装好一个数据库中查询审计开关的时候,它的默认设置为DB。(查看命令:show parameter audit_trail )

audit_trail=DB,代表的是,oracle将把每次审计跟踪记录在数据库的一张叫做AUD$的表中。

(查看命令:select owner,table_name,tablespace_name from dba_tables a where a.table_name =’AUD$’)

6.如果这张表所在的表空间是oracle数据库最重要的system表空间,此时它正好被设置为自动扩展的话,时间久了,

system表空间会因为过度肥胖把磁盘撑爆,反之,如果system表空间没有自动扩展,AUD$表就没有地方写就会报错,无法分配空间。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 解决Nginx转发http后不走https的问题 后端tomcat

    最近开发一个项目,在正式部署上线后,发现图片地址应该为https的,却变为了http,没有走SSL。

    用户2134503
  • 从宝塔迁移的php应用报500错误解决

    最近把一个项目从宝塔的LNMP环境迁移到LAMP环境下,也就是Nginx换到了Apache下,其他PHP版本、MYSQL版本都没变,结果网站莫名其妙的报500错...

    用户2134503
  • oracle创建表空间和用户

    然后 sqlplus  回车 提示输入用户名——即创建数据库实例时的用户名 ,用户名输入:sys as sysdba 密码直接按回车……

    用户2134503
  • 谈谈分布式事务之三: System.Transactions事务详解[下篇]

    在前面一篇给出的Transaction的定义中,信息的读者应该看到了一个叫做DepedentClone的方法。该方法对用于创建基于现有Transaction对象...

    蒋金楠
  • Spring对事务的支持

    上几篇中我们主要介绍了有关数据库事务相关的知识,在这一篇中,我们将重点了解一下,在spring中是怎么对事务进行支持的。在其它的文章中我们知道spring DA...

    吉林乌拉
  • Spring的统一事务模型

    Spring事务包含对分布式事务和单机事务的支持,我们用的比较多的是单机事务,也就是只操作一个数据库的事务。

    Java3y
  • 性能优化|MVCC通俗理解与事务隔离级别实战操作

    为每一行数据添加锁,加锁慢,容易出现死锁竞争,因为锁的每一行数据,锁的力度小,所以并发高,Innodb支持行级锁,行级锁是支持事务的。

    AI码师
  • Spring 的编程式事务管理及声明式事务管理

    秋日芒草
  • InnoDB MVCC 机制,看这篇就够了

    本文详细的介绍了什么是MVCC?为什么要有MVCC?以及MVCC的内部实现原理:包括Undo Log的版本链是如何组织的,RR、RC两个级别下一致性读是如何实现...

    田守枝
  • 收集的MySQL的面试题分享给大家

    在缺省模式下,MYSQL是autocommit模式的,所有的数据库更新操作都会即时提交,所以在缺省情况下,mysql是不支持事务的。

    Java后端技术

扫码关注云+社区

领取腾讯云代金券