1.change undo,shink undo
create undo <tablespacename> datafile '<dbfile name>' size <XXXM>/reuse manager locally;
alter system set undo_tablespace=APPS_UNDOTS1 scope=spfile;
alter system set undo_management=auto scope=spfile;
restart database
drop tablespace <old undo tablespace>
2.恢复undo
如果有备份可以用恢复普通文件的办法把它恢复
步骤:shutdown DB-->copy-->startup mount-->recover database-->alter database open;
如果没有备份,如果archive都在,可以alter database create datafile,然后继续。
如果没有备份,Archive也没有,修改pfile/spfile,
undo_management =manual
undo_tablespace='system'
_CORRUPTED_ROLLBACK_SEGMENTS=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)
在mount的时候把undo drop掉然后打开数据库重建undo
恢复完成后把undo_management ,undo_tablespace修改回来,去掉_CORRUPTED_ROLLBACK_SEGMENTS
3.看undo的段