I have previously documented how to identify gaps in your standby database's log sequence.
See these posts:
After a successful rescue operation of my standby database, I had a 3-day lag behind the primary.
It's easy to identified these using the data guard broker command below:
show database "prod_stby" RecvQEntries
Output from this command was (abbreviated):
STANDBY_RECEIVE_QUEUE
STATUS RESETLOGS_ID THREAD LOG_SEQ TIME_GENERATED TIME_COMPLETED FIRST_CHANGE# NEXT_CHANGE# SIZE (KBs)
NOT_APPLIED 894886266 1 372460 01/28/2021 16:46:01 01/28/2021 16:47:35 6196037493227 6196037506094 20840
NOT_APPLIED 894886266 1 372462 01/28/2021 17:02:35 01/28/2021 18:31:30 6196037647447 6196038652945 1350187
NOT_APPLIED 894886266 1 372463 01/28/2021 18:31:30 01/28/2021 19:09:06 6196038652945 6196039875468 1051704
.
.
.
The logfiles were phyically present in the Flash Recovery Area:
cd /fra/PROD_STBY/archivelog
find . -name "*372108*"
./2021_01_25/o1_mf_1_372108_j0x8j1fc_.arc
There are two ways to inform the standby database about the presence of the logfile:
1. RMAN.
On the standby database:
rman target /
Verify that the standby database does not recognize the archivelog:
list archivelog sequence between 372106 and 372107;
using target database control file instead of recovery catalog
List of Archived Log Copies for database with db_unique_name PROD_STBY
=====================================================================
Key Thrd Seq S Low Time
------- ---- ------- - ---------
371883 1 372106 A 25-JAN-21
Name: /fra/PROD_STBY/archivelog/2021_01_25/o1_mf_1_372106_j0x6x0cj_.arc
The output above confirms that sequence 372106 exists, and that sequence 372107 does not.
To catalog the missing file:
RMAN> catalog start with '/fra/PROD_STBY/archivelog/2021_01_25/o1_mf_1_372107_j0x7k8lh_.arc';
using target database control file instead of recovery catalog
searching for all files that match the pattern /fra/PROD_STB//archivelog/2021_01_25/o1_mf_1_372107_j0x7k8lh_.arc
List of Files Unknown to the Database
=====================================
File Name: /fra/PROD_STB/archivelog/2021_01_25/o1_mf_1_372107_j0x7k8lh_.arc
Do you really want to catalog the above files (enter YES or NO)? YES
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /fra/PROD_STB/archivelog/2021_01_25/o1_mf_1_372107_j0x7k8lh_.arc
Confirm again, and you'll see that the new files is registered:
RMAN> list archivelog sequence between 372106 and 372107;
List of Archived Log Copies for database with db_unique_name PROD_STBY
=====================================================================
Key Thrd Seq S Low Time
------- ---- ------- - ---------
371883 1 372106 A 25-JAN-21
Name: /fra/PROD_STBY/archivelog/2021_01_25/o1_mf_1_372106_j0x6x0cj_.arc
371956 1 372107 A 25-JAN-21
Name: /fra/PROD_STBY/archivelog/2021_01_25/o1_mf_1_372107_j0x7k8lh_.arc
If the number of logfiles missing is large, use a shortcut to register them all:
RMAN> catalog start with '/fra/PROD_STBY/archivelog/2021_01_25';
The above command will register all logfiles in the directory /fra/PROD_STBY/archivelog/2021_01_25
2. sqlplus:
SQL> alter database register logfile '/fra/PROD_STBY/archivelog/2021_01_25/o1_mf_1_372107_j0x7k8lh_.arc';
If you tail the alert log of the database, you'll see that the standby database quickly picks up the missing logfiles.