前情提要

  • 前几天研究Data Guard
    ,所以对某oracle数据库开启了归档模式
  • 昨天M$出了几个漏洞,服务器半夜打补丁自动重启了
  • 今天早上访问应用,发现提示503 Service Temporarily UnavailableResin/3.1.8

解决过程

  1. 一开始以为是应用问题,重启无效,发现业务本身的resin也起来了(不起来会告诉你503?)
  2. 然后向导数据库,发现SQL Developer
    也连不上了,同时数据库服务器的Oracle
    进程内存占用才几十兆,正常应该在几百兆向上
  3. 数据库连接报错如下:

于是尝试启动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
    状态下
最后修改:2021 年 10 月 10 日
如果觉得我的文章对你有用,请随意赞赏