Troubleshooting ORA-01111, ORA-01110, and ORA-01157 Errors in Oracle Standby Database
Error Description:
During the recovery process on the standby database, you encounter errors
such as:
- ORA-01111: Name for data
file is unknown.
- ORA-01110: Data file is
missing.
- ORA-01157: Cannot
identify/lock data file.
These errors typically occur when a data file is created as
"UNNAMED" in the $ORACLE_HOME/dbs directory, causing the Managed
Recovery Process (MRP) to fail.
Error Log:
ORA-01111: name for data file 30 is unknown - rename to correct file
ORA-01110: data file 30: '/home/app/product/11.2.0/db_1/dbs/UNNAMED00030'
ORA-01157: cannot identify/lock data file 30 - see DBWR trace file
ORA-01111: name for data file 30 is unknown - rename to correct file
ORA-01110: data file 30: '/home/app/product/11.2.0/db_1/dbs/UNNAMED00030'
Completed standby crash recovery.
Reason:
The issue arises because the MRP process, while applying archives,
creates an unnamed file in the $ORACLE_HOME/dbs directory.
Solution:
Recreate the data file in the correct location on the standby database.
Steps to Resolve:
On Primary Database:
- Verify Data File Location:
SQL> SELECT file#, name FROM v$datafile WHERE file# = 30;
FILE# NAME
---------- --------------------------------------------------
30 /oradata/SANDY/DATAFILE/sandy_R_30.dbf
On Standby Database:
- Check Recovery Files:
SQL> SELECT * FROM v$recover_file WHERE error LIKE '%FILE%';
FILE# ONLINE ONLINE_ ERROR CHANGE# TIME CON_ID
---------- ------- -------
------------------------------ ---------- --------- ----------
30
ONLINE ONLINE FILE MISSING 0 0
- Identify Data File:
SQL> SELECT file#, name FROM v$datafile WHERE file# = 30;
FILE# NAME
----------
-------------------------------------------------------
30
/home/app/product/11.2.0/db_1/dbs/UNNAMED00030
- Check Standby File Management:
SQL> SHOW PARAMETER standby_file_management;
NAME TYPE VALUE
------------------------------------
----------- ------------------------------
standby_file_management string AUTO
- Set Standby File Management to Manual:
SQL> ALTER SYSTEM SET standby_file_management=MANUAL SCOPE=BOTH;
System altered.
- Create the Data File in Correct Location:
SQL> ALTER DATABASE CREATE DATAFILE '/home/app/product/11.2.0/db_1/dbs/UNNAMED00030' AS '/oradata/SANDY/DATAFILE/sandy_R_30.dbf';
Database altered.
- Set Standby File Management Back to Auto:
SQL> ALTER SYSTEM SET standby_file_management=AUTO SCOPE=BOTH;
System altered.
- Verify Recovery Files:
SQL> SELECT * FROM v$recover_file WHERE error LIKE '%FILE%';
no rows selected
- Verify Data Files:
SQL> SELECT name FROM v$datafile;
NAME
--------------------------------------------------------------------------------
/oradata/SANDY/DATAFILE/sandy_R-SYSTEM_-1
/oradata/SANDY/DATAFILE/sandy_R-SYSAUX_-2
/oradata/SANDY/DATAFILE/sandy_R-UNDOTBS1_-3
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-4
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-5
/oradata/SANDY/DATAFILE/sandy_R-NOLOGGING_TS_-6
/oradata/SANDY/DATAFILE/sandy_R-OMS_ARCHIVES_-7
/oradata/SANDY/DATAFILE/sandy_R-RMANDB_TS_-8
/oradata/SANDY/DATAFILE/sandy_R-MUBASHER_AUDIT_TS_-9
/oradata/SANDY/DATAFILE/sandy_R-MUBASHER_MIS_TS_-10
/oradata/SANDY/DATAFILE/sandy_R-PROFILE_MANAGER_TS_-11
NAME
--------------------------------------------------------------------------------
/oradata/SANDY/DATAFILE/sandy_R-PERFSTAT_TS_-12
/oradata/SANDY/DATAFILE/sandy_R-RMAN_TS_-13
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-14
/oradata/SANDY/DATAFILE/sandy_R-USERS1_-15
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-16
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-17
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-18
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-19
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-20
/oradata/SANDY/DATAFILE/sandy_R-SYSTEM_-21
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-22
NAME
--------------------------------------------------------------------------------
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-23
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-24
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-25
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-26
/oradata/SANDY/DATAFILE/sandy_R-SYSTEM_-27
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-28
/oradata/SANDY/DATAFILE/sandy_R-SYSTEM_-28
/oradata/SANDY/DATAFILE/sandy_R-sandy_TS-30
30 rows selected.
By following these steps, you should resolve the ORA-01111, ORA-01110,
and ORA-01157 errors and ensure that the MRP process completes successfully.
Comments