Kyle

Delphix Express – virtualize your first database (and application)

I have previously announced that Delphix now has a free version available called Delphix Express as well as how to install Delphix Express.

In this blog will look at an example of virtualizing your first database and not only the database but virtualizing the application as well.

What does virtualizing mean? Like in the world of virtual machines where we make multiple virtual machines on one set of hardware, in the world of virtual data we make many read/write copies of data with one actual physical copy of the data. We do that by sharing unmodified data and storing each version of a data block that gets modified and keeping that modified version of the block only visible to the clone that made the modification.

Here is the demo video:

Delphix does 3 things

  1. collect data from source (usually a “production” database)
  2. manage virtual data time flow on storage allocated to Delphix
  3. provision virtual copies of data to target machines, typically developer and QA environments. To provision data to target machines, Delphix mounts thin clone copy of the database files onto the target machines using NFS and then Delphix starts up and recovers the database to the point in time requested.

Here is what the Delphix Express web UI screen looks like after it has automatically linked with the source VM and the target VM from the “landshark” demo environment.

On the top left we have a set of folders created automatically by the landshark demo configuration. The folders are used for organizational purposes as well as a way to limit user visibility to what environments are on Delphix.

In the “Sources” folder there are two data sources linked into Delphix. One is a web application “Employee Web Application”, the other which has been selected is the “Employee XE DB”.

In bottom right is a provision button. When we click this button we can provision the selected source onto a target machine.

We select the target machine on the first dialogue popup window:

Notice that the “LINUXSOURCE” is selected on the left hand side of the dialogue. We get an error because of this because we’ve disallowed provisioning back to the source. The source is where the data comes from, and Delphix is capable of provisioning a thin clone back to the  source host, but generally that is not what we want so we have chosen an option for the LINUXSOURCE not to allow provisioning.

We click on “LINUXTARGET” instead.

We also want to change the “Database Unique Name” to “devdb” because we are also going to provision a thin clone of the web application and in the web application we are going to specify the database to connect to as “devdb”.

In the next dialogue I’m going to chose the “Dev Copies” folder to put the virtual database into.

The next dialogue is to add any pre or post provisioning scripts and I’ll just skip this and hit “Next”

The final popup window is a review of the choices we’ve made, and to finish we just click “Finish”

In the “Dev Copies” folder on the left we will see the new virtual database appear and a status as to how complete the job is:

While the virtual database is provisioning we can provision a copy of the web application as well. I’ll click on the web application source on the left and then click “Provision” on the bottom right:

The two important steps here are to note the “Webserver  Port” and to make sure the “Database Service Name” is the same as the virtual database we provisioned:

Like the virtual database, I’ll put the virtual web application in the “Dev Copies” folder

and I’ll just hit “Next” on the pre and post provisioning page:

Finally, I’ll see the review of choices and click “Finished”

Now it takes a couple of minutes for the database and web application to provision to the target.
If we try to access the web application, but typing the IP address of the target machine colon the web application port number, and we do this before the web application finishes provisioning, then we will get an error:

If we access the web application after it finishes provisioning but before the database finishes provisioning (the database will take longer than the web app) we will get an error from the web application trying to connect to the database:

When the virtual database provisioning finishes then we see the working web application:

The Delphix Express UI with the new virtual database and virtual web application looks like:

In the following blog posts we will see