ORA-01291: missing logfile when Flashing Back a Failed Primary DB into a Logical Standby DB

  • From: Murtuja Khokhar <murtuja_oracle@xxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Tue, 14 Sep 2010 18:57:37 +0530 (IST)

Hi ,

I am getting ORA-01291: missing logfile error when Flashing Back a failed 
Primary DB into logical standby.
 
I am performing successful failover. but after failover, for rebuilding primary 
database,I am using flashback database. 


Os info:        Solaris 10 
Oracle info:   Oracle 10.2.0.4.0 Enterprise Edition 
Error info:      ORA-01291: missing logfile 
 
We are following Below procedure for failover and flashback in logical standby. 
Primary and standby database name is as below. 
primary db_name primdb 
standby db_name logicdb 
********************* 
failover 
******************** 

 From primdb:
shut abort
From logicdb:
select applied_scn,newest_scn from dba_logstdby_progress;
alter database stop logical standby apply;
alter database activate logical standby database;

*********************************************************** 
Flashing Back a Failed Primary Database into a Logical Standby Database 
*********************************************************** 
We are following instructions from below link. 
http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/scenarios.htm#i1050060
 

 SYS@logicdb> SELECT APPLIED_SCN AS FLASHBACK_SCN FROM V$LOGSTDBY_PROGRESS;
FLASHBACK_SCN
-------------
       302330
1 row selected.

SYS@logicdb> SELECT file_NAME FROM DBA_LOGSTDBY_LOG WHERE NEXT_CHANGE# > 
(SELECT 
VALUE FROM DBA_LOGSTDBY_PARAMETERS
  WHERE NAME = 'STANDBY_BECAME_PRIMARY_SCN') AND FIRST_CHANGE#<=302330;
FILE_NAME
----------------------------------------------------------------------------------------------------

/logs/app/oracle/flash_recovery_area/LOGICDB/archivelog2/logicdb_1_12_729695607.arc

Note: We have copied above mentioned file to primary archive destination i.e. 
/logs/app/oracle/flash_recovery_area/PRIMDB/archivelog.
SYS@primdb> startup mount
ORACLE instance started.
Total System Global Area 1073741824 bytes
Fixed Size                  2046056 bytes
Variable Size             264243096 bytes
Database Buffers          801112064 bytes
Redo Buffers                6340608 bytes
Database mounted.
SYS@primdb> FLASHBACK DATABASE TO SCN 302330;
Flashback complete.
SYS@primdb> ALTER DATABASE OPEN RESETLOGS;
Database altered.
SYS@primdb> ALTER DATABASE START LOGICAL STANDBY APPLY NEW PRIMARY logicdb;
Database altered.
SYS@primdb> select type,high_scn,status from v$logstdby;
TYPE                             HIGH_SCN
------------------------------ ----------
STATUS
----------------------------------------------------------------------------------------------------

COORDINATOR
ORA-01291: missing logfile
Primary database init.ora parameters are as below  
*.db_file_name_convert=('/export/oracle/oradata/primdb/','/export/oracle/oradata/logicdb/')

*.db_name='primdb'
*.instance_name=primdb
*.db_unique_name=primdb
*.service_names=primdb
*.db_recovery_file_dest='/logs/app/oracle/flash_recovery_area'
*.fal_client='LOGICDB'
*.fal_server='PRIMDB'
*.log_archive_dest_1='LOCATION=/logs/app/oracle/flash_recovery_area/PRIMDB/archivelog/
 VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primdb'
*.log_archive_dest_2='SERVICE=logicdb LGWR ASYNC 
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=logicdb'
*.log_archive_dest_3='LOCATION=/logs/app/oracle/flash_recovery_area/PRIMDB/archivelog2/
 VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLES) DB_UNIQUE_NAME=primdb'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_dest_state_3='DEFER'
*.log_archive_format='primdb_%t_%s_%r.arc'
*.log_archive_max_processes=4
*.log_file_name_convert=('/export/oracle/oradata/primdb/','/export/oracle/oradata/logicdb/')

*.standby_file_management='AUTO'
*.log_archive_config='dg_config=(primdb,logicdb)'
Standby database init.ora parameters are as below  
*.db_file_name_convert=('/export/oracle/oradata/primdb/','/export/oracle/oradata/logicdb/')

*.db_name='logicdb'
*.instance_name=logicdb
*.db_unique_name=logicdb
*.service_names=logicdb
*.db_recovery_file_dest='/logs/app/oracle/flash_recovery_area'
*.fal_client='LOGICDB'
*.fal_server='PRIMDB'
*.log_archive_dest_1='LOCATION=/logs/app/oracle/flash_recovery_area/LOGICDB/archivelog/
 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=logicdb'
*.log_archive_dest_2='SERVICE=primdb LGWR ASYNC 
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primdb'
*.log_archive_dest_3='LOCATION=/logs/app/oracle/flash_recovery_area/LOGICDB/archivelog2/
 VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLES) DB_UNIQUE_NAME=logicdb'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='DEFER'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='logicdb_%t_%s_%r.arc'
*.log_archive_max_processes=4
*.log_file_name_convert=('/export/oracle/oradata/primdb/','/export/oracle/oradata/logicdb/')

*.log_archive_config='dg_config=(primdb,logicdb)'

Other related posts:

  • » ORA-01291: missing logfile when Flashing Back a Failed Primary DB into a Logical Standby DB - Murtuja Khokhar