Oracle归档日志问题

来源:互联网 发布:型材下料优化软件 编辑:程序博客网 时间:2024/05/13 12:09
如果使用的Oracle数据库采用日志归档模式,如没自动删除归档日志的话,过段时间会出现归档日志满,报一个错误:ORA-00257: archiver  error. Connect internal only, until freed.

这时如果手工删除归档日志,直接windows的服务上重启oracle service orcl后, 想连接到orcl,则会出现oracle错误:

ORA-01033: ORACLE initialization or shutdown in progress

问题分析,此错误报告说数据库正在启动或关闭;

解决办法,以管理员身份登录,shutdown abortstartup force

在startup force 时会出现以下错误:

C:...>sqlplus sys/girl as sysdba

     Sql>startup force

     ...

     ...

     数据库装载完毕。

     ORA-16038: 日志 3 序列号 5035 无法归档

     ORA-19809: 超出了恢复文件数的限制

     ORA-00312: 联机日志 3 线程 1:

     'F:/ORACLE/PRODUCT/10.1.0/ORADATA/GRAXY/REDO03.LOG'

 问题分析:

情况应该是快速闪回区空间设定为2G,也由于手工删除了归档日志,但归档日志的信息应该还存的数据库里。  用以下方法解决:

     //将快闪空间改成更高

     SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4G SCOPE=BOTH;

     然后从新启动数据库。

重新启动数据库即ok了。

 

但这个解决办法只是把归档日志的空间提高了。

不过以后就不怕手工删除归档日志了。

1.建议先把之前的归档日志删除,保留最近一次的;

2.如果出现问题,则采用该办法恢复;

3.最后再用这个SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=2G SCOPE=BOTH;把归档日志的空间改回去。目前已经改回去了。但不知道在哪里删除归档日志,建议试试(试前记得备份数据库)。