Let’s face it: DBAs are frequently seen as a bottleneck. By some, they are even seen as a part of the bureaucracy, the shady organization seemingly designed to stop things from getting done. But to be fair, this is generally due to our central role in the application stack. Developers depend on us for a sane environment or in most cases, many sane environments. On the flip side, DBAs depend upon the system administrators for servers, storage, operating system, etc. But more importantly, DBAs are often victims of their own requirements: fault tolerance, reliable backups, performance, scalability. Giving these requirements up is out of the question; hence the bottleneck. The answer is not to reduce our requirements, but do them smarter.
In the rest of this post, we will look at a few new(ish) technologies which can help us accomplish that goal.
Have you ever felt embarrassed when you tell a developer or project manager that you will need a few days to deploy a new QA environment? Or that you really have to think about refreshes because they’re just so time consuming and complex? I hate being in that position, because it’s a position that is generally a result of being on an inflexible platform. And as mainstream and comfortable as it is, the standard “box plugged into a SAN” is a highly inflexible platform most of the time.
Delphix is a software appliance which uses a concept called “thin provisioning” to quickly deploy and refresh QA, development, reporting, testing, etc. environments. It currently works with Oracle and MS SQL Server, and this is what it does: it uses ZFS concepts and proprietary storage and compression logic to near-instantly deploy read/write database environments from any configured source at any stored point in time with almost no storage footprint on the target side.
To accomplish this, source databases are configured in Delphix and cloned to a disk area attached to the Delphix host. The data is compressed, filtered, and stored in DxFS (Delphix File System) where they can take advantage of extremely efficient caching for concurrency and block mapping for versioning. Change records are also shipped from the source to Delphix, and Delphix keeps a running history of changes to each source in order to enable point in time deployments.
A target is any system running Oracle. The target environment hooks into Delphix and, upon deployment, creates an instance and points to the source data. Delphix presents the point in time source data as datafiles to the target which can be opened and read. Writes are made to a dedicated area on the Delphix host which is versioned over the source data via block mapping. The result is as many read/write environments as you need as quickly as you need them with minimal disk requirements. In the end you save money on disk space, money on man hours, and time to deployment which eliminates the DBA as a bottleneck on critical development environments.
Honestly, this technology sounds almost too good to be true. Imagine being able to create unlimited QA servers, instant reporting databases, and daily refreshed development databases on the PC of every developer. If you want to see it in action, have a look at this video. You can also get a more comprehensive (and most likely better explained) explanation of technical details here.
As an Oracle-centric kind of guy and a huge fan of Oracle products and tools, you would think I’d be talking about Exadata here. And Exadata is an amazing ‘engineered system’, capable of mind blowing batch performance, cluster configurations, and more. No doubt there will be posts about Exadata at a later time, but this one focuses on a technology called Vblock because of a major factor: it is application neutral.
You can run nearly anything on Vblock, from Windows to Linux to Oracle to Apache to…well, iTunes. Likewise you get to choose how your disk is configured (RAID level), where you want virtualization, and how you want to manage backups. Behind the scenes is a robust compute/network/storage stack which takes advantage of massive parallelization and a mix of disk resources (Flash, SAS, SATA) with caching mechanisms that dynamically tier data where it needs to be based on your working data set. And most importantly, they claim to provide a “5 nines solution”, which means it has a 99.999% uptime or 5 minutes per year.
My real attraction to this type of system is that it gives DBAs a critical tool they need: a pool. A Vblock System would be ideal to setup as a Database Farm, where DBAs can monitor performance, fault tolerance, and capacity in a large node based environment and quickly create new systems on demand. Instead of requiring new quotes, POs, and management processes every time a new database is required this solution would allow huge flexibility in deployments while providing outstanding compute performance and fault tolerance on the backend. This would include any database or version, clustering or standalone, virtual (VMWare is a collaborator on the Vblock environment) or physical system.
Every day new innovations are being made in CPU and network speeds (less so with disk). New solutions which incorporate many of these solutions into a flexible and heterogenous architecture are going to appeal greatly to businesses and forward thinking IT groups.
Deploying new environments is incredibly important, and with the two technologies I just mentioned it can become a trivial exercise. But at the same time, there is still the need at times for traditional replication or standby databases. Oracle provides technologies like DataGuard and Streams, but the former requires Enterprise Edition (sometimes not cost effective) and the latter can be unnecessarily complex. Software like Golden Gate is incredibly flexible, but also fairly expensive for what it does.
DBVisit Standby is a third party disaster recovery software which can either replace or augment Oracle DataGuard. DBVisit Replicate can replicate data between Oracle, MySQL, and SQL Server, and provides a very user friendly interface to get the work done. To me, the coolest part of the software is that it can emulate and in some cases beat the features of Enterprise Edition, even on a Standard Edition database.
Oracle Enterprise Edition costs $47,500 per unit, and the number of units required is based on your CPU cores times a core factor. If you are running a standby database, both your production server and standby server must be fully licensed. So if we have two Intel x3960 boxes with 2 CPUs with 8 cores each, we would pay a list price of $47,500 * (2 * 8 * 0.5) * 2, which is $760,000. Even with a significant discount that is a significant amount of money. Standard Edition, on the other hand, is licensed by the socket at $17,500 per socket for a total of $17,500 * 2 * 2, which is $70,000. If you can live without Enterprise features and add-ons like AWR/ASH, this is a hugely significant cost savings. DBVisit Standby could be used to fill the disaster recovery gap here and then some; for instance, a new feature of DBVisit called Standby Database Synchronize which can recover a standby even in cases where NOLOGGING was used, or where archive logs are lost or behind. Even with Enterprise Edition, that is a tempting feature.
Simplicity is a big part of the decision as well. If you have Enterprise Edition, you can definitely use Streams if you wish for replication purposes. However, DBVisit is extremely easy to configure and use. A few weeks ago I made a (tongue in cheek) comparison of replication platforms:
Though GoldenGate is extraordinarily powerful, it is also a large and costly centralized environment. DBVisit is quick; I can pretty much guarantee you’ll have replication flowing (perhaps in many directions) within the day.
There are tons of new technologies coming out from databases to hardware to network to handheld devices. All too often, the DBA will learn about these technologies from management or other groups when it would behoove them to be the flag bearers for the new tech at their company. Keep an eye out for the real movers and shakers: the tech that makes it easier and safer to deploy quality systems.
Errata: Upon review, Streams is not an Enterprise Edition feature. It can be used in SE and SE1 as well.