drop tablespace undotbs1
*
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU1_1240252155$' found, terminate dropping tablespace
SQL> DROP ROLLBACK SEGMENT "_SYSSMU1_1240252155$";
DROP ROLLBACK SEGMENT "_SYSSMU1_1240252155$"
*
ERROR at line 1:
ORA-30025: DROP segment '_SYSSMU1_1240252155$' (in undo tablespace) not allowed
再次通过百度,高手请教: 发现需要在pfile 上 添加隐藏参数文件_offline_rollback_segments (‘xx’)和 _corrupted_rollback_segments ('xx') 后再删除,看否跳过
在pfile中加入参数
_offline_rollback_segments=(‘’)
_corrupted_rollback_segments=(‘’) ---括号参数为dba_rollback_segs中 undotbs1 status 为need recovery 状态的这种值“_SYSSMU122_928896348$”
10 : 于是通过 pfile添加影藏参数 或者
alter system set _offline_rollback_segments = " 值 " socpe=spfile
alter system set _corrupted_rollback_segments = " 值 " socpe=spfile 进行操作。
当时我通过重建pfile参数文件 *._offline_rollback_segments=('_SYSSMU90_1969094056$',。。。。)
*._corrupted_rollback_segments=('_SYSSMU90_1969094056$', 来操作
然后 通过删除所有 dba_rollback_segs 下的所有值后,在drop undotbs1 表空间:
SQL> drop rollback segment "_SYSSMU1_1240252155$"; ---注意双引号不能有空格
Rollback segment dropped. ---对应的值,一个一个删除。
11 : 最后删除 undotbs1 表空间
---ok,可以删除了,再通过dba_rollback_segs发现,没有了undtotbs1 的表空间了。
SQL> select segment_name,tablespace_name,status from dba_rollback_segs;
SEGMENT_NAME TABLESPACE_NAME STATUS
------------------------------ ------------------------------ ----------------
SYSTEM SYSTEM ONLINE
_SYSSMU212_1777710046$ UNDOTBS2 ONLINE
_SYSSMU211_3260590093$ UNDOTBS2 ONLINE
_SYSSMU210_1915944113$ UNDOTBS2 ONLINE
_SYSSMU209_2868303011$ UNDOTBS2 ONLINE
_SYSSMU208_3687438092$ UNDOTBS2 ONLINE
_SYSSMU207_752508113$ UNDOTBS2 ONLINE
_SYSSMU206_883733676$ UNDOTBS2 ONLINE
_SYSSMU205_725465268$ UNDOTBS2 ONLINE
_SYSSMU204_1401227473$ UNDOTBS2 ONLINE
_SYSSMU203_3100642042$ UNDOTBS2 ONLINE
12 : 扫尾: a: 恢复原来好审计功能设置,
b: 多切换几次,查看业务数据
c: 这样操作,虽然 可以了,但是有部分业务数据丢失
d: 做好备份
e: 就像大师说的,遇事,莫急躁