请注意,本文编写于 608 天前,最后修改于 608 天前,其中某些信息可能已经过时。
前情提要
- 前几天研究
Data Guard
,所以对某oracle数据库开启了归档模式 - 昨天M$出了几个漏洞,服务器半夜打补丁自动重启了
- 今天早上访问应用,发现提示
503 Service Temporarily UnavailableResin/3.1.8
解决过程
- 一开始以为是应用问题,重启无效,发现业务本身的resin也起来了(不起来会告诉你503?)
- 然后向导数据库,发现
SQL Developer
也连不上了,同时数据库服务器的Oracle
进程内存占用才几十兆,正常应该在几百兆向上 - 数据库连接报错如下:
于是尝试启动Oracle,进入sqlplus之后,starup
提示如下:
一开始没注意,感觉这不是起来了吗,然后发现还是不行,才注意到有一个ORA-03113
错误。
立马想到可能和RMAN有关,于是检查RMAN
RMAN这时候其实没啥难度了,正常crosscheck
再删除日志就可以了。但是需要注意的是,必须将数据库放到mount
状态才可以。
sqlplus /nolog
conn sys@orcl as sysdba
startup nomount
接下来进入rman
conn
crosscheck archivelog all;
delete archivelog until time 'sysdate-1';
再回到sqlplus
alter database open;
注意这时候数据库的提示已经不同了
搞定
总结
- 日志放在了
Flash_recovery_area
下,满了 - 但是正常运行状态下没有报错,重启服务器造成数据库重启了,报错
- 删除rman日志数据库必须在
mount
状态下