用DROP TABLESPACE MIS INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS 表空间删除了,怎么数据文件有时删不了;
并且我在批处理命令里,也写了del MIS.DBF,但没有用,还是删除不了.报"另一个进程正在使用此文件".
由于我要完全delete tablespace , 然后imp xxxxxxx full=y,而且是每天定时的!
OS:WINDOWS server2003
ORACLE:10G

解决方案 »

  1.   

    建议楼主查查哪个进程使用该文件,如果
    DROP TABLESPACE MIS INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS
    都删不了,那一定是有某个oracle之外的进程正使用该文件
    找到该进程,查明原因再处理
      

  2.   

    看看你的drop tablespace的信息的结果有没有成功。如果成功的话,是不会有这个问题的
      

  3.   

    window系统上有时又drop tablespace including会成功,但是数据文件还在,不过这时的数据文件是可以删除的,但是看你的命令,后面有del 命令,也没有删掉,应该还是drop的命令没有执行成功。
      

  4.   

    DROP TABLESPACE MIS INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS 
    我查看日志,这个命令是执行成功的.
      

  5.   

    del MIS.DBF这个命令是不是成功的哟。
      

  6.   

    这是我的原文件,请高人斧正:
    echo on
    cd e:\101
    echo "starting imp......................" %date% %time%   >>  e:\101\hello\2009.log
    //删除表空间的语句
    sqlplus system/tiger@ora  @deleteSql.sql   >>  e:\101\hello\2009.log
    cd e:\oracleData//删除数据文件,担心一次删除不了,所有删除两次.
    del MIS.DBF /f /a 
    ping /n 30 127.0.0.1
    del MIS.DBF /f /a cd e:\101
    //创建表空间的语句
    sqlplus system/tiger@125ora   @createSql.sql   >>  e:\101\hello\2009.log
    //导入数据
    imp system/tiger@125oracle  buffer=40960000 full=y file=ABC.DMP log=e:\101\hello\2009oracle.log  ignore=y
    echo "ended imp......................" %date% %time%   >>  e:\101\hello\2009.log
      

  7.   

    这是我的原文件,请高人斧正:
    echo on
    cd e:\101
    echo "starting imp......................" %date% %time%   >>  e:\101\hello\2009.log
    //删除表空间的语句
    sqlplus system/tiger@ora  @deleteSql.sql   >>  e:\101\hello\2009.log
    cd e:\oracleData//删除数据文件,担心一次删除不了,所有删除两次.
    del MIS.DBF /f /a 
    ping /n 30 127.0.0.1
    del MIS.DBF /f /a cd e:\101
    //创建表空间的语句
    sqlplus system/tiger@ora  @createSql.sql   >>  e:\101\hello\2009.log
    //导入数据
    imp system/tiger@ora  buffer=40960000 full=y file=ABC.DMP log=e:\101\hello\2009oracle.log  ignore=y
    echo "ended imp......................" %date% %time%   >>  e:\101\hello\2009.log
      

  8.   

    del MIS.DBF这个命令是执行失败的.失败原因是"另一个进程正在使用此文件",
    这个批处理并不是每次都失败,有的时候可以执行正确.但只要是没有删除MIS.DBF文件的时候,我手工删除,都会报"另一个进程正在使用此文件".我只能使用unlocker工具进行删除.
      

  9.   

    建议LZ把表空间设置成 omf管理方式,
    那么下次删除表空间,oracle 将自动删除它下面的datafile了.
      

  10.   

    问题解决了,我采用鼠标录制的功能.
    del MIS.DBF /f /a 这句无法删除掉MIS.DBF 的时候,那么自动运行鼠标录制脚本,调用强制删除软件unlocker,把MIS.DBF 删除.