数据库在没有备份的情况下,如果数据库redo或undo损坏,可以通过如下方法处理,但是不一定成功
把init文件中的:
undo_management=manual
然后启动数据库到mount
状态后
sql>show parameters undo
查看是否已经是manual
如果是,就看看
alter database open是否能打开
如果不行,
2、shutdown immediate
3、在init.ora中加入如下参数
_allow_resetlogs_corruption=TRUE
_corrupted_rollback_segments=(_syssmu1$,_syssmu2$,_syssmu3$,_syssmu4$,_syssmu5$,_syssmu6$,_syssmu7$,_syssmu8$,_syssmu9$,_syssmu10$,_syssmu11$,_syssmu12$,_syssmu13$,_syssmu14$,_syssmu15$,_syssmu16$,_syssmu17$,_syssmu18$,_syssmu19$,_syssmu20$,_syssmu21$,_syssmu22$,_syssmu23$,_syssmu24$,_syssmu25$,_syssmu26$,_syssmu27$,_syssmu28$,_syssmu29$,_syssmu30$,_syssmu31$,_syssmu32$,_syssmu33$)
Sql>startup mount;
Sql>recover database until cancel using backup controlfile ;
Cancel
Sql>alter database open resetlogs;