Dataguard missing archivelog

Below you can find one of the available solutions that can be applied to solve this issue:

PRI
select max(sequence#) from v$archived_log where applied='YES';

STBY
select max(sequence#) from v$archived_log where applied='YES';
SQL> select * from v$archive_gap;

   THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
         1          285           285

RMAN> list ARCHIVELOG FROM SEQUENCE 286 until SEQUENCE 285;

select name from v$archived_log where SEQUENCE#<=198895;

using target database control file instead of recovery catalog
specification does not match any archived log in the repository

RMAN> exit

PRI
RMAN>  list ARCHIVELOG FROM SEQUENCE 6299 until SEQUENCE 6300;

using target database control file instead of recovery catalog
List of Archived Log Copies for database with db_unique_name PRY
=====================================================================

Key     Thrd Seq     S Low Time 
------- ---- ------- - ---------
10474   1    6299    A 12-DEC-13
        Name: /u30/oradata/PRY/arch/1_6299_801284807.dbf

10472   1    6300    A 12-DEC-13
        Name: /u30/oradata/PRY/arch/1_6300_801284807.dbf


RMAN> exit


Recovery Manager complete.

scp the archivelogs to STBY (register them if it doesn”t take it)

# One way of registering a logfile is via the following:

SQL> alter database register logfile '/var/arch/arch_1_101.arc';

# So this is a straightforward way of registering a logfile giving the full path to the logfile. However, what if you have a very large number of logfiles to register, the above does not really scale all that well. Thankfully there is an rman command that enables you to register all logfiles within a directory:

rman> catalog start with ‘/var/arch’;

Leave Comment

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