ISSUES
When using DGMGRL command line to switchover database, we see ORA-12514 error. The following are two databases for primary and standby database :
Sydney – Primary database
Melbourne – Physical standby database
DGMGRL> switchover to 'Melbourne';
Performing switchover NOW, please wait...
Operation requires a connection to instance "Melbourne" on database "Melbourne"
Connecting to instance "Melbourne"
connected
New primary database "Melbourne" is opening ...
Operation requires startup of instance "Sydney" on database "Sydney"
Starting instance "Sydney"...
Unable to connect to database
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
Failed.
Warning: you are no longer connected to ORACLE
Please complete the following steps to finish switchover:
start up and mount instance "Sydney" of database "Sydney"
SOLUTION
we need have static registration with listeners, where a standby database/Data Guard scenario exists. Basically once dmon terminates the instance it was unable to connect back to it again to restart the new standby database without a static entry.
Add an entry into LISTENER.ora for each host where database resides on respectively.
For host where Sydney database resides on:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = Sydney_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = Sydney)
)
For host where Melbourne database resides on:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = Melbourne_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = Melbourne)
)
Check property “StaticConnectIdentifier” to see static registration successfully or not.
DGMGRL> show database "Sydney" StaticConnectIdentifier
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hosta)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=Sydney_DGMGRL)(INSTANCE_NAME=Sydney)(SERVER=DEDICATED)))'
DGMGRL> show database "Melbourne" StaticConnectIdentifier StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostb)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=Melbourne_DGMGRL)(INSTANCE_NAME=Melbourne)(SERVER=DEDICATED)))'