7 Ekim 2015 Çarşamba

[EN] ORA-01111: name for data file n is unknown - rename to correct file

PROBLEM:

On one of our physical standby database, we noticed that media recovery was stooped.
When we try to start it again we got the following errors in altertlog;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION
Attempt to start background Managed Standby Recovery process (PRODSTB)
Fri Aug 17 09:11:05 2015
MRP0 started with pid=39, OS id=8061128
MRP0: Background Managed Standby Recovery process started (PRODSTB)
started logmerger process
Fri Aug 17 09:11:10 2015
Managed Standby Recovery starting Real Time Apply
MRP0: Background Media Recovery terminated with error 1111
Errors in file /u01/app/oracle/diag/rdbms/prodstb/PRODSTB/trace/PRODSTB_pr00_7985076.trc:
ORA-01111: name for data file 24 is unknown - rename to correct file
ORA-01110: data file 24: '/u01/app/oracle/product/11.2.0.4/db/dbs/UNNAMED00024'
ORA-01157: cannot identify/lock data file 24 - see DBWR trace file
ORA-01111: name for data file 24 is unknown - rename to correct file
ORA-01110: data file 24: '/u01/app/oracle/product/11.2.0.4/db/dbs/UNNAMED00024'
Managed Standby Recovery not using Real Time Apply
Recovery Slave PR00 previously exited with exception 1111
MRP0: Background Media Recovery process shutdown (PRODSTB)
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION




SOLUTION:

We find out that; on the physical standby database we forgot to set the parameter "db_file_name_convert", it was left as null. And also a day before one of our DBA add a new datafile on the primary database. So when the MRP process try to add this datafile with wrong "db_file_name_convert" parameter on the standby site, it terminated.

Here is the solution;

-- on the physical standby database;

startup nomount;

alter system set db_file_name_convert='+PRODDATA/prod','+PRODSTBDATA/prodstb' scope=spfile;

shu immediate;

startup nomount;

ALTER SYSTEM SET standby_file_management='manual' SCOPE=BOTH;

shu immediate;

startup mount;

alter database create datafile '/u01/app/oracle/product/11.2.0.4/db/dbs/UNNAMED00024' as '+PRODSTBDATA/prodstb/datafile/tbsxxx_001.dbf';

ALTER SYSTEM SET standby_file_management='auto' SCOPE=BOTH;

shu immediate;

startup mount;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;













Hiç yorum yok:

Yorum Gönder