解决删除undo表空间时的ORA-01548错误

本文详细介绍了在尝试删除Oracle数据库的undo表空间时遇到ORA-01548错误的解决方法,包括检查当前活动事务、清理依赖以及关闭数据库实例等步骤。
今天有个同学碰到这个问题,帮他解决了下
它的undotbs1表空间有问题,想要删除它,碰到问题。
SQL> drop tablespace undotbs1 including contents and datafiles;
drop tablespace undotbs1 including contents and datafiles
*
ERROR at line 1:
ORA-01548: active rollback segment '_SYSSMU1_557037162$' found, terminate
dropping tablespace
数据文件的状态
SQL> select FILE#,STATUS,ENABLED,name from v$datafile;

     FILE# STATUS  ENABLED
---------- ------- ----------
NAME
--------------------------------------------------------------------------------
         1 SYSTEM  READ WRITE
/u01/app/oracle/oradata/PROD1/system01.dbf

         2 ONLINE  READ WRITE
/u01/app/oracle/oradata/PROD1/sysaux01.dbf

         3 RECOVER READ WRITE
/u01/app/oracle/oradata/PROD1/undotbs01.dbf


     FILE# STATUS  ENABLED
---------- ------- ----------
NAME
--------------------------------------------------------------------------------
         4 ONLINE  READ WRITE
/u01/app/oracle/oradata/PROD1/example01.dbf

         5 ONLINE  READ WRITE
/u01/app/oracle/oradata/PROD1/users01.dbf

         6 ONLINE  READ WRITE
/u01/app/oracle/oradata/PROD1/datafile/o1_mf_test05_dbqconro_.dbf


     FILE# STATUS  ENABLED
---------- ------- ----------
NAME
--------------------------------------------------------------------------------
         7 ONLINE  READ WRITE
/u01/app/oracle/oradata/PROD1/test07.dbf

undotbs01.dbf文件是有问题的,可是他没有备份。
show一下undo的参数
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     18000
undo_tablespace                      string      UNDOTBS3
默认的undo表空间是UNDOTBS3了,而undotbs01.dbf是undotbs01表空间的数据文件。
按理应该能删啊。

解决方法:
加入或修改以下参数
vi /u01/app/oracle/product/11.2.0/dbhome_1/dbs /initORCL.ora
undo_management=manual
undo_retention=10800
undo_tablespace=undotBS3
_CORRUPTED_ROLLBACK_SEGMENTS = (_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$,_SYSSMU1_557037162$)
启用静态参数文件启动
startup pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs /initORCL.ora'
删除之前删除不了的表空间
drop tablespace undotbs1 including contents;
到这步可见,表空间居然删除了
接着再把库关闭
shutdown immediate
修改静态参数文件
vi /u01/app/oracle/product/11.2.0/dbhome_1/dbs /initORCL.ora
undo_management=auto
undo_retention=10800
undo_tablespace=undotBS3
去除_CORRUPTED_ROLLBACK_SEGMENTS 参数
然后创建动态参数,打开数据库
sqlplus / as sysdba
create spflie from pfile
startup
这样就算全部完成啦!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31386161/viewspace-2134061/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31386161/viewspace-2134061/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值