前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次由Oracle引起的No space left on device问题

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

作者头像
用户2134503
发布2020-05-25 16:52:38
2.1K0
发布2020-05-25 16:52:38
举报
文章被收录于专栏:tiane12tiane12

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

到了单位之后,开始着手研究,先执行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$表就没有地方写就会报错,无法分配空间。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年5月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档