UNDO空间2天变800G,时间紧迫,最终选择直接删除UNDO空间,补回数据。
登录数据库
1.修改参数文件
Create pfile from spfile
2.查看不正常回滚段
SELECT SEGMENT_NAME, STATUS FROM DBA_ROLLBACK_SEGS WHERE TABLESPACE_NAME='UNDOTBS1';
非ONLINE或者OFFLINE的状态都不可用
_SYSSMU1$ NEEDS RECOVERY
_SYSSMU6$ NEEDS RECOVERY
_SYSSMU21$ NEEDS RECOVERY
3.修改pfile文件,加入以下语句
*._OFFLINE_ROLLBACK_SEGMENTS=(_SYSSMU1$,_SYSSMU6$,_SYSSMU21$)
4.重启数据库
startup pfile='/home/oracle/init.ora';
5.删除undo空间,修改undo空间
drop tablespace undotbs1 including contents and datafiles;
create undo tablespace undotbs2 datafile '/u02/oradata/vids/default_lib/undo01_1.dbf' size 10m reuse autoextend on next 10m maxsize unlimited;
alter system set undo_tablespace=undotbs2 scope=both;
6.修改参数文件,重启数据库
取消 *._OFFLINE_ROLLBACK_SEGMENTS=(_SYSSMU1$,_SYSSMU6$,_SYSSMU21$)
7.改回spfile,重启数据库
Create spfile from pfile
shutdown immediate;