I got ” ORA-27037: unable to obtain file status ” error in Oracle database.
ORA-27037: unable to obtain file status
Details of error are as follows.
ORA-27037: unable to obtain file status Cause: Stat system call returned an error. Additional information indicates which function encountered the error. Action: Examine errno.
unable to obtain file status
This ORA-27037 error is related with the Stat system call returned an error. Additional information indicates which function encountered the error.
Run the following command to solve the problem.
RMAN> crosscheck archivelog all; RMAN> delete expired archivelog all;
RMAN> resync catalog;
Another case is as follows.
Errors in file /oracle/CMP/saptrace/usertrace/cmp_ora_2011164.trc: ORA-00308: cannot open archived log '/oracle/CMP/oraarch/CMParch1_77453_511022248.dbf' ORA-27037: unable to obtain file status
There was a structure validation check running (analyze table validate structure) during the time when those errors appeared.
The file mentioned in the error message was saved hours earlier and moved to a tape. The generated trace file cmp_ora_2011164.trc contains dumps of log/archive log files:
DUMP OF REDO FROM FILE '/oracle/CMP/origlogA/log_g15m1.dbf' Opcodes *.* DBAs (file#, block#): (1, 34315) RBAs: 0x000000.00000000.0000 thru 0xffffffff.ffffffff.ffff SCNs: scn: 0x0000.00000000 thru scn: 0xffff.ffffffff Times: creation thru eternity FILE HEADER: ................. DUMP OF REDO FROM FILE '/oracle/CMP/oraarch/CMParch1_77454_511022248.dbf' Opcodes *.* DBAs (file#, block#): (1, 34315) RBAs: 0x000000.00000000.0000 thru 0xffffffff.ffffffff.ffff SCNs: scn: 0x0000.00000000 thru scn: 0xffff.ffffffff Times: creation thru eternity ........................ .......... Dumping redo log for archive log /oracle/CMP/oraarch/CMParch1_77453_511022248.dbf Error 308 occurred while dumping log ORA-00308: cannot open archived log '/oracle/CMP/oraarch/CMParch1_77453_511022248.dbf' ORA-27037: unable to obtain file status IBM AIX RISC System/6000 Error: 2: No such file or directory Additional information: 3
There was a logical corruption between a table/index detected by the analyze. The analyze was getting the RDBA (Relative Data Block Address) from the affected blocks and looking for changes on it in the redo logs, that is why the database was dumping the logs/archive logs one by one. This can be seen in the generated trace file cmp_ora_2011164.trc which shows:
row not found in index tsn: 0 rdba: 0x00408618 ...... ................ kdgDump: tsn=0 tabn=0 Current Row Piece: rdba=0x0040860b slot=57 Head Row Piece: rdba=0x0040860b slot=57 kdgDumpRedo: dump redo on table/index mismatch: table block tsn=0 rdba=0x0040860b index objn=125562 head rowid 0x0040860b.0039
So, when the database is checking the dump file ‘/oracle/CMP/oraarch/CMParch1_77453_511022248.dbf’ (which was moved to a tape), it did not find it. So, it raised the errors ORA-00308 And ORA-27037.
There is nothing to be done as it was normal to get the errors ORA-00308 And ORA-27037.
Do you want to learn Oracle Database for Beginners, then read the following articles.
Oracle Tutorial | Oracle Database Tutorials for Beginners ( Junior Oracle DBA )