重庆思庄Oracle、Redhat认证学习论坛
标题:
WINDOWS上删除数据文件报:ORA-01265,ORA-27056,OSD-04024,O/S-Error: (OS 32)
[打印本页]
作者:
郑全
时间:
2020-3-6 16:41
标题:
WINDOWS上删除数据文件报:ORA-01265,ORA-27056,OSD-04024,O/S-Error: (OS 32)
本帖最后由 郑全 于 2020-3-6 16:45 编辑
环境:
os:windows 10
db:12.1.0.2
模拟操作
1.创建一个测试表空间
SQL> create tablespace tsp_test datafile 'd:\oracle\oradata\orcl\tsp_test01.dbf' size 10m reuse;
2.创建一测试表
打开一窗口:
SQL> conn hr/hr
已连接。
SQL> create table test tablespace tsp_test as select * from all_tables;
表已创建。
SQL> update test set table_name='test' || 'yfc' where rownum<10;
已更新 9 行。
SQL> commit;
提交完成。
注意:该窗口不退出
3.另外开一个窗口
SQL> drop tablespace tsp_test including contents and datafiles;
表空间已删除。
查看日志:
--报警日志:
2020-03-06 15:44:27.427000 +08:00
drop tablespace tsp_test including contents and datafiles
2020-03-06 15:44:29.909000 +08:00
WARNING: Cannot delete file D:\ORACLE\ORADATA\ORCL\TSP_TEST01.DBF
Errors in file D:\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_ora_1780.trc:
ORA-01265: 鏃犳硶鍒犻櫎 DATA D:\ORACLE\ORADATA\ORCL\TSP_TEST01.DBF
ORA-27056: 鏃犳硶鍒犻櫎鏂囦欢
OSD-04024: 无法删除文件。
O/S-Error: (OS 32) 另一个程序正在使用此文件,进程无法访问。
Completed: drop tablespace tsp_test including contents and datafiles
4.检查操作系统
登录/注册后可看大图
发现该文件还在。
5.已经存在这种情况下,立马去操作系统上进行删除,也会报同样的错
但如果在原窗口进行 ALTER SYSTEM CHECKPOINT后,也可以立即进行操作系统上的删除。
说明数据写出到磁盘后,该进程不会在占用该文件,
如此,过一段时间,不需要重启系统,就可以在操作系统上删除这些文件。
另:
当然,如果我们在删除之前,执行
把脏数据写回磁盘,又不会有这个问题:
alter system checkpoint;
alter system flush buffer_cache;
再去删除,不再遇到这个问题,
但生产中,可能问题更复杂
参考:
Drop Tablespace Including Contents And Datafiles The Datafiles Are Not Automatically Deleted (Doc ID 389467.1)
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2