用DROP TABLESPACE MIS INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS 表空间删除了,怎么数据文件有时删不了;
并且我在批处理命令里,也写了del MIS.DBF,但没有用,还是删除不了.报"另一个进程正在使用此文件".
由于我要完全delete tablespace , 然后imp xxxxxxx full=y,而且是每天定时的!
OS:WINDOWS server2003
ORACLE:10G
并且我在批处理命令里,也写了del MIS.DBF,但没有用,还是删除不了.报"另一个进程正在使用此文件".
由于我要完全delete tablespace , 然后imp xxxxxxx full=y,而且是每天定时的!
OS:WINDOWS server2003
ORACLE:10G
DROP TABLESPACE MIS INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS
都删不了,那一定是有某个oracle之外的进程正使用该文件
找到该进程,查明原因再处理
我查看日志,这个命令是执行成功的.
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
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
这个批处理并不是每次都失败,有的时候可以执行正确.但只要是没有删除MIS.DBF文件的时候,我手工删除,都会报"另一个进程正在使用此文件".我只能使用unlocker工具进行删除.
那么下次删除表空间,oracle 将自动删除它下面的datafile了.
del MIS.DBF /f /a 这句无法删除掉MIS.DBF 的时候,那么自动运行鼠标录制脚本,调用强制删除软件unlocker,把MIS.DBF 删除.