但是现在undotbs表空间还有活动的回滚段,现在建立undo表空间undotbs2把undo表空间切换到undotbs2上去,ora-01548: 已找到活动回
删除undo表空间报ora-01548
用expdp导出数据报错:
c:\documents and settings\temp>expdp scott/tiger dumpfile=scott.dmp directory=du
mp schemas=scott
export: release 11.2.0.1.0 - production on 星期一 7月 23 21:58:14 2012
copyright (c) 1982, 2009, oracle and/or its affiliates. all rights reserved.
连接到: oracle database 11g enterprise edition release 11.2.0.1.0 - production
with the partitioning, olap, data mining and real application testing options
ora-31626: 作业不存在
ora-31637: 无法创建作业 sys_export_schema_02 (用户 scott)
ora-06512: 在 sys.dbms_sys_error, line 95
ora-06512: 在 sys.kupv$ft_int, line 798
ora-39244: 关系选择期间禁用删除空位图像标题的事件
ora-06512: 在 sys.dbms_sys_error, line 86
ora-06512: 在 sys.kupc$que_int, line 1825
ora-02320: 无法创建嵌套表列 treat(user_data as kupc$_file_list).filelist
的存储表
ora-00376: 此时无法读取文件 3
ora-01110: 数据文件 3: 'd:\app\wwang\oradata\mdsp\undotbs01.dbf'
导出报错如上错误:
由于之前删除undotbs1表空间数据文件undotbs01执行如下指令删除的
alter database datafile 'd:\app\wwang\oradata\mdsp\undotbs01.dbf' offline drop
但是现在undotbs表空间还有活动的回滚段
现在建立undo表空间undotbs2把undo表空间切换到undotbs2上去
sql> create undo tablespace undotbs2 datafile 'd:\app\wwang\oradata\mdsp\undotbs
21.dbf' size 100m;
表空间已创建。
sql> alter system set undo_tablespace='undotbs2';
系统已更改。
sql>
undo表空间切换过去后删除undotbs1,,报错如下
sql> drop tablespace undotbs1 including contents;
drop tablespace undotbs1 including contents
第 1 行出现错误:
ora-01548: 已找到活动回退段 '_syssmu1_1518548437$', 终止删除表空间
sql>
再次导出还是报错上面的错误
这时查看
sql> select segment_name,tablespace_name,status from dba_rollback_segs;
segment_name tablespace_name status
------------------------------ --------------- -------------------------
system system online
_syssmu13_967519202$ undotbs1 offline
_syssmu12_1198886156$ undotbs1 offline
_syssmu11_711815884$ undotbs1 offline
_syssmu10_3176102001$ undotbs1 needs recovery
_syssmu9_1126410412$ undotbs1 needs recovery
_syssmu8_1557854099$ undotbs1 needs recovery
_syssmu7_137577888$ undotbs1 needs recovery
_syssmu6_1834113595$ undotbs1 needs recovery
_syssmu5_1018230376$ undotbs1 needs recovery
_syssmu4_2369290268$ undotbs1 needs recovery
segment_name tablespace_name status
------------------------------ --------------- -------------------------
_syssmu3_991555123$ undotbs1 needs recovery
_syssmu2_2082490410$ undotbs1 needs recovery
_syssmu1_1518548437$ undotbs1 needs recovery
_syssmu16_3838319334$ undotbs2 online
_syssmu15_3971806561$ undotbs2 online
_syssmu14_168326844$ undotbs2 online
已选择17行。
sql>
发现undotbs01中的回滚段status为needs recovery 这时如果有rman备份可以利用rman恢复
现在没有备份,如下方法解决:
先利用spfile创建一个pfile文件然后把_corrupted_rollback_segments这个隐含参数加到里面
sql> create pfile from spfile;
文件已创建。