您的位置:首页 > 其它

oralce日志文件无法归档错误ORA-16038解决方法

2014-03-08 13:50 585 查看
最近使用oracle时突然发现如下错误
ORA-16038: 日志 2 序列号 67 无法归档
ORA-19809: 超出了恢复文件数的限制
ORA-00312: 联机日志 2 线程 1:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'
导致oracle无法启动,上网查了下原因,发现
select r.SPACE_USED/r.SPACE_LIMIT from v$recovery_file_dest r;
恢复文件空间不够了,网上提供的解决方法:
1.将归档设置到其他目录,修改alter System set log_archive_dest;
2.转移或者删除闪回恢复区里的归档日志;
3.增大闪回恢复区,alter System set db_recovery_file_dest_size=5G;
4.手动将未归档的Redo日志进行归档。执行以下命令手动将未归档的Redo日志进行归档
alter system archive log all to '/archive1'
to参数指定的位置可以是之前的归档位置,也可以是其他位置,oracle操作系统用户在这个位置有读写的权限。执行完这个命令之后所有未归档的日志都被归档,之后很顺利就执行了alter database open命令打开了数据库。

我选择使用第二方法来解决我的oracle问题。
首先使用删除闪回恢复区里的归档日志,以便让oracle尽快正常工作,
SQL> startup force
ORACLE 例程已经启动。Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 117443460 bytes
Database Buffers 486539264 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
ORA-16038: 日志 3 序列号 1807 无法归档
ORA-19809: 超出了恢复文件数的限制
ORA-00312: 联机日志 3 线程 1: 'E:\ORADATA\MDC\REDO03.LOG'
查看v$log
SQL> select group#,sequence#,archived,status from v$log; GROUP# SEQUENCE# ARCHIV STATUS
---------- ---------- ------ --------------------------------
1 1808 NO INACTIVE
2 1807 NO INACTIVE
3 1809 NO CURRENT
看到组2是非当前状态,并且没有归档,使用参考文章中的处理非归档文件的方法.
SQL> alter database clear unarchived logfile group 2;数据库已更改。启动数据库,这个启动成功.
SQL> alter database open;数据库已更改。为了防止归档日志再次占满空间,需要定期清理归档日志。在rman下执行crosscheck archivelog all;检查所有的归档日志delete noprompt archivelog all backed up 1 times to device type disk;将已经备份过一次的归档日志全部清除。可以在备份脚本的最后加上这几行代码,对归档日志进行清理,以彻底解决这个问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐