Oracle归档日志问题

当手动删除Oracle归档日志后,重启服务出现ORA-01033错误,通过shutdown abort或startup force解决。在启动时遇到ORA-16038和ORA-19809错误,原因是快闪恢复区空间不足。解决方法是调整DB_RECOVERY_FILE_DEST_SIZE大小,如设置为4G,然后重启数据库。建议保留最近的归档日志,出现问题时按此方法恢复,最后调整回原大小,注意备份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果使用的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;把归档日志的空间改回去。目前已经改回去了。但不知道在哪里删除归档日志,建议试试(试前记得备份数据库)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值