What is the cause and solution for Oracle error ORA-16662: Network Timeout when trying data guard switchover?
Cause:
The connection string for DGConnectIdentifier, which uses the failover_mode option, has a problem when contacting a member in RAC database.
primarydb = "(description=(address_list=(address=(protocol=tcp)(host=<scan_name>)(port=<port>)))(connect_data=(server=dedicated)(service_name=<service_name>)(ur=a)(failover_mode=(type=select)(method=basic)(retries=180)(delay=5))))" standbydb = "(description=(address_list=(address=(protocol=tcp)(host=<scan_name>)(port=<port>)))(connect_data=(server=dedicated)(service_name=<service_name>)(ur=a)(failover_mode=(type=select)(method=basic)(retries=180)(delay=5))))"
And the DGConnectIdentifier identifier should not use failover_mode in the connection string.
Solution:
The connection string in DGConnect identifier is using failover_mode option.
Remove the failover_mode from the connection string and use the connection string for both databases as shown below:
primarydb = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCP)(HOST=<scan_name>)(PORT = <port>)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <service_name>) ) ) standbydb = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCP)(HOST=<scan_name>)(PORT = <port>)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <service_name>) ) )