In this Document
APPLIES TO:
Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.4 [Release 11.2]
Information in this document applies to any platform.
SYMPTOMS
Whenever a primary instance is started via srvctl, below error message written to the instance alert log
Wed Oct 29 14:42:16 2014
Error 12154 received logging on to the standby
PING[ARC2]: Heartbeat failed to connect to standby 'CLUSTER1'. Error is 12154.
CHANGES
Data guard environment
CAUSE
Possible causes:
1. The tnsnames.ora resides in a non-default location pointed to via the TNS_ADMIN environment variable. This variable is set in the database users environment (e.g. user profile) but not for the database resource stored in the OCR (ora..db).
2. The TNS_ADMIN environment variable is set for the database resource but pointing to a incorrect location.
As a result, when the primary database tries to connect to the standby using the TNS alias specified after 'service=' on the remote destination (log_archive_dest_), it fails to resolve the TNS alias hence the error ORA-12154 "TNS:could not resolve the connect identifier specified" is reported.
SOLUTION
1. Verify if the variable TNS_ADMIN is used in the database users environment:
env|grep TNS_ADMIN
2. Check if the database resource has the TNS_ADMIN variable set:
srvctl getenv database -d -t "TNS_ADMIN"
3. Depending on the output of 1 & 2 either unset TNS_ADMIN on the database resource:
srvctl unsetenv database -d -t "TNS_ADMIN"
or set/correct the value of TNS_ADMIN on the database resource: