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.