我不小心将UNDOTBS1表空间的数据文件给删除了,于是我新建了一个UNDO表空间,并alter system set undo_tablespace='新undo表空间' 执行show parameter undo得知使用的UNDO表空间已改成新建的UNDO表空间了,当我删除原来的undo表空间undotbs1的时候,老提示表空间正在使用,是不是要重启数据库服务器才能生效呢?不到最后不要重启!!期待大侠的答案!! 

解决方案 »

  1.   

    不需要重新启动,使你的表空间脱机即可
    ALTER TABLESPACE 表空间名 OFFLINE;
      

  2.   

    表空间数据文件已经被删除,要加RECOVER选项ALTER TABLESPACE 表空间名 OFFLINE FOR RECOVER;
      

  3.   

    提示“无法使还原表空间脱机”?  现在程序一老报错了 file 3 cannot read at this time   或者登陆不上去,开始不小心把UNDOTBS1.dbf给删除了,现在切换到UNDOTBS2表空间了,可是程序还是报那个错,drop tablespace  UNDOTBS1也无法删除,提示正在使用,
      

  4.   

    在线等 啊!已经上线的项目 现在都报错了  file 3 cannot be read at this time 急 啊,又怕重启数据库,数据库是集群的
      

  5.   

    也就是说UNDO表空见ALTER SYSTEM SET UNDO_TABLESPACE='新UNDO表空间' 但是原来的UNDO表空间一直在使用  已经更改24小时了  现在原来的UNDO表空间一直在使用 郁闷了
      

  6.   

    集群的话,在每个节点都需要执行
    ALTER SYSTEM SET UNDO_TABLESPACE='新UNDO表空间' ;
    然后对每个节点执行
    ALTER TABLESPACE 表空间名 OFFLINE;
    再删除。
      

  7.   

    你删除的数据文件的时候可能正在使用UNDO;表空间,造成了数据不一致,
    还原到删除之前的状态看看
      

  8.   

    具体怎么操作呢,我现在还是学习阶段!!还原数据文件不成功了,日志被覆盖了,我alter set undo_tablespace='新表空间'  应用程序还是在读取那个就的数据文件, 有没有别的办法呢
      

  9.   

    在删除UNDOTBS1数据文件的时候存在未提交的事务,删除数据文件后 切换UNDO表空间了 在DROP 原来的UNDO表空间报错当前表空间正在使用,  程序也报错了提示原来表空间的那个数据文件此时无法读取