Failover is an irreversible
transition of a standby database to the primary role.
This is only done in the
event of a catastrophic failure of the primary database
Do you need to recreate all the Data Guard infrastructure once the failover has been performed?
Ans:
1. If flashback enabled on both
primary and standby and flashback logs retention time has not
exceeded, then it is not necessary to recreate standby from
scratch.
2. If flashback not enabled on both
primary and standby then we need to recreate standby from
scratch.
0. Enviroment
Primary: Platform: Linuxx86_64 Server Name: RAC1.RAJASEKHAR.COM, IP: 192.168.2.101 DB Version: Oracle 11.2.0.3, File system: ASM DB Name: w5005pr, DB_UNIQUE_NAME: w5005pr; Non-RAC Flashback: Disabled Oracle Home Path: /u01/app/oracle/product/11.2.0/db_1 Standby: Platform: Linuxx86_64 Server Name: RAC2.RAJASEKHAR.COM, IP: 192.168.2.102 DB Version: Oracle 11.2.0.3, , File system: ASM DB Name: w5005pr, DB_UNIQUE_NAME: w5005prg; Non-RAC Flashback: Disabled Oracle Home Path: /u01/app/oracle/product/11.2.0/db_1
1. Primary Database Crashed
DGMGRL> show configuration; Configuration - w5005pr Protection Mode: MaxPerformance Databases: w5005pr - Primary database w5005prg - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
2. Steps to perform Failover with Physical Standby database
[oracle@rac2 ~]$ 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/sys@w5005prg Connected. DGMGRL> show configuration; Configuration - w5005pr Protection Mode: MaxPerformance Databases: w5005pr - Primary database w5005prg - Physical standby database Fast-Start Failover: DISABLED Configuration Status: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor ORA-16625: cannot reach database "w5005pr" DGM-17017: unable to determine configuration status DGMGRL> DGMGRL> failover to w5005prg; Performing failover NOW, please wait... Failover succeeded, new primary is "w5005prg" <-- Succeeded DGMGRL> DGMGRL> show configuration Configuration - w5005pr Protection Mode: MaxPerformance Databases: w5005prg - Primary database w5005pr - Physical standby database (disabled) ORA-16661: the standby database needs to be reinstated Fast-Start Failover: DISABLED Configuration Status: SUCCESS
3. Reinstate database old primary
DGMGRL> reinstate database w5005pr; Reinstating database "w5005pr", please wait... Error: ORA-16653: failed to reinstate database Failed. Reinstatement of database "w5005pr" failed DGMGRL> /* Failing it would have needed to configure flashback database to be able to do so automatically… If you try to start w5005pr database in MOUNT state and issue again a request to reinstate you will now get clear error message */ [oracle@rac1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Tue Jan 12 00:05:33 2016 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup mount; ORACLE instance started. Total System Global Area 1269366784 bytes Fixed Size 2227984 bytes Variable Size 1090519280 bytes Database Buffers 167772160 bytes Redo Buffers 8847360 bytes Database mounted. SQL> DGMGRL> reinstate database w5005pr; Reinstating database "w5005pr", please wait... Error: ORA-16827: Flashback Database is disabled <-- Actual error Failed. Reinstatement of database "w5005pr" failed DGMGRL> SQL> shut immediate; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> startup nomount; ORACLE instance started. Total System Global Area 1269366784 bytes Fixed Size 2227984 bytes Variable Size 1090519280 bytes Database Buffers 167772160 bytes Redo Buffers 8847360 bytes
4. Rebuild Standby database for new primary (w5005prg)
[oracle@rac2 ~]$ rman target sys/sys@w5005prg auxiliary sys/sys@w5005pr Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jan 12 00:22:53 2016 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: W5005PR (DBID=4158252169) connected to auxiliary database: W5005PR (not mounted) RMAN> duplicate target database for standby from active database nofilenamecheck;
5. Enable old primary database
[oracle@rac2 ~]$ 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/sys@w5005prg Connected. DGMGRL> show configuration; Configuration - w5005pr Protection Mode: MaxPerformance Databases: w5005prg - Primary database w5005pr - Physical standby database (disabled) ORA-16795: the standby database needs to be re-created Fast-Start Failover: DISABLED Configuration Status: SUCCESS DGMGRL> DGMGRL> enable database w5005pr; Enabled. DGMGRL> show configuration; Configuration - w5005pr Protection Mode: MaxPerformance Databases: w5005prg - Primary database w5005pr - Physical standby database <-- Old Primary Fast-Start Failover: DISABLED Configuration Status: SUCCESS
Failover is an irreversible transition of a standby database to the primary role. This is only done in the event of a catastrophic failure of the primary database
Do you need to recreate all the Data Guard infrastructure once the failover has been performed?
Ans:
1. If flashback enabled on both
primary and standby and flashback logs retention time has not
exceeded, then it is not necessary.
to recreate standby from scratch.
2. If flashback not enabled on both
primary and standby then we need to recreate standby from
scratch.
0. Enviroment
Primary: Platform: Linuxx86_64 Server Name: RAC1.RAJASEKHAR.COM, IP: 192.168.2.101 DB Version: Oracle 11.2.0.3, File system: ASM DB Name: w5005pr, DB_UNIQUE_NAME: w5005pr; Non-RAC Flashback: Disabled Oracle Home Path: /u01/app/oracle/product/11.2.0/db_1 Standby: Platform: Linuxx86_64 Server Name: RAC2.RAJASEKHAR.COM, IP: 192.168.2.102 DB Version: Oracle 11.2.0.3, , File system: ASM DB Name: w5005pr, DB_UNIQUE_NAME: w5005prg; Non-RAC Flashback: Disabled Oracle Home Path: /u01/app/oracle/product/11.2.0/db_1 On Primary SQL> select instance_name,status,database_role from v$database,v$instance; INSTANCE_NAME STATUS DATABASE_ROLE ---------------- ------------ ---------------- w5005pr OPEN PRIMARY SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- TO STANDBY SQL> On Standby SQL> select instance_name,status,database_role from v$database,v$instance; INSTANCE_NAME STATUS DATABASE_ROLE ---------------- ------------ ---------------- w5005prg OPEN PHYSICAL STANDBY SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- NOT ALLOWED
1. Simulate failover: Bring down the primary database w5005pr
SQL> shut immediate Database closed. Database dismounted. ORACLE instance shut down.
2. Steps to perform Failover
On Standby (w5005prg)
SQL> alter database recover managed standby database cancel; Database altered. SQL> alter database recover managed standby database finish force; Database altered. SQL> Note: If Any error from above step then only follow below command. alter database activate physical standby database; SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- TO PRIMARY SQL> alter database commit to switchover to primary; Database altered. SQL> alter database open; Database altered. SQL> select name, open_mode, database_role, INSTANCE_NAME from v$database,v$instance; NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME --------- -------------------- ---------------- ---------------- W5005PR READ WRITE PRIMARY w5005prg SQL> On Old Primary (W5005PR) [oracle@rac1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Tue Jan 12 00:05:33 2016 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount; ORACLE instance started. Total System Global Area 1269366784 bytes Fixed Size 2227984 bytes Variable Size 1090519280 bytes Database Buffers 167772160 bytes Redo Buffers 8847360 bytes SQL> From New Primary Database Rebuild Standby database for new primary [oracle@rac2 ~]$ rman target sys/sys@w5005prg auxiliary sys/sys@w5005pr Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jan 12 00:22:53 2016 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: W5005PR (DBID=4158252169) connected to auxiliary database: W5005PR (not mounted) RMAN> duplicate target database for standby from active database nofilenamecheck;
SQL> alter database open; Database altered. SQL> alter database recover managed standby database disconnect from session using current logfile; Database altered. SQL> select name, open_mode, database_role, INSTANCE_NAME from v$database,v$instance; NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME --------- -------------------- ---------------- ---------------- W5005PR READ ONLY WITH APPLY PHYSICAL STANDBY w5005pr
A switchover is a role
reversal between the primary database and one of its standby
databases. A switchover operation
guarantees no data loss. This is typically done for planned
maintenance of the primary system. During a switchover,
the primary database transitions to a standby role
and the standby database transitions to the primary
role. The transition occurs without having to
recreate either database.
0. Enviroment
Primary: Platform: Linuxx86_64 Server Name: RAC1.RAJASEKHAR.COM, IP: 192.168.2.101 DB Version: Oracle 11.2.0.3, File system: ASM DB Name: w5005pr, DB_UNIQUE_NAME: w5005pr; Non-RAC Flashback: Disabled Oracle Home Path: /u01/app/oracle/product/11.2.0/db_1 Standby: Platform: Linuxx86_64 Server Name: RAC2.RAJASEKHAR.COM, IP: 192.168.2.102 DB Version: Oracle 11.2.0.3, , File system: ASM DB Name: w5005pr, DB_UNIQUE_NAME: w5005prg; Non-RAC Flashback: Disabled Oracle Home Path: /u01/app/oracle/product/11.2.0/db_1
1. Pre-Switchover tasks
- Verify that there is network connectivity between the primary and standby locations. - Always recommened test the switchover in your testing system befre working on production. - Verify primary database READ WRITE and standby instance mounted. - Verify there are no active users connected to database. - Make sure last redo data transmitted from primary to standby and applied. - Set job_queue_processes=0 and aq_tm_processes = 0, dbwr_io_slaves = 0 on both Primary and DR alter system set job_queue_processes=0 ; alter system set aq_tm_processes = 0 ; alter system set dbwr_io_slaves = 0 ;
2. Vefify TNS Entries
Primary
[oracle@rac1 ~]$ cat /u01/app/11.2.0/grid/network/admin/listener.ora # listener.ora Network Configuration File: /u01/app/11.2.0/grid/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac1.rajasekhar.com)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /u01/app/oracle ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = w5005pr_dgmgrl) (SID_NAME = w5005pr) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) ) ) [oracle@rac1 ~]$ [oracle@rac1 ~]$ cat /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. W5005PR = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1.rajasekhar.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = w5005pr) ) ) W5005PRG = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.102)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = w5005prg) ) ) [oracle@rac1 ~]$ [oracle@rac1 ~]$ /u01/app/11.2.0/grid/bin/lsnrctl status
Standby
[oracle@rac2 ~]$ cat /u01/app/11.2.0/grid/network/admin/listener.ora # listener.ora Network Configuration File: /u01/app/11.2.0/grid/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = rac2.rajasekhar.com)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /u01/app/oracle ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = w5005prg_dgmgrl) (SID_NAME = w5005prg) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) ) ) [oracle@rac2 ~]$ [oracle@rac2 ~]$ cat /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. W5005PR = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac1.rajasekhar.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = w5005pr) ) ) W5005PRG = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.102)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = w5005prg) ) ) [oracle@rac2 ~]$ [oracle@rac2 ~]$ /u01/app/11.2.0/grid/bin/lsnrctl status
3. Steps to perform switchover with Physical Standby databases
[oracle@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/sys@w5005pr Connected. DGMGRL> show configuration Configuration - w5005pr Protection Mode: MaxPerformance Databases: w5005pr - Primary database w5005prg - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS DGMGRL> DGMGRL> show database verbose w5005pr Database - w5005pr Role: PRIMARY Intended State: TRANSPORT-ON Instance(s): w5005pr Properties: DGConnectIdentifier = 'w5005pr' ObserverConnectIdentifier = '' LogXptMode = 'ASYNC' DelayMins = '0' Binding = 'optional' MaxFailure = '0' MaxConnections = '1' ReopenSecs = '300' NetTimeout = '30' RedoCompression = 'DISABLE' LogShipping = 'ON' PreferredApplyInstance = '' ApplyInstanceTimeout = '0' ApplyParallel = 'AUTO' StandbyFileManagement = 'AUTO' ArchiveLagTarget = '0' LogArchiveMaxProcesses = '30' LogArchiveMinSucceedDest = '1' DbFileNameConvert = '' LogFileNameConvert = '' FastStartFailoverTarget = '' InconsistentProperties = '(monitor)' InconsistentLogXptProps = '(monitor)' SendQEntries = '(monitor)' LogXptStatus = '(monitor)' RecvQEntries = '(monitor)' SidName = 'w5005pr' StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.101)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=w5005pr_DGMGRL)(INSTANCE_NAME=w5005pr)(SERVER=DEDICATED)))' StandbyArchiveLocation = '+FRA' AlternateLocation = '' LogArchiveTrace = '0' LogArchiveFormat = '%t_%s_%r.dbf' TopWaitEvents = '(monitor)' Database Status: SUCCESS DGMGRL> DGMGRL> show configuration Configuration - w5005pr Protection Mode: MaxPerformance Databases: w5005pr - Primary database w5005prg - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS DGMGRL> switchover to w5005prg; Performing switchover NOW, please wait... New primary database "w5005prg" is opening... Operation requires shutdown of instance "w5005pr" on database "w5005pr" Shutting down instance "w5005pr"... ORACLE instance shut down. Operation requires startup of instance "w5005pr" on database "w5005pr" Starting instance "w5005pr"... ORACLE instance started. Database mounted. Database opened. Switchover succeeded, new primary is "w5005prg" DGMGRL> DGMGRL> show configuration Configuration - w5005pr Protection Mode: MaxPerformance Databases: w5005prg - Primary database w5005pr - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
4. Switch back to old primary (If required)
DGMGRL> switchover to w5005pr; Performing switchover NOW, please wait... New primary database "w5005pr" is opening... Operation requires shutdown of instance "w5005prg" on database "w5005prg" Shutting down instance "w5005prg"... ORACLE instance shut down. Operation requires startup of instance "w5005prg" on database "w5005prg" Starting instance "w5005prg"... ORACLE instance started. Database mounted. Database opened. Switchover succeeded, new primary is "w5005pr" DGMGRL> DGMGRL> show configuration Configuration - w5005pr Protection Mode: MaxPerformance Databases: w5005pr - Primary database w5005prg - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS
A switchover is a role
reversal between the primary database and one of its standby
databases. A switchover operation guarantees no data
loss. This is typically done for planned maintenance
of the primary system. During a switchover, the primary
database transitions to a standby role and the standby
database transitions to the primary role. The transition
occurs without having to recreate either database.
0. Enviroment
Primary: Platform: Linuxx86_64 Server Name: RAC1.RAJASEKHAR.COM, IP: 192.168.2.101 DB Version: Oracle 11.2.0.3, File system: ASM DB Name: w5005pr, DB_UNIQUE_NAME: w5005pr; Non-RAC Flashback: Disabled Oracle Home Path: /u01/app/oracle/product/11.2.0/db_1 Standby: Platform: Linuxx86_64 Server Name: RAC2.RAJASEKHAR.COM, IP: 192.168.2.102 DB Version: Oracle 11.2.0.3, , File system: ASM DB Name: w5005pr, DB_UNIQUE_NAME: w5005prg; Non-RAC Flashback: Disabled Oracle Home Path: /u01/app/oracle/product/11.2.0/db_1
1. Pre-Switchover tasks
– Verify that there is network connectivity between the primary
and standby locations.
– Always recommened test the switchover in your testing system
befre working on production.
– Verify primary database READ WRITE and standby instance mounted.
– Verify there are no active users connected to database.
– Make sure last redo data transmitted from primary to standby and
applied.
– Set job_queue_processes=0 and aq_tm_processes = 0,
dbwr_io_slaves = 0 on both Primary and DR
alter system set job_queue_processes=0 ;
alter system set aq_tm_processes = 0 ;
alter system set dbwr_io_slaves = 0 ;
On Primary
SQL> select name, open_mode, database_role, INSTANCE_NAME from v$database,v$instance; NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME --------- -------------------- ---------------- ---------------- W5005PR READ WRITE PRIMARY w5005pr SQL> select max(sequence#) from v$archived_log where archived='YES'; MAX(SEQUENCE#) -------------- 20 SQL> select name from v$datafile where status='OFFLINE'; no rows selected SQL> select * from dba_jobs_running; no rows selected SQL> show parameter job_queue_processes NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ job_queue_processes integer 1000 SQL> Note: Block further job submission by setting the job_queue_processes parameter to 0 so that there would be no jobs running during switchover. SQL> alter system set job_queue_processes=0 scope=spfile;
On Standby
SQL> select name, open_mode, database_role, INSTANCE_NAME from v$database,v$instance; NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME --------- -------------------- ---------------- ---------------- W5005PR READ ONLY WITH APPLY PHYSICAL STANDBY w5005prg SQL> select max(sequence#) from v$archived_log where applied='YES'; MAX(SEQUENCE#) -------------- 20 SQL> select name from v$datafile where status='OFFLINE'; no rows selected
2. Steps to perform switchover with Physical Standby databases
On PRIMARY
Note: Always perform the switchover of the primary database to standby database first and then switchover the standby database to primary. SQL> select name, open_mode, database_role, INSTANCE_NAME from v$database,v$instance; NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME --------- -------------------- ---------------- ---------------- W5005PR READ WRITE PRIMARY w5005pr SQL> SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- TO STANDBY SQL> Note: If status “TO STANDBY” or “SESSIONS ACTIVE” on the primary database, then perform the switchover using the below query SQL> alter database commit to switchover to physical standby with session shutdown; Database altered. SQL> SQL> shut immediate; ORA-01092: ORACLE instance terminated. Disconnection forced SQL> exit [oracle@rac1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Sun Jan 10 01:15:12 2016 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount; ORACLE instance started. Total System Global Area 1269366784 bytes Fixed Size 2227984 bytes Variable Size 822083824 bytes Database Buffers 436207616 bytes Redo Buffers 8847360 bytes SQL> alter database mount standby database; Database altered. SQL> alter database open; Database altered. SQL> alter database recover managed standby database disconnect from session; Database altered. SQL> select name, open_mode, database_role, INSTANCE_NAME from v$database,v$instance; NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME --------- -------------------- ---------------- ---------------- W5005PR READ ONLY WITH APPLY PHYSICAL STANDBY w5005pr SQL> select max(sequence#) from v$archived_log where applied='YES'; MAX(SEQUENCE#) -------------- 22
On STANDBY
SQL> select name, open_mode, database_role, INSTANCE_NAME from v$database,v$instance; NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME --------- -------------------- ---------------- ---------------- W5005PR READ ONLY WITH APPLY PHYSICAL STANDBY w5005prg SQL> select switchover_status from v$database; SWITCHOVER_STATUS -------------------- SESSIONS ACTIVE SQL> alter database recover managed standby database cancel; Database altered. SQL> alter database commit to switchover to primary with session shutdown; Database altered. SQL> select name, open_mode from v$database; NAME OPEN_MODE --------- -------------------- W5005PR MOUNTED SQL> alter database open; Database altered. SQL> select name, open_mode, database_role, INSTANCE_NAME from v$database,v$instance; NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME --------- -------------------- ---------------- ---------------- W5005PR READ WRITE PRIMARY w5005prg SQL> SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both; System altered. SQL> select max(sequence#) from v$archived_log where archived='YES'; MAX(SEQUENCE#) -------------- 22 SQL>3. Additional Information
The SWITCHOVER_STATUS column of v$database can have the following values: NOT ALLOWED - Either this is a standby database and the primary database has not been switched first, or this is a prstimary database and there are no standby databases. SESSIONS ACTIVE - Indicates that there are active SQL sessions attached to the primary or standby database that need to be disconnected before the switchover operation is permitted. SWITCHOVER PENDING - This is a standby database and the primary database switchover request has been received but not processed. SWITCHOVER LATENT - The switchover was in pending mode, but did not complete and went back to the primary database. TO PRIMARY - This is a standby database, with no active sessions, that is allowed to switch over to a primary database. TO STANDBY - This is a primary database, with no active sessions, that is allowed to switch over to a standby database. RECOVERY NEEDED - This is a standby database that has not received the switchover request.