- Kiran Dalvi
- 06 Dec, 2023
- 0 Comments
- 1 Min Read
MRP0: Background Media Recovery Terminated With Error 1274
Problem :Â
Media Recovery Log /data/app/prod/arch/1_68815_799031040.arch
File #382 added to control file as ‘UNNAMED00382’ because
the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL
The file should be manually created to continue.
Errors with log /data/app/prod/arch/1_68815_799031040.arch
MRP0: Background Media Recovery terminated with error 1274
Errors in file /apps/oracle/admin/prod/diag/rdbms/prodstby/prod/trace/prod_pr00_19983.trc:
Solution :
We got this issue because standby_file_management parameter is set to MANUAL in standby database. It means that whatever datafiles we add in primary, those files won’t be replicated in standby. We need to add them manually. So when we added the file in primary, that file was not getting recognized by standby and created as unnamed file.SQL> show parameter standby NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ standby_archive_dest string ?/dbs/arch standby_file_management string MANUAL
Follow the below Steps to fix this issue :
Cancel the recovery:SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; Database altered.
[STANDBY]Find the unnamed file in standby.
As per the alert log, the problem is with FILE#382
SQL> select file#,name from v$datafile where name like '%UNNAMED%'; FILE# ---------- NAME -------------------------------------------------------------------------------- 382 /apps/oracle/product/11.2.0.2.2013Q4/dbs/UNNAMED00382
[PRIMARY]Check the actual file_name for FILE#382 in PRIMARY.
SQL> select name from v$datafile where file#382; NAME -------------------------------------------------------------------------------- /uv1019/u340/app/prod/oradata/prodmsc20.tbl
[STANDBY]Recreate the unnamed datafile in standby to give it same name as that of primary.
SQL> alter database create datafile '/apps/oracle/product/11.2.0.2.2013Q4/dbs/UNNAMED00382' as '/uv1019/u340/app/prod/oradata/prodmsc20.tbl'; Database altered.
[STANDBY]Now change the file_management to AUTO in standby:
SQL>alter database set standby_file_management = 'auto'; scope=spfile;
SQL> shutdown immediate;
SQL> startup mount
[STANDBY]Start the recovery :
SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> select PROCESS,CLIENT_PROCESS,THREAD#,SEQUENCE#,BLOCK# from v$managed_standby where process = 'MRP0' or client_process='LGWR';
PROCESS CLIENT_P THREAD# SEQUENCE# BLOCK#
--------- -------- ---------- ---------- ----------
RFS LGWR 1 69136 610754
MRP0 N/A 1 68815 693166
SQL>alter database set standby_file_management = 'auto'; scope=spfile; SQL> shutdown immediate; SQL> startup mount
[STANDBY]Start the recovery :
SQL> alter database recover managed standby database disconnect from session; Database altered. SQL> select PROCESS,CLIENT_PROCESS,THREAD#,SEQUENCE#,BLOCK# from v$managed_standby where process = 'MRP0' or client_process='LGWR'; PROCESS CLIENT_P THREAD# SEQUENCE# BLOCK# --------- -------- ---------- ---------- ---------- RFS LGWR 1 69136 610754 MRP0 N/A 1 68815 693166