Monday, February 19, 2018

Archiver Process cache TNS Entries for Data Guard Broker

 When you setup Standby DB or Data Guard Broker, you may see this error
ORA-16737: the redo transport service for standby

Dataguard Broker trace logs shows
 ORA-12154: TNS:could not resolve the connect identifier specified
 ORA-16737: the redo transport service for standby database "testdg" has an error
2018-02-20 01:05:59.926 00001000    56049214 Operation HEALTH_CHECK canceled during phase 1, error = ORA-16778

However tnsping testdg is fine
sqlplus sys/***@testdg as sysdba    ---- is also fine

Actions:

  • Set dgmgrl tracelevel to support
  • Remove and Add DB into DG broker configuration with different connect identifiers(no luck)
  • Modify tnsnames.ora entry for scan and vip(no luck)
  • Stop and Start DG broker (no luck)
  • Modify log_archive_dest_3 not to use TNS. (no luck)
alter system set log_archive_dest_3='SERVICE="(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = test-adc-scan)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = WWWABCUDG.US.ORACLE.COM)))" ASYNC VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES ) DB_UNIQUE_NAME=WWWABCDG';

Reason:

 After trying all kinds of ways, we find it's related to archiver process which will not read the NEW entries from tnsnames.ora file. The new DB entries were unknown to archiver. That's why it keeps reporting  ORA-12154

Solution:

  •  Bounce the DB to refresh archiver processes which needs outages
  •  Kill the archiver processes one by one. Use "alter system switch logfile" to spawn them back
Above 2 methods to force archiver processes to read tnsnames.ora and refresh entries

 

 


No comments: