7 x 24 在线支持!
Oracle 由于数据库无法写入控制文件生成ORA-00221 和OSD-04008
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
诗檀软件专业数据库修复团队
服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com
适用于:
Oracle Database – Enterprise Edition – 版本 9.2.0.7 及以上
Microsoft Windows x64 (64-bit)
所有平台
OSD-04008 暗示了OS 特定的问题。首先要调查的是以下是否存在:
1- 在该机器运行的病毒检查。病毒检查会在扫描文件时锁定它们。如果是这样的情况,配置防病毒软件不扫描数据库文件。
2- 备份数据库文件夹的操作系统备份软件。一些客户在晚上使用远程服务器的备份软件来备份所有服务器。如果是这样的情况,禁用它或重新配置它来排除Oracle数据库文件夹。
症状
在同一台机器上运行的三个不同的数据库实例大约在同一时间挂起。在alert.log文件中报告以下错误:
One instance reported
ORA-01186: file 22 failed verification tests
ORA-01122: database file 22 failed verification check
ORA-01110: data file 22: ‘D:\ORADATA\BUSDATDV\UNDO01_01.DBF’
ORA-01208: data file is an old version – not accessing current version
Another instance reported:
ORA-00221: error on write to controlfile
ORA-00206: error in writing (block 3, # blocks 1) of controlfile
ORA-00202: controlfile: ‘C:\ORACLE\ORADATA\MAPDATDV\CONTROL02.CTL’
ORA-27072: skgfdisp: I/O error
OSD-04008: WriteFile() failure, unable to write to file
O/S-Error: (OS 33) The process cannot access the file because another process has locked a portion of the file.
请注意报告的文件名和类型可能不同。一个实例报告一个undo文件,其他报告无法访问控制但??
更改
在数据库环境无更改
无upgrades/patches
无patches
无操作系统patches
原因
一个操作系统备份工具被计划在管理数据库实例的机器上运行。 当该工具在晚上启动时,它将锁定在备份中的数据库文件,防止数据库在备份时写入控制/undo/数据文件。
解决方案
要解决错误和挂起的数据库,等到备份进程完成且锁被释放,然后执行以下:
sqlplus> shutdown abort;
sqlplus>startup nomount;
sqlplus>alter database mount;
sqlplus>alter database recover;
sqlplus> alter database open;
解决由host备份进程原因的锁的方案:
1-大多数备份软件有一个选项,允许将文件“热”或“共享”备份。查看host备份工具文档对其进行配置,以避免在备份过程中锁定数据库文件或排除数据库目录下的文件。
2- 如果你的工具没有这个选项,那么你需要找到备份数据库的替代方法。你可以选择关闭数据库,进行主机备份,之后再次启动。
3- 另一种方法是使用RMAN创建磁盘备份,然后复制备份到磁带上。更好的是,你可以直接使用RMAN到磁带。
参考
NOTE:471280.1 – ORA-1242, ORA-1122, ORA-1110 & ORA-1208 Errors Occurring Intermittently