On Premise -> Microsoft Azure

1. Introduction

The examples provided are of Dbvisit Standby Version 8.0.x, there should not be any changes on how this is being implemented in Dbvisit Standby Version 10

The purpose of this Deployment guide is to demonstrate the way in which Dbvisit Standby software can be used within the Azure Cloud Hosting Space. In this guide, we focus on the Primary being located 'on-premise' and a Standby database hosted in MS Azure Cloud.  In another document, we focus on both the Primary and Standby databases hosted in the Azure Cloud.

A link that document can be found here

The setup will be from a Single Instance on-Premise Primary Database to a Single Instance Standby Database with Datafiles stored on standard filesystems on a Windows Platform. However, the options for configuring Dbvisit Standby are in no way limited to this.

2. Initial Setup and Configuration

2.1 Provisioning the Standby Server

Connect to Azure Portal and Select 'Compute' from the options for 'New'

In this guide, we are going to install and configure Dbvisit Standby on Windows so the Azure Virtual Machine will run Windows Server 2016 Datacenter.

Clicking "create" directed us to a wizard with the following Steps.

Step 1  "Basics": configures the name of the VM and adds an 'Admin User', Subscription and Resource Group. License details are also entered here.  Choosing No for the Windows Server License here means the daily cost of the VM increases as the Windows Server License costs are bundled into the daily price for the VM.

There was already resource group 'dbvresgrp' created during a previous VM creation.


Step 2 "Choose Virtual Machine Size".  The size of both VMs in this Guide is DS11 Standard consisting of 2 vCPUs, 14GB Memory and 28GB local SSD.  

Throughout this guide, no mention is made about the licensing implications of running Oracle software on Microsoft Azure. The setup we have here has been built for demonstration purposes and falls within the scope of the Microsoft Azure 'free-trial'. Further information regarding Oracle Licenses in the cloud can be found here. Also  Licensing Oracle Software in the Cloud Computing Environment.

Specify the name of a new Virtual network (1) and Network Security Group (2).

The defaults were accepted for step 4 the VM was created. 

Then, 'click' on the VM icon on the taskbar to view.


Connecting to the VM is via Microsoft Remote Desktop.  

Within the dashboard home section, the connect icon downloads the RDP file required to connect.  

 The password can be stored and the connection details adjusted to reflect the machine name instead of just the IP.

In addition to this, clicking on the Redirection option allows a local drive to be mapped to the Machine. This was useful for copying both the Oracle and Dbvisit Standby binaries

The primary server is a Local Oracle Virtualbox Windows 2012 machine running Oracle 12.1.0.2. Dbvisit Standby v8 has already been installed and configured on this machine and a 12c Database is running.

An overview of both Primary and Standby machines is shown in the table below.


Primary Server DetailsStandby Server Details

Name: dbvwin202

Hosted: Oracle Virtualbox Running Locally

vCPUs: 2

OS: Windows 2012

Memory: 3G

Storage: 75G

Version: 12.1.0.2

Edition: Enterprise Edition

Database: LAA

Dbvisit Base: C:\Program Files\Dbvisit

Standby Version: 8.0.14.19191

Name: dbvwin2016DR

Hosted: Microsoft Azure

vCPUs: 2

OS: Windows 2016 Datacenter

Memory: 14G

Storage: 28G

Version: 12.1.0.2

Edition: Enterprise Edition

Database: LAA

Dbvisit Base: C:\Program Files\Dbvisit

Standby Version: 8.0.14.19191

2.2 Preparing the Azure Server


Connect to the server using the Microsoft Remote Desktop details provided earlier and copy then unzip the required binaries for the Oracle and Dbvisit Installations from the local mapped drive.



In-depth details regarding the Oracle Binaries installation are outwith the scope of this guide. However, Oracle 12c binaries were installed under a new user 'oracle'.  

One other point to note. It was found to be easier to pre-create the user for the Oracle install rather than choose this option as part of the binary installation. The reason for this, when the user is created as a windows administrator, the password policy is adhered to. However, when a password is chosen as part of the binary installation unless you are confident the password adheres to the correct security policy no check is made until the create user step is reached. If the password doesn't fit the security standards, the installation fails and exits.



In order for Dbvisit Standby to communicate between the 2 hosts, and to enable access to the GUI frontend, 3 ports need to be made available.  These are 7890 (Dbvnet), 7891 (Dbvagent) and 4433 (dbvserver: GUI). To do this, security rules need to be added to the Network Security Group for the Azure VM. In addition to this, inbound and outbound firewall rules need to be added to both the Primary and Standby servers.

E.g. For the Network Security Group Associated with the DR machine


Configure additional Inbound and Outbound Security rules.  For ease, a range encompassing all 3 ports can be used (as is shown here). But for maximum security create one rule per port. 

Inbound Rules

Outbound rules.

On both Primary window host and standby, windows host add inbound and outbound firewall 'port' rules.  

When using 'New Rule Wizard', note that the default 'Action' for the outbound rule is 'Block the connection'. This needs to be set to 'Allow the connection' which is the default action for a new 'Inbound Rule'




Windows 2016 Datacenter and Windows 2012 run IPv6 by default. This must be disabled as the final step to allowing connections between the servers.

Begin by 'un-checking' the IPv6 and then select the 'properties' of IPv4, then 'Advanced' and Enter an 'Interface metric'

Once the firewall rules for inbound and outbound connections have been configured, ensure that the oracle user has the 'Log on as a service' Permission and is a member of the groups 'Local Administrators','ORA_DBA' and 'ORA_OraDB12Home1_DBA' (if 12c is used)



For further information regarding the pre-requisites for installing Dbvisit Standby v8 can be found here.

2.3 Networking Considerations for On-Premise Primary

The local VirtualBox VM needs to be configured to be 'internet facing'.  To do this, add an additional network adapter of type 'Bridged Adapter' 

Then remove all Static IP settings and allow the machine to choose an IP via DNS.

There are some additional steps of adding the Office router IP in the C:\windows\system32\drivers\etc\hosts file of Azure Server dbvwin2016DR and opening the router ports to receive traffic on 7890,7891 and 4433 as well as this, the IP address of the Azure Server also needs to be added to the hosts file of the on-premise primary server.


Azure Hosts File
OFFICE_IP  dbvwin202
On-Premise Primary Host File
External IP  dbvwin2016DR


At this stage, the Azure server is ready for the next stage of installing the Dbvisit Standby software.

3. Install, Configure and Run the Standby software

3.1 Installing and Configuring the Software

Unzip installer following the instructions in the dbvisit installation guide as an admin user (in this guide: user oracle). 

https://dbvisit.atlassian.net/wiki/spaces/DS8QSG/pages/104431667/Installing+Dbvisit+Standby#InstallingDbvisitStandby-5.InstallingDbvisitStandbyonWindows

As the Azure server (dbvwin2016DR) will be the standby server, install all the components.



At the end of the installation, the component configuration will automatically be launched


Dbvnet Summary Configuration.

Dbvagent Summary configuration on the Standby Server

Installation Summary on the Standby Server

As part of the installation of Dbvisit Standby on Windows. The services for each component are created and automatically started (e.g. from DR Server)

Since version 8.0.20 Dbvisit Standby has a new parameter DBVSERVER_PUBLIC_HOST (parameter public_address in dbvserver.conf)

Rather than accepting the default hostname prompt here, the public-facing IPv4 address of the Cloud Host should be used. Public-facing IPv4 address that will be supplied to the Agents (Dbvagent) to be used for pushing information back to the Central Console. This is the externally resolvable address supplied to dbvagent, not an additional listener address on dbvserver itself.

3.2 Start the GUI and Create the DDC


The following browsers are supported when using the Dbvisit Standby Web Based interface (latest versions recommended)

  • Firefox 
  • Chrome

Future support for the following browsers are planned:

  • Safari
  • IE


Download and install either Chrome or Firefox.
From within the browser navigate to the https://<dbvserver_host>:4433. In this case, the standby node

https://dbvwin2016DR:4433


  Click 'Advanced' and add the security exception to proceed to the login screen


Enter the default username/password of admin/admin and proceed to the first screen, manage hosts.


Enter each of the hosts in turn, specifying the passphrase used at creation time.


 If either of the Host Names displays an x here, then check the firewall rules, the IPv6 settings, and the network security group rules for each server.

A useful test is to use telnet* on the Dbvisit agent port to check connectivity

C:\Users\dbvisit>telnet dbvwin2016DR 7891

If a blank screen is returned then the port is open and available.

*telnet is not available by default with windows 2016 or windows 2012. However, the telnet client can be installed by adding a new feature.


Return to the Main Menu and then proceed on to creating the DDC

The creation of the DDC file is shown in the following steps.  

Firstly Create a directory for ARCHSOURCE and ARCHDEST parameters.  

The former is only required in the event of a Graceful switchover when the Primary becomes a Standby database.  In this example, the same location is created on each server.

C:\app\oracle\dbvisit_arch

To create a DDC from the GUI. Choose the Manage Configurations Tab

Create a New Configuration.  Fill out the relevant entries then click 'Submit'


The new configuration, 'AZR' can be viewed and edited from the 'Manage Configurations' Tab.

3.3 Create the Standby Database

3.3.1 Creating the Standby with the GUI

Choose the Create Standby Database Tab from the Home Screen.

Select your configuration, New Database if required and then check there is enough space in the Source and Dest temp locations.

edit the SPFILE parameters, if required, and then check there is enough space in the Source and Dest temp locations.


Click Submit.  

Click on the Create Standby Task to view the progress



The task has completed when a small green 'tick' appears on the task icon.

3.3.2 Creating the Standby with the CLI

To Create the Standby database with the command line is shown below

C:\Program Files\Dbvisit\Standby>dbvctl -d AZR --csd

>>> Running pre-checks please wait... done
What would you like to do:
   1 - Create standby database (and optionally save settings in template)
   2 - Help
   3 - Terminate processing
   Please enter your choice [1]: 1

-------------------------------------------------------------------------------
Answer Yes to transfer the datafiles directly to the standby server (not
recommended for large database or slow networks)
Note tablespaces will be placed in backup mode for direct copy.
Answer No (recommended) to create an RMAN backup of primary datafiles in a
temporary location and transfer the backup to the standby server

=>Do you want to copy database files directly to the standby server? [N]:
Your input: N

Is this correct? <Yes/No> [Yes]:
-------------------------------------------------------------------------------

=>Do you want to use TRANSPORTABLE MEDIA to transfer the database backup to the
standby server? Transportable media is an external device such as a USB drive
that is first plugged into the primary server and then manually transferred to
the standby site and plugged into the standby server to continue the process.
It can be used for large databases or slow networks.
Specifying No means the network will be used to transfer the database backup.
[N]:
Your input: N

Is this correct? <Yes/No> [Yes]:

-------------------------------------------------------------------------------
A temporary location must be specified on DBVWIN202 where the database will be
backed up to first.
This location must be big enough to hold RMAN backup of the whole database
(1.29GB).

=>Specify the location on this server: [C:\windows\temp]:

Your input: C:\windows\temp

Is this correct? <Yes/No> [Yes]:

-------------------------------------------------------------------------------
A temporary location must be specified on DBVWIN2016DR where the database
backup will be copied to before moving to specified locations.

=>Specify location on remote server: [C:\windows\temp]:
Your input: C:\windows\temp

Is this correct? <Yes/No> [Yes]:
-------------------------------------------------------------------------------
Oracle Home User login might be required to create the Oracle Windows service
Leave empty if Oracle Home User is Windows built-in account

=>Specify Oracle Home User: []: oracle
Your input: oracle

Is this correct? <Yes/No> [Yes]:

=>Specify Oracle Home User password: []: *********
Your input: *********

Is this correct? <Yes/No> [Yes]:

-------------------------------------------------------------------------------

=>Do you want to use an existing standby spfile rather than create a new one
from scratch? [N]:
Your input: N

Is this correct? <Yes/No> [Yes]:

-------------------------------------------------------------------------------

=>Do you want to register a newly created standby database with Oracle Restart?
[N]: N
Your input: N

Is this correct? <Yes/No> [Yes]:

The following oracle database parameters will be set in the standby database pfile or spfile:
-------------------------------------------------------------------------------
SID            NAME                                    VALUE

*              audit_file_dest                         D:\app\oracle\admin\LAA\adump
*              compatible                              12.1.0.2.0
*              db_block_size                           8192
*              db_create_file_dest                     D:\app\oracle\oradata
*              db_domain
*              db_name                                 LAA
*              db_recovery_file_dest                   D:\app\oracle\fast_recovery_area
*              db_recovery_file_dest_size              6731857920
*              db_unique_name                          LAA
*              diagnostic_dest                         D:\app\oracle
*              dispatchers                             (PROTOCOL=TCP) (SERVICE=LAAXDB)
*              enable_pluggable_database               true
*              memory_target                           1298137088
*              open_cursors                            300
*              processes                               300
*              remote_login_passwordfile               EXCLUSIVE
*              remote_os_authent                       TRUE
*              sec_case_sensitive_logon                FALSE
*              spfile                                  OS default
*              undo_tablespace                         UNDOTBS1

-------------------------------------------------------------------------------
What would you like to do:
   1 - Proceed with creating the standby database
   2 - Edit oracle database parameters for the standby database pfile/spfile
   3 - Terminate processing
   Please enter your choice [1]:


Validating oracle database parameters... please wait
=>SUCCEEDED

-------------------------------------------------------------------------------

=>Create standby database template for LAA using provided answers? [Y]:
Your input: 1

Is this correct? <Yes/No> [Yes]:

-------------------------------------------------------------------------------

=>Continue with creating a standby database? (If No processing will terminate,
the saved template will be available for future use) [Y]:
Your input: 1

Is this correct? <Yes/No> [Yes]:

>>> dbvctl will now run a pre-flight check for standby database creation. An attempt will
    be made to create a standby (s)pfile using oracle standby database parameters, followed
    by trying to start the standby instance. If this step fails, then please double-check
    the following items before re-running dbvctl again:

    1) Review the standby database parameters you have supplied and provide valid values
    unless a template is used.
    2) Recreate the template to provide valid values for standby database parameters if a
    template is used.

>>> Running pre-flight check for standby creation, please wait... done

>>> Total database size for LAA is 3.35GB

>>> Backing up primary database...

    Backing up datafile 1... done
    Backing up datafile 3... done
    Backing up datafile 4... done
    Backing up datafile 5... done
    Backing up datafile 6... done
    Backing up datafile 7... done
    Backing up datafile 8... done
    Backing up datafile 9... done
 
>>> Creating standby control file... done

>>> Transferring backup from DBVWIN202 to DBVWIN2016DR...

    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_1_3ESDNA8M_1_1.RMAN... done
    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_1_3FSDNA9F_1_1.RMAN... done
    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_2_3GSDNA9I_1_1.RMAN... done
    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_3_3HSDNAA2_1_1.RMAN... done
    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_4_3ISDNAA4_1_1.RMAN... done
    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_5_3JSDNAAG_1_1.RMAN... done
    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_6_3KSDNAA3_1_1.RMAN... done
    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_7_3LSDNAA1_1_1.RMAN... done
    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_8_3LSENFA1_1_1.RMAN... done
    Transferring C:\windows\temp\DBV_DBV1_CSD_AZR_8_3LSDFAA1_1_1.RMAN... done

>>> Restoring standby control files... done

>>> Starting standby database LAA on DBVWIN2016DR mount... done

>>> Restoring datafiles on DBVWIN2016DR...

    Restoring datafile 1... done
    Restoring datafile 2... done
    Restoring datafile 3... done
    Restoring datafile 4... done
    Restoring datafile 5... done
    Restoring datafile 6... done
    Restoring datafile 7... done
    Restoring datafile 8... done
    Restoring datafile 9... done

>>> Renaming standby redo logs and tempfiles on DBVWIN2016DR... done

>>> Performing checkpoint and archiving logs... done

>>> Completing standby database creation... done

>>> Standby database created.

To complete creating standby database please run dbvctl on the primary server first,
then on the standby server, to ensure the standby database is in sync with the primary
database.

PID:3816
TRACE:3816_dbvctl_csd_DBV1_201709051722.trc


3.4 Performing Basic Tasks

Some examples of basic tasks are outlined below.  Please refer to the online documentation for more details on each command.  

3.4.1 Log Gap Report

Run a log gap report from the Primary Site

C:\Program Files\Dbvisit\Standby>dbvctl -d AZR -i
=============================================================
Dbvisit Standby Database Technology (8.0.14.19191) (pid 1780)
dbvctl started on DBVWIN202: Fri Sep  8 19:01:12 2017
=============================================================

Dbvisit Standby log gap report for LAA thread 1 at 201709081901:
-------------------------------------------------------------
Destination database on DBVWIN2016DR is at sequence: 0.
Source database on DBVWIN202 is at log sequence: 2.
Source database on DBVWIN202 is at archived log sequence: 1.
Dbvisit Standby last transfer log sequence: 1.
Dbvisit Standby last transfer at: 2017-09-08 18:32:57.

Archive log gap for LAA:  1.
Transfer log gap for LAA: 0.
Standby database time lag (DAYS-HH:MI:SS): -11:19:52.


=============================================================
dbvctl ended on DBVWIN202: Fri Sep  8 19:01:19 2017
=============================================================


C:\Program Files\Dbvisit\Standby>

Also from the GUI

3.4.2 Log Transfer

Sending the logs from the Primary via the CLI


C:\Program Files\Dbvisit\Standby>dbvctl -d DBV1
=============================================================
Dbvisit Standby Database Technology (8.0.14.19191) (pid 3952)
dbvctl started on DBVWIN2016: Tue Sep 5 17:59:38 2017
=============================================================
>>> Obtaining information from standby database (RUN_INSPECT=Y)... done
>>> Sending heartbeat message... skipped
>>> Transferring Log file(s) from LAA on DBVWIN2016 to DBVWIN2016DR for thread 1:
thread 1 sequence 361 (O1_MF_1_361_DTWGGRRN_.ARC)
=============================================================
dbvctl ended on DBVWIN2016: Tue Sep 5 17:59:46 2017
=============================================================


Apply Logs at the Standby Site via the GUI

3.4.3 Daemon Status

Start the Daemons for automatic send/apply from the GUI Database Actions Tab. 

The lightning bolt icon manages the daemon processes.


When started on both sites they Log gap managed automatically and if no natural log switches have occurred, the daemon will also signal a log switch to keep the standby LAG to the desired amount. More information regarding the daemon settings can be found here in Section 4


https://dbvisit.atlassian.net/wiki/display/DS8QSG/Dbvisit+Standby+Scheduling

3.4.4 Starting Standby Database in Readonly Mode

From the Database Actions Tab choose the Database Icon.  This allows the user to perform database actions on each node.

Before the Standby Database can be opened in readonly mode, there must be a log gap of 0 between the 2 systems.

Select the Standby Host, review the current status and Select Start READ ONLY.

Now, the status is Read Only for the standby database.

To switch back again.  Choose Restart


Now the Standby is back in recovery mode and the logs can be applied as normal.

3.5 Performing Graceful Switchover

The following screenshots show a Graceful Switchover from one Cloud Standby to the other using the GUI.  A first pre-requisite is to ensure that the daemons started earlier are not running whilst the switchover is in progress.

3.5.1 Check the Status of the Daemons

If the daemons have been started in the previous step, they need to be stopped before performing a graceful switchover.

3.5.2 Graceful Switchover Icon GUI

3.5.3 Check Log Gap is Zero and Click Submit

3.5.4 Locate the Task on the Task Bar


3.5.5 Monitor the Activity



3.5.6 Verify the New Roles within each of the Databases

Verify the new database roles within the database

C:\Program Files\Dbvisit\Standby>hostname
dbvwin202
C:\Program Files\Dbvisit\Standby> sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Jun 1 00:38:14 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production

SQL> select name, database_role from v$database;

NAME	  DATABASE_ROLE
--------- ----------------
LAA  	  PHYSICAL STANDBY

C:\Program Files\Dbvisit\Standby>hostname
dbvwin2016DR

C:\Program Files\Dbvisit\Standby> sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Jun 1 00:38:14 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production

SQL> select name, database_role from v$database;

NAME	  DATABASE_ROLE
--------- ----------------
LAA  	  PRIMARY


3.6 Activate the Standby Database

It is possible to activate the Standby Database and make it become the new Primary.  This is also called failover to the standby database.

The assumption is that the original Primary site has been lost and needs to be rebuilt.  

From the Central Console/GUI Choose the "Activate Standby Database Command"

3.6.1 Choose the Activate Standby Database

3.6.2 Select the Configuration


3.6.3 Monitor the Task from The Task Bar



3.6.4 Verify the Status within the Database


C:\Program Files\Dbvisit\Standby>hostname
dbvwin202

C:\Program Files\Dbvisit\Standby> sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Thu Jun 1 00:38:14 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production

SQL> select name, database_role from v$database;

NAME	  DATABASE_ROLE
--------- ----------------
LAA  	  PRIMARY

3.6.5 Manage Configurations Tab Implications

Now the Manage Configurations Tab has the option to choose the hosts. This allows you to either accept the current configuration with the new Primary (old Standby site) or start again with the original Primary site and depends on the circumstances of the Activation.