数据库服务器突然掉电,导致数据库不能正常打开,在open数据库时报如下错误:
ORA-01172: recovery of thread 1 stuck at block 272 of file 3
ORA-01151: use media recovery to recover block, restore backup if needed
这里file 3对应的undo表空间。在打开数据库时,需要用到undo block 272来回滚没有提交的事务,但block 272这个块有问题,提示需要恢复。
SQL> recover datafile 3;
接着尝试打开数据库
SQL>alter database open;
到此数据库打开,不过会没有完
在进行数据泵导出时,报如下错误
ORA-01552: cannot use system rollback segment for non-system tablespace 'TEMP'
还是跟undo表空间有关的
重新创建一个undo表空间
SQL> create undo tablespace undotbs2 datafile '' size 500M autoextend on ;
SQL> alter system set undo_tablespace='UNDOTBS2';
重启数据库并删除原来的表空间及数据文件
SQL> drop tablespace undotbs1 including contents and datafiles;