As you might know Dbvisit StandbyMP is a great Disaster Recovery solution for Oracle SE databases. Dbvisit recently communicated, providing now, a Test Drive system for customer to easily try the product and for partner to easily have a Demo environment. In less than 2 minutes, an environment with a Control Center host and multiple database server hosts with either Oracle or SQL Server is made available. The Dbvisit StandbyMP product is already pre-installed and ready to be used. Let’s have a try!

We need to use the following link : https://testdrive.dbvisit.com/.

We need to enter our name and email address.

And to click “Launch test drive”.

The process of setting the lab is starting.

And is really taking less than 2 minutes to setup!

We now have a lab for 2 hours to test and play with Dbvisit StandbyMP.

Using Control Center to setup the Dbvisit configuration

And I can click on the link and start the Control Center.

I created a new Oracle configuration.

Using Control Center to setup the Oracle Standby Database

In the dashboard, I clicked on Setup Now.

I could directly ssh the primary host with the primary database and check used space.

maw@DBI-LT-MAW2 ~ % ssh [email protected]
The authenticity of host 'oracle1-2a33707ef81949f1.mp-standby.com (54.79.30.38)' can't be established.
ECDSA key fingerprint is SHA256:DpFwIUpbaidFWJG0R41nQ4DLw17BJQRl+CSse9yPaEo.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'oracle1-2a33707ef81949f1.mp-standby.com,54.79.30.38' (ECDSA) to the list of known hosts.
[email protected]'s password:
Last login: Fri Feb 24 08:06:57 2023
The Oracle base has been set to /u01/app/oracle

oracle@localhost[/home/oracle]: df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p3   15G   11G  3.4G  77% /
devtmpfs        7.7G     0  7.7G   0% /dev
tmpfs           7.7G     0  7.7G   0% /dev/shm
tmpfs           7.7G  8.6M  7.7G   1% /run
tmpfs           7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/nvme1n1    9.8G  2.6G  6.7G  28% /u02
/dev/nvme0n1p1  976M  164M  746M  18% /boot
tmpfs           1.6G     0  1.6G   0% /run/user/54321
tmpfs           1.6G     0  1.6G   0% /run/user/1000
oracle@localhost[/home/oracle]:

And check the database files.

oracle@localhost[/home/oracle]: sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 24 08:32:52 2023
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select SUM(BYTES/1024/1024/1024) from v$datafile;

SUM(BYTES/1024/1024/1024)
-------------------------
	       1.74316406

SQL> select SUM(BYTES/1024/1024/1024) from v$tempfile;

SUM(BYTES/1024/1024/1024)
-------------------------
		   .03125

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u02/data/SRC/system01.dbf
/u02/data/SRC/sysaux01.dbf
/u02/data/SRC/undotbs01.dbf
/u02/data/SRC/users01.dbf

SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------
/u02/data/SRC/temp01.dbf

I created directories on both primary and standby hosts to store database backup files in order to create the standby.

oracle@localhost[/home/oracle]: sudo mkdir /u02/backup
oracle@localhost[/home/oracle]: sudo chown oracle:oinstall /u02/backup

I completed the configuration before starting the standby database creation.

Creation of the standby database started.

To finally have our standby database created.

And we can confirm login on it with sqlplus using a new ssh session on the standby host.

oracle@localhost[/home/oracle]: ps -ef | grep [p]mon
oracle    6560     1  0 08:44 ?        00:00:00 ora_pmon_SRC

oracle@localhost[/home/oracle]: . oraenv
ORACLE_SID = [oracle] ? SRC
The Oracle base has been set to /u01/app/oracle

oracle@localhost[/home/oracle]: sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 24 09:01:32 2023
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select host_name, instance_name, status from v$instance;

HOST_NAME  INSTANCE_NAME    STATUS
---------- ---------------- ------------
oracle2    SRC		    MOUNTED

SQL> select name, open_mode, database_role from v$database;

NAME	  OPEN_MODE	       DATABASE_ROLE
--------- -------------------- ----------------
SRC	  MOUNTED	       PHYSICAL STANDBY

SQL>

Send/apply archive log with the GUI between primary and standby

I can start a log shipping and apply.

The standby is synchronised with the primary.

Graceful switchover

Let’s do a graceful switchover between primary and standby database.

And switchover has been completed successfully. Oracle2 is now the primary database.

oracle@localhost[/home/oracle]: sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 24 09:24:38 2023
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> set line 300
SQL> col host_name for a30
SQL> col host_name for a10
SQL> select host_name, instance_name, status from v$instance;

HOST_NAME  INSTANCE_NAME    STATUS
---------- ---------------- ------------
oracle2    SRC		    OPEN

SQL> select name, open_mode, database_role from v$database;

NAME	  OPEN_MODE	       DATABASE_ROLE
--------- -------------------- ----------------
SRC	  READ WRITE	       PRIMARY

SQL>

Snapshot database

Let’s create a Test/Dev Snapshot database on the new standby host (oracle1).

Unfortunately, this is not possible.

Because there is no LVM volume on the VM, which is a snapshot requirement.

oracle@localhost[/home/oracle]: ps -ef | grep [p]mon
oracle   12036     1  0 09:21 ?        00:00:00 ora_pmon_SRC
oracle@localhost[/home/oracle]: df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p3   15G   11G  3.1G  78% /
devtmpfs        7.7G     0  7.7G   0% /dev
tmpfs           7.7G     0  7.7G   0% /dev/shm
tmpfs           7.7G  8.7M  7.7G   1% /run
tmpfs           7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/nvme1n1    9.8G  2.1G  7.2G  23% /u02
/dev/nvme0n1p1  976M  164M  746M  18% /boot
tmpfs           1.6G     0  1.6G   0% /run/user/54321
tmpfs           1.6G     0  1.6G   0% /run/user/1000
tmpfs           1.6G     0  1.6G   0% /run/user/0

Activate the standby (failover)

Let’s simulate that our primary database running on oracle2 crashes.

oracle@localhost[/home/oracle]: sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 24 09:36:45 2023
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select name, open_mode, database_role from v$database;

NAME	  OPEN_MODE	       DATABASE_ROLE
--------- -------------------- ----------------
SRC	  READ WRITE	       PRIMARY

SQL> shutdown abort;
ORACLE instance shut down.
SQL>

The observer automatically saw that the primary is not available any more.

The observer is informing us that as our selected emergency action is set to notification only (observer only), it will not do an automatic failover.

We will do it ourself and activate the standby database running on oracle1 host.

Currently oracle1 node is standby.

oracle@localhost[/home/oracle]: sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 24 09:43:50 2023
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select name, open_mode, database_role from v$database;

NAME	  OPEN_MODE	       DATABASE_ROLE
--------- -------------------- ----------------
SRC	  MOUNTED	       PHYSICAL STANDBY

SQL> select host_name from v$instance;

HOST_NAME
----------------------------------------------------------------
oracle1

SQL>

Let’s run the failover (standby activation).

As we can see, the oracle1 database has been activated and is now the primary database.

SQL> select host_name from v$instance;
select host_name from v$instance
*
ERROR at line 1:
ORA-03135: connection lost contact
Process ID: 14221
Session ID: 8 Serial number: 53938


SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

oracle@localhost[/home/oracle]: sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 24 09:51:10 2023
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select host_name from v$instance;

HOST_NAME
----------------------------------------------------------------
oracle1

SQL> select name, open_mode, database_role from v$database;

NAME	  OPEN_MODE	       DATABASE_ROLE
--------- -------------------- ----------------
SRC	  READ WRITE	       PRIMARY

SQL>

Summary

This is a quite good environment Dbvisit is providing us to test and play with the product. We can quite test everything, just not the snapshot features. Having access to both hosts in ssh, I could also create another database if I would like to.