FAL[client]: Error fetching gap sequence, no FAL server specified
In a physical dataguard standby database, we can see messages like fetching message error with gap sequence. These errors can sometimes be resolved automatically by fal_server parameter which will resync after a temporary network flap
Media Recovery Waiting for thread 1 sequence 345 branch(resetlogs_id) 1054563556
FAL[client]: Error fetching gap sequence, no FAL server specified
If the gap are not resolved automatically, then DBA intervention is required
- Check the fal parameters on both primary and standby databases
SQL> show parameter fal
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fal_client string
fal_server string
SQL> alter system set fal_client=orcl;
System altered.
SQL> alter system set fal_server=orcldgp;
System altered.
2) Automatic gap resolution can be detected sometimes in v$dataguard_status view
SQL> select message from v$dataguard_status;
Error 12154 received logging on to the standby
FAL[client, MRP0]: Error 12154 connecting to ORCL for fetching gap sequence
Fetching gap sequence in thread 1, gap sequence 1-1
3) Check the connectivity from primary database to standby with service name connection string using sysdba
[oracle@orcl ~]$ sqlplus test/password@orcldgp as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Mon Jun 21 17:30:53 2021
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options
SQL>
4) Check for all log archive destinations are enabled
SQL> select ''||name||' - '||VALUE||'' from v$parameter where name like '%log_archive_dest_state%' order by regexp_substr(name,'[[:digit::]]') asc fetch next 3 rows only;
''||NAME||'-'||VALUE||''
--------------------------------------------------------------------------------
log_archive_dest_state_1 - enable
log_archive_dest_state_3 - enable
log_archive_dest_state_2 - enable
5) Validate tns connectivity from primary
[oracle@orcl ~]$ tnsping orcldgp
TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 21-JUN-2021 17:58:39
Copyright (c) 1997, 2014, Oracle. All rights reserved.
Used parameter files:
/oracle/base/product/12.1.0/dbhome_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.123)(PORT = 1526)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcldgp)(UR = A)))
OK (10 msec)
Check for log_archive_config parameter set on both primary and standby
SQL> show parameter log_archive_config
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_config string DG_CONFIG=(ORCL,ORCLDG,ORCLDGP
)
Check for all log_archive_dest_n parameters and validate the sub parameters inside it
SQL> select ''||name||' - '||VALUE||'' from v$parameter where name like '%log_archive_dest_%' order by regexp_substr(name,'[[:digit::]]') asc fetch next 3 rows only;
''||NAME||'-'||VALUE||''
--------------------------------------------------------------------------------
log_archive_dest_1 - location=USE_DB_RECOVERY_FILE_DEST
log_archive_dest_3 - service=orcldgp async valid_for=(online_logfiles,primary_ro
le) db_unique_name=orcldgp
log_archive_dest_2 - service="orcldg", LGWR ASYNC delay=0 net_timeout=30 db_uniq
ue_name=orcldg valid_for=(online_logfile,primary_role)
Bounce MRP
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database recover managed standby database using current logfile disconnect;
Database altered.