数据库服务器突然掉电,导致数据库不能正常打开,在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;