环境说明:
DB:Oracle 11.2.0.1.0单实例
OS:Redhat 6.3
问题说明:
周五马上下班了,研发反馈数据库连不上了,由于是公司内部的数据库,所有数据来源于其他库通过expdp/impdp导入得到的,主要用于问题重现处理产品BUG ,数据库的特点是数据量大,用户多,几乎每时每刻数据库都在同事进行多个impdp操作,数据允许有部分丢失… 。
由于业务特点,数据库没有任何备份,当然也没有启动归档模式。
问题现象:
通过告警日志可以马上定位到UNDO 坏块导致的数据库宕机;
ORA-01578 : ORACLE data block corrupted (file # 3 , block # 280 )
ORA-01110: data file 3: '/u02/app/oracle/oradata/orcl11/undotbs01.dbf '
问题分析:
最保险的方式,通过 rman 备份 + 归档进行恢复,可以保证数据的一致性。
但是既然没有rman ,也是有方法启动数据库的。
数据库在open状态下出现UNDO 损坏比较容易解决,只要创建新的UNDO ,当前UNDO切换到新创建的UNDO ,删除旧的 UNDO 就可以解决;
由于数据库是非干净的关闭,当前无法OPEN,只能启动到mount阶段。
SQL> startup
ORACLE insta