编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

ORA-09817: Write to audit file failed 磁盘满了导致登陆失败

wxchong 2024-10-08 19:49:26 开源技术 18 ℃ 0 评论

数据库的数据文件,表空间,不能直接删除,会损坏数据库!!!不能直接删除,会损坏数据库!!!不能直接删除,会损坏数据库!!!重要的事情说三遍。

ORA-09817: Write to audit file failed 报错解决办法

分析:是由于linux磁盘满了,导致sqlplus / as sysdba 进不去 报ORA-09817,

可以考虑删除linux下的无用文件,我是清理trm 和trc文件,清理监听日志,然后清理无用的表空间

--查看磁盘,文件使用情况

df -lh

du -sh *

--只要删除linux下一些不用的文件,磁盘空间释放一下,也可以登录成功,不用进行下面的操作

--清理trm 和trc文件 十几G

find /u01/app/oracle/diag/rdbms/orcl/orcl/trace -mtime +7 -name "*.trm" | xargs rm -f

--清理监听日志 挺大的40G

find /u01/app/oracle/diag/tnslsnr/oracle11g/listener/alert -mtime +7 -name "log_*.xml" | xargs rm -f

--到这里就可以登录成功了,下面删除表空间是因为这些表空间没有过,而且分配很多空间,浪费,切记生产库不能删除表空间

--查看表空间使用

SELECT Upper(F.TABLESPACE_NAME) "表空间名",

D.TOT_GROOTTE_MB "表空间大小(M)",

D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",

To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')

|| '%' "使用比",

F.TOTAL_BYTES "空闲空间(M)",

F.MAX_BYTES "最大块(M)"

FROM (SELECT TABLESPACE_NAME,

Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,

Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES

FROM SYS.DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F,

(SELECT DD.TABLESPACE_NAME,

Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB

FROM SYS.DBA_DATA_FILES DD

GROUP BY DD.TABLESPACE_NAME) D

WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

ORDER BY 1

--查看表空间里面有没存数据

--以表空间NONTAX_INDEX为例

select * from dba_tables t where t.tablespace_name='NONTAX_INDEX';

select * from dba_indexes i where i.tablespace_name='NONTAX_INDEX';


切记:删除表或者表的数据无法释放磁盘空间,只能减低表空间使用率,删除表空间才能减低磁盘使用率,注意磁盘空间和表空间的区别,表空间是个容器,存放各种数据文件,数据文件存放表数据

--删除表空间和数据文件 contents参数表示删除数据表示数据 datafiles表示数据文件

drop tablespace NONTAX_INDEX including contents and datafiles;

如果要删除的表空间太大,删除后可能磁盘空间没释放,

输入 lsof -n | grep deleted 查看pid 再 kill -9 pid


后记:很多表空间有初始的大小,虽然不存入数据,但是用drop tablespace tablespace_name including datafiles;会报错,因为虽然不存数据,但是还有有使用了几兆,

要用drop tablespace tablespace_name including contents and datafiles;

--删除空表空间,包含物理文件

drop tablespace tablespace_name including datafiles;

--删除非空表空间,包含物理文件

drop tablespace tablespace_name including contents and datafiles;


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表