今天有个同学碰到这个问题,帮他解决了下
它的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
*
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
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_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_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/
本文详细介绍了在尝试删除Oracle数据库的undo表空间时遇到ORA-01548错误的解决方法,包括检查当前活动事务、清理依赖以及关闭数据库实例等步骤。

被折叠的 条评论
为什么被折叠?



