Friday, September 20, 2013

ORA-00376: file 50 cannot be read at this time

No need to say anything but following is the error you may get and below is the way to solve it.
How and why this happens? In our case, whenever there is a SAN Scan occurs we see couple of datafiles getting corrupted here and there.

ORA-12801: error signaled in parallel query server P001, instance ndhdbp4 ay_p4 (2)
ORA-00376: file 50 cannot be read at this time
ORA-01110: data file 50: '/ora07/oradata/pay_p/payer_hosting_8k_16.dbf'
when trying to selete from table I_SUBSCRIPTION_SUMMARY


SQL> select file#, ts#, status from gv$datafile where status!='ONLINE';

     FILE#        TS# STATUS
---------- ---------- -------
         1          0 SYSTEM
        28          0 SYSTEM
        36          7 RECOVER
        50          6 RECOVER

SQL> select file_name, file_id from dba_data_files where file_id in (36,50);

FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID
----------
/ora19/oradata/pay_p/pcs_fs_data_8k_13.dbf
        36

/ora07/oradata/pay_p/payer_hosting_8k_16.dbf
        50


SQL> recover datafile '/ora19/oradata/pay_p/pcs_fs_data_8k_13.dbf';
Media recovery complete.
SQL> alter database datafile '/ora19/oradata/pay_p/pcs_fs_data_8k_13.dbf' online;

Database altered.

SQL> recover datafile '/ora07/oradata/pay_p/payer_hosting_8k_16.dbf';
Media recovery complete.
SQL> alter database datafile '/ora07/oradata/pay_p/payer_hosting_8k_16.dbf' online;

Database altered.

SQL>