2018-07-05 | Adam Boliński

Is this a revolution? We do not need a license?

Hello this is first of posts series  regarding my work which were focused to create backup/standby service/hardware to prevent needed to buy additional license (for standby) and to be sure that your environment not loose any transaction in case of Disaster  production Oracle DB server, in other words I would like to create something similar in function as ZDLRA (but better) without need to buy additional Oracle license or ZDLRA appliance.

In this post I will cover and show that my equipment/service is working on and  performance of production database  is not degraded, I will not cover detail information , how it is build and how software is working (this will be done in next posts) but I will show that it is working how was designed.

I will try to show as much I can ,  I’m starting to prepare Web interface so now all working functionality is in command line.

This was short introduction , now I would like to present TNT NoLose Backup Appliance , this is small server (depends on need) with  SAS/SATA Hard Drives (in demo server there is only 8 SATA disks 1TB) , on this disks there are ZFS with compression and encryption (if you need) , this server is connected to main production database and additional spare server with Oracle Database  binaries (but it is not necessary).

First of all let’s check if production database is degraded by this TNT resources connected to production database , we will test it using SLOB software, let’s check it out :

 

 

 

As you can see nothing alarming , so next step is to create first backup but before that we will check it out size of database

SIZE_IN_GB
----------
1612

In this demo lab our database I/O is located on very powerful  NVMe storage (overall size 3.2TB) ,  so let’s fire up first initial backup of our test database :

$ /usr/tnt/init_backup.sh
Backup Was Done My Master !!!
Total Time : 37 min 52 sec.

 

So let’ check how will be working if we change 20% of Records

uname -n
dbserver1.tiento.pl
$ /usr/tnt/diff_backup.sh
Backup Was Done My Master !!!
Total Time : 09 min 52 sec.
Database Backup Consistent Time : 22-Jun-2018 19:21:21

Ok  but this is not something difficult to do it, let’s simulate disaster with dbserver1 but just before let’s create table

 
uname -n
dbserver1.tiento.pl
SQL> create table system.test_recovery as select * from dba_objects;
Table created.
SQL>exit
pwd
/u01/app/oracle/oradata/tnt
rm -Rf  *

After that I kill pmon process on dbserver1.tiento.pl, now we will login on dbserver2.tiento.pl , this server have  installed Oracle binaries, connection to backup TNT NoLose Backup Appliance and local storage resources for DB data files.

Now we are login on dbserver2 and we must choose what recovery option we will be using  , we can restore all data files to local storage (on dbserver2) or we can work remotely on this data and recover at night or in weekend.

uname -n
dbserver2.tiento.pl
/usr/tnt/switch_in_place.sh

Let’s checkout what is going on in dbserver1 logs

Oracle process Down 
Disconnect TNT NoLose Resources
Disconnect Successful

Now let’s see what is going on in dbserver2 logs  (we are doing immediate service restore)

Connect TNT NoLose Resources
Connect Successful
Switch to TNT NoLose (In-Place switch) 
Remap Oracle Resources 
Remap Successful 
Startup Oracle Database
Oracle is started
Switch Time 05 min 34 sec

So let’s check it if this table (before simulated disaster) exist on dbserver2.tiento.pl

select count(*) from system.test_recovery;

COUNT(*)
----------
72633

You can see that we did not loose any small pice of data even this  test table created just before simulated disaster.

I know that everybody is wondering how this database will be working if all resources are located on on TNT NoLose Backup Appliance, I will show up on next posts but I can ensure that performance is ok.

This post was quick introduction to show my work , more to come in next few months.