Graceful Switchover (GS)

1. Introduction

This section will provide you with details on how to perform a Graceful Switchover (GS).  A GS is done in a controlled manner with zero data loss.  During this process, the primary and standby databases switch roles.

There is a number of checks and steps to be performed as part of this process. If for some reason the process fails, it will attempt an auto-rollback depending on the stage it is at.

The section will first cover the command line interface option followed by using the Central Console.

Before you execute a Graceful Switchover you must make sure that the Archive Log Gap between the primary and standby is 0 or if using Oracle RAC 0 or 1.

Please stop the Dbvisit Daemon Process from Primary and Standby before executing the Graceful Switchover. Check the below link to stop/start the daemon process depending on the platform.

Dbvisit Standby Scheduling#4.RunningDbvisitStandbyintheBackground

If you are using other scheduling methods please make sure that these schedules are disabled/stopped before proceeding with Graceful Switchover.

Before running the Graceful switchover check if there are any services running the database if so you might have to set the value of the DDC variable SERVICE_USED and SERVICE_USED_DR to Y. Check the usage of the variable in the below documentation link. The variable is introduced from Dbvisit Standby Version 8.0.22.

DDC File Reference#Reference-9.AdvancedSettings

If RMAN is used in no-catalog mode on primary or standby database, execution of Graceful Switchover will render any backup information and setting in primary and standby controlfiles unusable. After Graceful switchover, crosscheck and catalog of existing backups must be performed.

If you have Unified auditing enabled in your database, please make sure you upgrade to Dbvisit Standby release 9.0.18. If you are on earlier releases the graceful switchover will fail unless you disable the auditing.

On this page:


2.  Graceful Switchover - Command Line Interface 

The Graceful Switchover command is part of the "dbvctl -o" command options.  For more detail on using this command run:  "./dbvctl -o -h" 

Example:

[oracle@dbv101 /usr/dbvisit/standby]$ ./dbvctl -h -o

    dbvctl -d <ddc> -o start|stop|status|restart [--database]
    dbvctl -d <ddc> -o open|read
    dbvctl -d <ddc> -o activate [--force] [--nosync]
    dbvctl -d <ddc> -o switchover [--logswitch]
    dbvctl -d <ddc> -o update_ddc_file|update_dbenv_file
    dbvctl -d <ddc> -o upgrade [--noprompt]

    start            Startup instance or database
    stop             Shutdown instance or database
    status           Display status of instance or database
    restart          Restart instance or database
    open|read        Open the standby database read only
    activate         Activate standby database
    switchover       Perform Graceful Switchover
    update_ddc_file  Reverse variables in a ddc file
    upgrade          Upgrade the ddc file to the latest version
    --database       Apply option to the whole database rather than an instance (RAC)
    --force          No interactive prompt
    --nosync         Add SYNCH_DBVISIT_INSTALL = No to ddc file on completion
    --logswitch      A number of logswitches to perform during GS (for test purposes)
    --noprompt       No confirmation prompts


    dbvctl [-d ddc] -o setup [--nolic] [--noprompt] [--mode CLI|GUI] [--action new|install|uninstall] [-j json_file]

    --nolic          Do not display license text
    --noprompt       No confirmation prompts
    --mode           CLI default
    --action         Used by GUI only
    --json           Json file in GUI mode


[oracle@dbv101 /usr/dbvisit/standby]$


From the above, we can see that the Graceful Switchover command is:  ./dbvctl -d <DDC> -o switchover

You only have to execute this command on one of the servers (primary or standby). It is recommended to use the primary.

In the following example, we perform a Graceful Switchover for the DEV database running on dbv101 (primary) and dbv102 (standby): 


2.1.  Examples

The Graceful Switchover process for a single instance environment compared to an Oracle RAC configuration is the same.  Below are two examples, first using Single Instance configurations and the second between two Oracle RAC configurations.

2.1.1.  Example 1:  Single Instance Graceful Switchover

In this first example, the switchover command is executed on the primary server dbv101 for the single instance database DEV.

[oracle@dbv101 /usr/dbvisit/standby]$ ./dbvctl -d DEV -o switchover
=============================================================
Dbvisit Standby Database Technology (8.0.01.17364) (pid 578)
dbvctl started on dbv101: Wed Sep  7 10:37:49 2016
=============================================================

>>> Starting Switchover between dbv101 and dbv102

Running pre-checks       ... done
Pre processing           ... done
Processing primary       ... done
Processing standby       ... done
Converting standby       ... done
Converting primary       ... done
Completing               ... done
Synchronizing            ... done
Post processing          ... done

>>> Graceful switchover completed.
    Primary Database Server: dbv102
    Standby Database Server: dbv101

>>> Dbvisit Standby can be run as per normal:
    dbvctl -d DEV


PID:578
TRACE:/usr/dbvisit/standby/trace/578_dbvctl_switchover_DEV_201609071037.trc

=============================================================
dbvctl ended on dbv101: Wed Sep  7 10:39:42 2016
=============================================================

[oracle@dbv101 /usr/dbvisit/standby]$

Once the above command is complete, the primary database is not on dbv102 and the standby on dbv101.


2.1.2.  Example 2:  Oracle RAC and Graceful Switchover 

The Graceful Switchover command was executed on the primary RAC cluster and in this particular example, Dbvisit Standby was running on node 2 (kiwi92).  Once the Graceful Switchover is complete, the Oracle RAC database on kiwi91 and kiwi92 becomes a standby and both instances will be in a mounted state - ready to perform recovery.

oracle@kiwi92[/acfs/dbvisit/standby]: ./dbvctl -d DEV -o switchover
=============================================================
Dbvisit Standby Database Technology (8.0.01.18066) (pid 3147)
dbvctl started on kiwi912-vip: Sun Nov  6 13:49:58 2016
=============================================================

>>> Starting Switchover between kiwi912-vip and kiwi812-vip

Running pre-checks       ... done
Pre processing           ... done
Processing primary       ... done
Processing standby       ... done
Converting standby       ... done
Converting primary       ... done
Completing               ... done
Synchronizing            ... done
Post processing          ... done

>>> Graceful switchover completed.
    Primary Database Server: kiwi812-vip
    Standby Database Server: kiwi912-vip

>>> Dbvisit Standby can be run as per normal:
    dbvctl -d DEV


PID:3147
TRACE:3147_dbvctl_switchover_DEV_201611061349.trc

=============================================================
dbvctl ended on kiwi912-vip: Sun Nov  6 13:54:59 2016
=============================================================


oracle@kiwi92[/acfs/dbvisit/standby]: srvctl status database -d DEV
Instance DEV1 is running on node kiwi91
Instance DEV2 is running on node kiwi92

oracle@kiwi92[/acfs/dbvisit/standby]: srvctl status database -d DEV -v
Instance DEV1 is running on node kiwi91. Instance status: Mounted (Closed).
Instance DEV2 is running on node kiwi92. Instance status: Mounted (Closed).

As can be seen in the last two commands the Oracle RAC database on node kiwi91 and kiwi92 is now in a mounted state ready for recovery - as the database on this cluster is now a standby database.



3.  Graceful Switchover - Central Console (GUI)

Graceful Switchover (GS) is a process which allows you to switch the roles of your Source and Destination Hosts, thereby swapping them. This can be a useful thing to do for a number of reasons, for example, if you wish to perform planned maintenance on your Source Host and therefore want the Destination Host to take over as the production host.

Step 1: Initiate the GS process by clicking the Perform Graceful Switchover button on the main page.


Step 2: Select the Configuration/DDC to work with [1].


Step 3: Once the desired Configuration/DDC is selected [1], the system will run a Log Gap Report [2]. This is important because a Graceful Switchover can only be performed if the Archive Log Gap between your two Hosts is zero! If the log gap is more than zero, a warning message will be displayed, and you will be unable to proceed. NOTE: On RAC systems, a GS is possible when the Archive Log Gap is either 0 or 1.

If the operation is possible, clicking the Submit button [3] will begin the process. Please note the warning message above this button - GS is an important process, and because it swaps the roles of the Source and Destination Hosts, will completely change how your environment works. It is possible to use GS twice to again reverse your environment back to its original configuration, however, this will take a considerable amount of time. In short, please ensure you use the GS process responsibly.


Step 4: After the GS process is underway, you will be able to track it as a separate Task in the Active Task List [1].


Step 5: Once the GS process is complete, the Source and Destination Hosts for your chosen Configuration/DDC will switch. You can confirm this by going to the Configurations page and taking note of the Source and Destination host entries [1].


Below is the video for performing Graceful Switchover using GUI

Below is the video for performing Graceful Switchover using CLI