Posted by: Colin Smith
Delphix, simply put is a database virtualization tool. That is what it does and you may ask why is that meaningful and why would I ever want to use something like this. I have many answers to that question and I am sure that others have many more that I have not thought of. So let me go over the core of what delphix does, at a very high level, and share with you some use cases where I see this being a very beneficial technology.
At a very high level, Delphix lets you create what they call a DSource. This is the master copy of the source database. For instance, I create a DSource of a production database. I do this based off of production because, production should be your master data for that database. It is what the business is using everyday. So I create the DSource and that basically means that I take a full backup of the database and I restore that database to what Delphix calls the PPT server. This is just a SQL Server that is always restoring your DSources. These databases are always in a recovering state and are not accessible at all. These have to be in a restoring state, becuase Delphix is continually restoring your transaction log backups to the databases on the PPT server. This keeps your DSource in sync with your production database, well at least as in sync as it can be based on how often you take transaction log backups. This is a great way to sync things up as it adds no additional overhead to your production database, I mean, you are already doing transaction log backups in production anyway right? Anyway, now that we have that source, we can provision a virtual database or VDB to another target server, or even the PPT server if you really wanted. That is the very high overview of what Delphix does. Now lets look at what that gets you the DBA.
First lets talk storage. I currently have a 550Gig database that I decided to put into Delphix. Delphix took a full copy only backup and restored that backup to the PPT Server. What is cool about Delphix though, is that PPT copy of the database is only 120Gigs. Delphix is able to do compression in order to save you disk. Now when I provision my VDB from that source, Delphix is able to do that to the target server and my VDB will be a couple of Megs. So now I have one full copy of my production database and I have only used a bit over 120Gigs of storage. Now lets say another developer comes up and says, I have a project that I am working on as well and I would like a copy of that database as well, but I can not really share it with the other dev for whatever reason. OK I provision a second VDB and now both developers have a copy to work in, and you guessed it, this only took a few more Megs of storage. Oh and on top of that, to provision the VDB, it only takes me about 5 minutes per VDB. How useful is that? To me that is a good benefit. Think about moving all of your DEV and QA databases into VDBs. You can provision multiple databases, that are each fully functional, it takes minutes, you can provision to different points in time, and it takes latterly Megs of disk space.
So what happens when developers start to make changes in the VDB? Well that is also very cool. Delphix tracks all the change blocks only. So the VDB will grow but it will always be very small compared to having a full physical copy of the database. So depending on your situation, this could save you Millions of dollars in storage alone. Another great thing is that you can create a snap of the VDB. Then you can provision another VDB off of that VDB at any point in time that you have a snap for. Developers love this. And as a DBA so do I, because it makes it so easy for me to get them what they need and I can do it fast.
Now lets talk about time savings. For the database that I used as an example at 550 Gigs it would take about 6 to 8 hours to refresh a DEV or QA environment. This is time when developers and QA testers and possibly others that are part of the project team are dead in the water. So say the project requires that database to be refreshed two times a week. Well that is roughly two days that all those people are wasting and I am spending all this time babysitting the process as well. Now imagine that you can do that in minutes. Now everything about the project speeds up and you are saving the company a ton of money in labor on that project.
What I have mentioned are just a few of the benefits and ways to help you justify the cost of a product such as this. Right now Delphix does support SQL Server but the GUI is very limited, but since I have learned how it works and built some wrapper scripts around it, I find it very functional and I am looking forward to the product being fully baked. So if all this sounds good to you, I have given you two ways that you can justify the cost. More to come on this.