很久之前部署的一套数据库突然启不来了,客户只说应用系统登录不了。后来经过半小时摸索解决了,记之以备忘。
远程用putty连接上去,执行sqlplus登录,提示ORA-01033: ORACLE initialization or shutdown in progress,猜想应该是datafile有损坏,于是以sys用户登录。
SQL>shutdown normal;
SQL>startup mount;
SQL>alter database open;
报错如下:
ERROR at line 1:
ORA-16038: log 3 sequence# 5281 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1:
'/opt/FangChanData/oracle10g/oradata/realty/redo03.log'
ORA-00312: online log 3 thread 1:
'/opt/FangChanData/oracle10g/oradata/realty/redo03b.log'
貌似第三组日志文件超长了?查看磁盘空间还有几十G剩余,不太明白,不管了,直接清掉未归档日志:
SQL> alter database clear unarchived logfile group 3;
再打开数据库:
SQL>alter database open;
OK了。只是有一堆疑问却没有细究,唉...这种解决方法太简单粗暴了。