There were some some connection problems along the way, and this was solved by setting the (UR=A) attribute in the tnsnames.ora entry for the database.
What exactly is the UR=A attribute and what does it do?
This is explained very well in a blog post from Ed Chen Logic so rather than explaining the same points all over again, continue reading there.
But in short, an instance (memory, background processes, but no data files) will inform the listener to block all connections to its corresponding service by default.
To bypass this restriction, you can add UR=A to the connect descriptor. From the primary server, I will then be able to connect to the standby instance running on prodserver2.oric.no.
Let's demonstrate it:
Start the standby database in nomount:
sqlplus / as sysdba startup nomount ORACLE instance started. Total System Global Area 1.2885E+10 bytes Fixed Size 8635096 bytes Variable Size 2986347816 bytes Database Buffers 9865003008 bytes Redo Buffers 24915968 bytesStart a default listener on the standby server:
lsnrctl startMake sure the default service is loaded: wait for a minute, or execute
alter system register;Listener status is now:
Service "proddb01_stby.oric.no" has 1 instance(s). Instance "proddb01", status BLOCKED, has 1 handler(s) for this service...Create a tnsnames.ora entry for connecting to the standby database from the primary server:
proddb01_stby.oric.no = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = proddb02.oric.no)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = proddb01_stby.oric.no) ) )Test it:
sqlplus sys/password@proddb01_stby.oric.no as sysdbaResult:
ORA-12528: TNS:listener: all appropriate instances are blocking new connectionsAdd the UR=A to the connect_data section:
proddb01_stby.oric.no =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = proddb01.oric.no)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = proddb01_stby.oric.no)
(UR = A)
)
)
And try again:
sqlplus sys/password@proddb01_stby.oric.no as sysdbaResult:
SQL*Plus: Release 12.2.0.1.0 Production on Fri Dec 9 16:43:09 2022 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL> select host_name from v$instance; HOST_NAME ----------------- proddb02.oric.no SQL> show parameter db_unique NAME TYPE VALUE ---------------- --------- -------------- db_unique_name string proddb01_stby