ORA-00257: 归档程序错误。在释放之前仅限于内部连接

今天在用工具连接数据库时突然出现了这样的错:

ORA-00257: 归档程序错误。在释放之前仅限于内部连接



但是由于此错误的发生,不能登录进数据库,使用命名进入时报了如下错误:

[oracle@node1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 24 09:05:32 2014
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-09817: 无法写入审计文件。
Linux-x86_64 Error: 28: No space left on device
Additional information: 12
ORA-01075: 您现在已登录
原来在11G中审计是默认开启的,而且是对DB进行审计,生成了大量审计文件,导致磁盘空间被占满,
审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的 SYS.AUD$表中,可通过视图dba_audit_trail查看)中。

处理办法:
1.删除审计文件:
cd $ORACLE_BASE/admin/$ORACLE_SID/adump/
rm -rf  *

2.清理服务器上的大文件,腾出空间
find . -type f -size +100M

3.在删除了以上的文件后,如果此时还是报空间不足的错误,则重启服务器,然后再使用命令登录进数据库。

4.关闭审计功能:
alter system set audit_trail=none scope=spfile;
然后重启,value=NONE表示审计处于关闭状态
SQL> shutdown immediate
SQL> startup
SQL> sho parameter audit_trail;


NAME     TYPE  VALUE
------------------------------------ ----------- ------------------------------
audit_trail     stringNONE



在能正常登录数据库后,还需要做以下几件事,否则归档错误还是会发生



解决办法1:

改变了FLASH_RECOVERY_AREA的大小

修改命令>alter system setdb_recovery_file_dest_size=8G scope=both;

查看命令>show parameterdb_recovery_file_dest_size


解决办法2:

一、查看归档日志所在位置

 SQL>show parameter recover; 

到具体的位置把归档文件删除

二、查看使用率 SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

然后用户用rman进入把归档日志删除

--> su - oracle
--> rman 
--> RMAN> connect target sys/sys_passwd
--> RMAN> crosscheck archivelog all;
--> RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

或者
--> RMAN> delete expired archivelog all;
注:删除过期的归档或者删除指定时间之前的archivelog:



这样就把归档文件删除了。

再进入sqlplus 查看ARCHIVELOG日志使用率!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值