|
| [size=130%]PING[ARC2]: Heartbeat Failed To Connect To Standby ORA-16047 (Doc ID 2379045.1) | | |
In this Document
Applies to: Oracle Database Exadata Express Cloud Service - Version N/A and later
Oracle Database Cloud Schema Service - Version N/A and later
Oracle Database Backup Service - Version N/A and later
Oracle Database Cloud Service - Version N/A and later
Oracle Database - Enterprise Edition - Version 11.2.0.3 to 11.2.0.3 [Release 11.2]
Information in this document applies to any platform.
Symptoms
NOTE: In the images and/or the document content below, the user information and environment data used represents fictitious data from the Oracle sample schema(s), Public Documentation delivered with an Oracle database product or other training material. Any similarity to actual environments, actual persons, living or dead, is purely coincidental and not intended in any manner.
[size=90%]For the purposes of this document, the following fictitious environment is used as an example to describe the procedure:
Primary Database:
DB_NAME: PRIM
Standby Database:
DB_UNIQUE_NAME: STDBY
Log shipping failing with ORA-16047
Alert.log:
[size=90%]PING[ARC2]: Heartbeat failed to connect to standby 'stdby'. Error is 16047.
Wed Mar 21 09:26:37 2018
ARC3: Archivelog destination LOG_ARCHIVE_DEST_2 disabled: Data Guard configuration identifier mismatch
Archived Log entry 25736 added for thread 1 sequence 1662 ID 0x5bb1dab4 dest 1:
Environment Detail:
Primary:
[size=90%]
SELECT database_role role, name, db_unique_name, platform_id, open_mode, log_mode, flashback_on, protection_mode, protection_level FROM v$database;
ROLE NAME DB_UNIQUE_NAME OPEN_MODE LOG_MODE
PRIMARY prim prim READ WRITE ARCHIVELOG
ORACLE_SID set stdby
log_archive_dest_2 SERVICE=stdby ASYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stdby
* fal_client prim
* fal_server stdby
* log_archive_config DG_CONFIG=(prim,stdby)
Standby:
[size=90%]SQL> SELECT database_role role, name, db_unique_name, platform_id, open_mode, log_mode, flashback_on, protection_mode, protection_level FROM v$database;
ROLE NAME DB_UNIQUE_NAME OPEN_MODE LOG_MODE
PHYSICAL STANDBY prim stdby MOUNTED ARCHIVELOG
ORACLE_SID set prim
log_archive_dest_2 SERVICE=prim ASYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=prim
* fal_client stdby
* fal_server prim
* log_archive_config DG_CONFIG=(prim,stdby)
Parameters are set correctly.
Changes
CauseTNS alias (stdby) configured in log_archive_Dest_2 parameter at primary is pointing to primary itself.
From primary:
[size=90%]sqlplus sys/<password>@stdby as sysdba
select name,db_unique_name,database_role from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE
prim prim PRIMARY
[size=90%]tnsnames.ora
stdby=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <primary_host_ip>)(PORT = 1521))<<<<Primary HOST IP
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = stdby)<<<<<<<<<<Primary ORACLE_SID
)
)
SolutionMake correction to tns alias defined for standby.
[size=90%]stdby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <standby_host_ip>)(PORT = 1521))<<<<Change HOST IP to Standby host IP.
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prim)<<<<<<<<<<Change it to standby ORACLE_SID which is prim
)
)
Defer and enable log_archive_dest_state_2 at primary:
[size=90%]SQL> alter system set log_archive_dest_state_2=defer scope=both;
SQL> alter system switch logfile;
SQL> alter system set log_archive_dest_state_2=enable scope=both;
|
|
|