:

File Added to Control File as ‘UNNAMED’ Because it was Created Under Name Already Used in this Database

Platform: Windows server 2003, SP2
Oracle: 10.2.0.4, patchset 3 (base release)

The Problem

You have a primary database and a physical standby database which has the standby_file_management parameter set to AUTO. You have been adding files to your primary database, and are expecting them to be added to the physical standby database automatically. Unfortunately, you notice that on the physical standby database you are receiving errors similar to the following in the alert log and the apply processes are not running:

   File #439 added to control file as 'UNNAMED00439' because it was created under name already used in this database.
   Creation name: 'D:\ORADATA\DATA_01\TABLES_X4M53.DBF'

   Mon Apr 22 17:00:44 2013
   Errors with log T:\LOGS\LOG_109301_558022450_1.ARC
   MRP0: Background Media Recovery terminated with error 1537

   Mon Apr 22 17:00:44 2013
   Errors in file r:\oracle\admin\bdump\mrp0_3156.trc:
   ORA-01537: Message 1537 not found; No message file for product=RDBMS, facility=ORA; arguments:
   [D:\DATA_01\TABLES_X4M53.DBF]
   Some recovered datafiles maybe left media fuzzy
   Media recovery may continue but open resetlogs may fail

   Mon Apr 22 17:00:48 2013
   Errors in file r:\oracle\admin\bdump\mrp0_3156.trc:
   ORA-01537: Message 1537 not found; No message file for product=RDBMS, facility=ORA; arguments:
   [D:\DATA_01\TABLES_X4M53.DBF]

The Cause

There could be many reasons why you have received this error. The cause in my case was because of multiple folders on the primary DB but only one folder location on the standby DB, which mean that when someone added another datafile to PROD with the same name as one that already existed (but the full path was different because of the different folder locations on PROD) it couldn’t be added to the standby DB.

The Solution

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Check that the location of the file on the primary DB is also accessible at the standby location. For example, the folder structure must be the same so if you are putting a file into the D:\ORADATA\DATA_01\ folder on the primary that folder must also be present on the standby database. If it’s not, it will fail when attempting to add the file to the standby DB.

In my case, this is what happened. We didn’t have the same directory structure on the standby as on the primary DB. To rectify this you can either add the appropriate folder or you can use the db_file_name_convert parameter.

The db_file_name_convert parameter is used to translate one file path to another. For example, you can tell the standby DB to change the file path to a different location to that of the primary database. Here is an example of how you may set the parameter:

ALTER SYSTEM SET db_file_name_convert='D:\DATA_01','R:\DATA_01' SCOPE=SPFILE;

This will result in any part of the data file name that has D:\DATA_01 in it being changed to R:\DATA_01. You can set multiple pairs of these parameters so if you have many locations for your datafiles it’s not a problem.

Once set you should be able to recover the standby database again:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Like it, share it...

Category: Data Guard


Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *