
when we perform switchover the new standby second instance doesn’t start automatically after switchover
our configuration
DGMGRL> show configuration
Configuration - broker_config
Protection Mode: MaxPerformance
Databases:
TROY - Primary database
TROY_DR - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
swichover
DGMGRL> switchover to 'TROY_DR'
Performing switchover NOW, please wait...
New primary database "TROY_DR" is opening...
Operation requires shutdown of instance "TROY1" on database "TROY"
Shutting down instance "TROY1"...
ORACLE instance shut down.
Operation requires startup of instance "TROY1" on database "TROY"
Starting instance "TROY1"...
ORACLE instance started.
Database mounted.
Database opened.
Switchover succeeded, new primary is "TROY_DR"
error message
DGMGRL> show configuration
Configuration - broker_config
Protection Mode: MaxPerformance
Databases:
TROY_DR - Primary database
TROY - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
ORA-16501: the Data Guard broker operation failed
ORA-16625: cannot reach database "TROY_DR"
DGM-17017: unable to determine configuration status
status of new standby
[root@ol6-112-rac1 ~]# /u01/app/11.2.0.3/grid/bin/crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
.......
.......
ora.troy.db
1 ONLINE ONLINE ol6-112-rac1 Open,Readonly
2 OFFLINE OFFLINE Instance Shutdown
immeditae fix
restart the new standby database
[oracle@ol6-112-rac1 ~]$ srvctl stop database -d TROY
srvctl start database -d TROY
[oracle@ol6-112-rac1 ~]$ srvctl start database -d TROY
now configuartion looks fine
[oracle@ol6-112-rac1 ~]$ dgmgrl
DGMGRL for Linux: Version 11.2.0.3.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
DGMGRL> connect sys/oracle@TROY
Connected.
DGMGRL> show configuration
Configuration - broker_config
Protection Mode: MaxPerformance
Databases:
TROY_DR - Primary database
TROY - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
permanent fix
there could be multiple reasons for this error. apply one of these fix as per your case.
- you have tnsnames.ora in your $ORACLE_HOME/network/admin but forget to keep the same in your $GRID_HOME/network/admin (my case)
- you are using default port 1521 in local listener port or scan listener. So change it to non default port.
- you are using scan in your tns connect identifier. you should instead use VIP. modifu your tns from scan to vip as mentioned below
TROY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol6-112-scan)(PORT = 1525))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TROY.localdomain)
(UR=A)
)
)
TROY_DR =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol6-112-dr-scan)(PORT = 1525))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TROY_DR.localdomain)
(UR=A)
)
)
to ----->
TROY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol6-112-rac1-vip)(PORT = 1525))
(ADDRESS = (PROTOCOL = TCP)(HOST = ol6-112-rac2-vip)(PORT = 1525))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVICE_NAME = TROY.localdomain)
)
)
TROY_DR =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol6-112-dr-rac1-vip)(PORT = 1525))
(ADDRESS = (PROTOCOL = TCP)(HOST = ol6-112-dr-rac2-vip)(PORT = 1525))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVICE_NAME = TROY_DR.localdomain)
)
)
- stabdby database is in active dataguard mode (read-only with apply). change it to mount mode before switchover
[oracle@ol6-112-dr-rac1 ~]$ srvctl stop database -d TROY_DR
[oracle@ol6-112-dr-rac1 ~]$ srvctl remove database -d TROY_DR
Remove the database TROY_DR? (y/[n]) y
[oracle@ol6-112-dr-rac1 ~]$ srvctl status database -d TROY_DR
PRCD-1120 : The resource for database TROY_DR could not be found.
PRCR-1001 : Resource ora.troy_dr.db does not exist
[oracle@ol6-112-dr-rac1 ~]$ srvctl add database -d TROY_DR -o /u01/app/oracle/product/11.2.0.3/db_1 -r physical_standby
[oracle@ol6-112-dr-rac1 ~]$ srvctl add instance -d TROY_DR -i TROY1 -n ol6-112-dr-rac1
[oracle@ol6-112-dr-rac1 ~]$ srvctl add instance -d TROY_DR -i TROY2 -n ol6-112-dr-rac2
[oracle@ol6-112-dr-rac1 ~]$ srvctl status database -d TROY_DR
Instance TROY1 is not running on node ol6-112-dr-rac1
Instance TROY2 is not running on node ol6-112-dr-rac2
[oracle@ol6-112-dr-rac1 ~]$ srvctl modify database -d TROY_DR -s mount
[oracle@ol6-112-dr-rac1 ~]$ srvctl start database -d TROY_DR
[oracle@ol6-112-dr-rac1 ~]$ srvctl status database -d TROY_DR
Instance TROY1 is running on node ol6-112-dr-rac1
Instance TROY2 is running on node ol6-112-dr-rac2
- your databases are not properly added in cluster so remove and add them back using srvctl
[oracle@ol6-112-rac1 admin]$ srvctl stop database -d TROY
[oracle@ol6-112-rac1 admin]$ srvctl remove database -d TROY
Remove the database TROY? (y/[n]) y
[oracle@ol6-112-rac1 admin]$ srvctl status database -d TROY
PRCD-1120 : The resource for database TROY could not be found.
PRCR-1001 : Resource ora.troy.db does not exist
[oracle@ol6-112-rac1 admin]$ srvctl add database -d TROY -o /u01/app/oracle/product/11.2.0.3/db_1 -r primary
[oracle@ol6-112-rac1 admin]$ srvctl add instance -d TROY -i TROY1 -n ol6-112-rac1
[oracle@ol6-112-rac1 admin]$ srvctl add instance -d TROY -i TROY2 -n ol6-112-rac2
[oracle@ol6-112-rac1 admin]$ srvctl status database -d TROY
Instance TROY1 is not running on node ol6-112-rac1
Instance TROY2 is not running on node ol6-112-rac2
[oracle@ol6-112-rac1 admin]$ srvctl start database -d TROY
[oracle@ol6-112-dr-rac1 ~]$ srvctl stop database -d TROY_DR
[oracle@ol6-112-dr-rac1 ~]$ srvctl remove database -d TROY_DR
Remove the database TROY_DR? (y/[n]) y
[oracle@ol6-112-dr-rac1 ~]$ srvctl status database -d TROY_DR
PRCD-1120 : The resource for database TROY_DR could not be found.
PRCR-1001 : Resource ora.troy_dr.db does not exist
[oracle@ol6-112-dr-rac1 ~]$ srvctl add database -d TROY_DR -o /u01/app/oracle/product/11.2.0.3/db_1 -r physical_standby
[oracle@ol6-112-dr-rac1 ~]$ srvctl add instance -d TROY_DR -i TROY1 -n ol6-112-dr-rac1
[oracle@ol6-112-dr-rac1 ~]$ srvctl add instance -d TROY_DR -i TROY2 -n ol6-112-dr-rac2
[oracle@ol6-112-dr-rac1 ~]$ srvctl status database -d TROY_DR
Instance TROY1 is not running on node ol6-112-dr-rac1
Instance TROY2 is not running on node ol6-112-dr-rac2