9 Replies Latest reply: Feb 12, 2013 4:34 AM by mseberg RSS

    RMAN-06169: could not read file header for datafile 4 error reason 1

    844001
      Dear All,

      I am configuring RMAN on one of our production databases.
      I configured RMAN successfully without any errors. After that I gave "backup database" command.
      Given following error.

      RMAN> backup database;

      Starting backup at 02-FEB-13
      allocated channel: ORA_DISK_1
      channel ORA_DISK_1: SID=269 device type=DISK
      RMAN-06169: could not read file header for datafile 4 error reason 1
      RMAN-06169: could not read file header for datafile 4 error reason 1
      RMAN-00571: ===========================================================
      RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
      RMAN-00571: ===========================================================
      RMAN-03002: failure of backup command at 02/02/2013 07:37:03
      RMAN-06056: could not access datafile 4


      Please help someone to resolve this issue.
        • 1. Re: RMAN-06169: could not read file header for datafile 4 error reason 1
          stefan nebesnak
          The specified datafile could not be accessed.
          DB**** wrote:
          RMAN-06169: could not read file header for datafile 4 error reason 1
          The reason code 1 is:
          1 - "filename is MISSINGxx in the control file"
          ...
          2 - file is offline
          3 - file is not verified
          4 - DBWR could not find the file
          5 - unable to open file
          6 - I/O error during read
          7 - file header is corrupt
          8 - file is not a datafile
          9 - file does not belong to this database
          10 - file number is incorrect
          12 - wrong file version
          15 - control file is not current.


          See this thread
          rman filename for datafile is missing in the control file
          • 2. Re: RMAN-06169: could not read file header for datafile 4 error reason 1
            brunors
            You can run a DBVERIFY to check this datafile. After that, you can to check his file system if is not 100% used.

            Kind regards, Bruno Reis.
            www.brunors.com
            • 3. Re: RMAN-06169: could not read file header for datafile 4 error reason 1
              TSharma-Oracle
              This could happen if you filesystem backup is going at the same time. RMAN was unable to read the datafile header as the operating system was doing a file system backup of the file at the same time. The filesystem-backup was locking the file.
              Check if this the case.
              • 4. Re: RMAN-06169: could not read file header for datafile 4 error reason 1
                844001
                I got following output:

                SQL> select TS#,name,BLOCK_SIZE,BLOCKS from v$datafile order by TS#;

                TS# NAME BLOCK_SIZE BLOCKS
                ---------- -------------------------------------------------- ---------- ----------
                0 /u01/app/oracle/oradata/EGXPROD1/system01.dbf 8192 267520
                1 /u01/app/oracle/oradata/EGXPROD1/sysaux01.dbf 8192 121600
                2 /u01/app/oracle/oradata/EGXPROD1/undotbs01.dbf 8192 23680
                *4 /u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004 8192 0*
                4 /u01/app/oracle/oradata/EGXPROD1/users01.dbf 8192 12800



                I try to reaname this MISSING00004 datafile and got following error:


                SQL> alter database rename file '/u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004' to '/u01/app/oracle/oradata/EGXPROD1/users02.dbf';
                alter database rename file '/u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004' to '/u01/app/oracle/oradata/EGXPROD1/users02.dbf'
                *
                ERROR at line 1:
                ORA-01511: error in renaming log/data files
                ORA-01141: error renaming data file 4 - new file '/u01/app/oracle/oradata/EGXPROD1/users02.dbf' not found
                ORA-01111: name for data file 4 is unknown - rename to correct file
                ORA-01110: data file 4: '/u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004'
                ORA-27037: unable to obtain file status
                Linux-x86_64 Error: 2: No such file or directory
                Additional information: 3


                Please help me to resolve this as this is critical issue to resolve in production DB.
                • 5. Re: RMAN-06169: could not read file header for datafile 4 error reason 1
                  844001
                  I got following output:

                  SQL> select TS#,name,BLOCK_SIZE,BLOCKS from v$datafile order by TS#;

                  TS# NAME BLOCK_SIZE BLOCKS
                  ---------- -------------------------------------------------- ---------- ----------
                  0 /u01/app/oracle/oradata/EGXPROD1/system01.dbf 8192 267520
                  1 /u01/app/oracle/oradata/EGXPROD1/sysaux01.dbf 8192 121600
                  2 /u01/app/oracle/oradata/EGXPROD1/undotbs01.dbf 8192 23680
                  *4 /u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004 8192 0*
                  4 /u01/app/oracle/oradata/EGXPROD1/users01.dbf 8192 12800



                  I try to reaname this MISSING00004 datafile and got following error:


                  SQL> alter database rename file '/u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004' to '/u01/app/oracle/oradata/EGXPROD1/users02.dbf';
                  alter database rename file '/u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004' to '/u01/app/oracle/oradata/EGXPROD1/users02.dbf'
                  *
                  ERROR at line 1:
                  ORA-01511: error in renaming log/data files
                  ORA-01141: error renaming data file 4 - new file '/u01/app/oracle/oradata/EGXPROD1/users02.dbf' not found
                  ORA-01111: name for data file 4 is unknown - rename to correct file
                  ORA-01110: data file 4: '/u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004'
                  ORA-27037: unable to obtain file status
                  Linux-x86_64 Error: 2: No such file or directory
                  Additional information: 3


                  Please help me to resolve this as this is critical issue to resolve in production DB.
                  • 6. Re: RMAN-06169: could not read file header for datafile 4 error reason 1
                    Mihael
                    SQL> alter database rename file '/u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004' to '/u01/app/oracle/oradata/EGXPROD1/users02.dbf';
                    alter database rename file '/u01/app/oracle/product/11.2.0/db_1/dbs/MISSING00004' to '/u01/app/oracle/oradata/EGXPROD1/users02.dbf'
                    *
                    ERROR at line 1:
                    ORA-01511: error in renaming log/data files
                    ORA-01141: error renaming data file 4 - new file '/u01/app/oracle/oradata/EGXPROD1/users02.dbf' not found
                    check that file /u01/app/oracle/oradata/EGXPROD1/users02.dbf exists
                    • 7. Re: RMAN-06169: could not read file header for datafile 4 error reason 1
                      844001
                      Thank you for reply Mihael

                      No that data file does not exists in that path
                      • 8. Re: RMAN-06169: could not read file header for datafile 4 error reason 1
                        Mihael
                        If the file is lost, restore it from backup. What happend to that file?
                        • 9. Re: RMAN-06169: could not read file header for datafile 4 error reason 1
                          mseberg
                          Hello;

                          Consider that the file "/u01/app/oracle/oradata/EGXPROD1/users01.dbf " might still be there before you do anything else.

                          It could have been rename at the OS level or moved at the OS level.

                          Generally "users01.dbf" is not very big. It worth checking for it before you try a restore etc. Search for *.dbf or users01* etc.

                          If you find it you should be able to

                          ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/EGXPROD1/users01.dbf' offline;

                          and then rename at the OS followed by an

                          ALTER DATABASE RENAME FILE

                          You may find nothing, but its probably worth a few minutes.

                          http://docs.oracle.com/cd/B19306_01/backup.102/b14191/osrecov.htm#i1011202

                          Best Regards

                          mseberg