数据库在没有备份的情况下,如果数据库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;

05-28 09:10