早上在上班的路上接到报警短信,报警一个库的归档有问题。
alert.log文件内容如下:
Wed Jul 25 06:00:02 2012
Errors in file /Oracle/app/oracle/admin/skate/bdump/skate_arc0_3618.trc:
ora-19510: failed to set size of 84875 blocks for file "/oracle/oradata/skate/archive/1_59432_713742632.dbf" (blocksize=512)
ora-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9
Wed Jul 25 06:00:02 2012
Errors in file /oracle/app/oracle/admin/skate/bdump/skate_arc0_3618.trc:
ora-19510: failed to set size of 84875 blocks for file "/oracle/oradata/skate/archive/1_59432_713742632.dbf" (blocksize=512)
ora-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9
Wed Jul 25 06:00:02 2012
ARC0: Error 19510 Closing archive log file '/oracle/oradata/skate/archive/1_59432_713742632.dbf'
ARCH: Archival stopped, error occurred. Will continue retrying
Wed Jul 25 06:00:02 2012
ORACLE Instance skate - Archival Error
Wed Jul 25 06:00:02 2012
ora-16038: log 1 sequence# 59432 cannot be archived
ora-19510: failed to set size of blocks for file "" (blocksize=)
ora-00312: online log 1 thread 1: '/oracle/oradata/skate/redo01.log'
Wed Jul 25 06:00:02 2012
Errors in file /oracle/app/oracle/admin/skate/bdump/skate_arc0_3618.trc:
ora-16038: log 1 sequence# 59432 cannot be archived
ora-19510: failed to set size of blocks for file "" (blocksize=)
ora-00312: online log 1 thread 1: '/oracle/oradata/skate/redo01.log
.......
从错误log分析,
ARC0: Error 19510 Closing archive log file '/oracle/oradata/skate/archive/1_59432_713742632.dbf'
ARCH: Archival stopped, error occurred. Will continue retrying
关闭归档日志文件时异常,错误的原因是不能获得文件句柄,在os层提示没有这个文件
ora-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
为什么会没有归档文件了呢?谁删除了?大早晨的,大家还都没到公司,谁会删除归档文件呢?想到可能是定时任务删除归档,于是查找定时任务,发现有个每小时删除所有归档的任务,这说明oracle在操作完归档准备close的时候,发现归档文件被定时任务给删除了,所以就报如上的错误了。这个定时任务的逻辑有问题,于是我调整为,每次删除2小时以前的归档。
----end----
更多Oracle相关信息见 专题页面