Dizwell Informatics

News from Nowhere

Churchill – A Framework for Advanced Oracle Infrastructure

1.0 Introduction

Building a RAC or running Data Guard is not hard, but getting the infrastructure in place to let you build and run them in the first place… well, that requires quite a lot of System and Network Administration skills -skills which, in my opinion, it’s not reasonable to expect a DBA to possess.

In most production environments I know, for example, it’s not the DBA that builds servers or installs operating systems, sets up DNS servers, creates NFS shares, configures NTP time servers or works out whether DHCP is configured correctly: all those jobs would be done by dedicated sysadmins (who, in turn, are likely to know little of the inner workings of even the humblest Oracle databases).

So learning RAC and Data Guard at home can be a tricky experience, not because those things are hard in themselves, but simply because all the system and network plumbing required to make them happen are fiddly and easy to get wrong.

So I invented the Churchill Framework: a way of building a complex, virtual environment on which anything from a simple single Oracle instance database to a multi-instance RAC with active Data Guard can be built simply and without error.

Put simply: Churchill automates away the network-y and system-y things, letting you concentrate on the Oracle-y stuff instead.

2.0 Software and Hardware Requirements

Churchill 1.7 (and later) work with 64-bit RHCSL 6.8 (and later -but not version 7.x) and Oracle 12.1.0.2 (but not any version of 11g, which is now too long in the tooth to be a serious contender for your attention).

The full Churchill framework, when built, would look like this:

…and that lot would require you to be running about seven virtual machines on a pretty hefty physical PC: my main PC at home has 32GB of RAM and can just about cope, but it’s not going to be a fun experience on my 16GB laptop, let alone my 8GB ultrabook.

You will therefore probably have to decide which parts of the Churchill framework you want to build. For a modest 8GB latop, for example, you could build Churchill and a standalone Alpher (which uses ASM for its database storage). On a 16GB latop, you’ll easily be able to build Churchill and an Alpher/Bethe 2-node RAC. You might also be able to squeeze a Wilson Enterprise Manager server into the picture. For the full framework, as I say, you’ll need something much more substantial.

But the point is: you pick and choose what bits of the framework you need to work with at any time. It’s not expected that you will build all of it every time.

3.0 A proposed workflow

You will start your work with the Churchill framework by building a Churchill server. This is a very modest box, on the whole: it only needs 512MB RAM and about 75GB of hard disk space. Churchill is key to making the rest of the framework trivially easy to build: it’s the functionality it possesses that makes it possible to automatically build all the other component servers. So without Churchill, you’re going nowhere else!

To get familiar with the way the framework operates, I’d next suggest you build an Alpher standalone server. It’s a 5GB RAM, 40GB hard disk server that runs a single Oracle instance, but using ASM as its database storage technology. So you get to practice ASM and grid infrastructure management, together with basic database management, in a resource-light way.

Your next step ‘up’, as it were, would then be to destroy that Alpher standalone server and replace it with a 2-node Alpher/Bethe RAC. This will give you hands-on experience of how to operate and manage a true multi-instance clustered database environment.

I’d probably then suggest, physical hardware permitting, adding a Wilson server to your virtual environment. This runs Enterprise Manager (as old-timers call it) or Grid Control (as new-timers more properly call it!), and provides you with a rich, graphical and browser-based tool to manage and administer all your database servers from one convenient location. It’s not essential (plenty of DBAs are old-school enough to rely on SQL*Plus and a command line, no GUI required), but it’s a good skill-set to master if you can.

Finally, if you’ve got the hardware resources available, I’d build an Attlee server together with a 2-node Geiger/Dirac Data Guard RAC. This will act as a standby to the Alpher/Bethe primary site -and you’ll now have a realistic and practical environment in which to practice the heady arts of active data guard management. Now you can learn how to failover, switchover, monitor the state of the standby… and all those other complex parts of advanced Oracle database administration.

4.0 Getting Started

Please note: at the present time, the Churchill documentation is in a state of flux. Documents listed below in red link to the old documentation for version 1.6 and earlier. Documents listed normally refer to version 1.7+.

To do anything with Churchill at all, you’ll first need to download the Churchill ISO:

Next, you’ll need to work your way through the Churchill documentation, in order. Start by building your own Churchill server (the existence of which is a requirement for the creation of anything else). Then work your way through the other documents as you need to build each framework component:

One of the keys to making Churchill framework server builds as easy and as automatic as possible is mastering the typing of a ‘bootstrap’ command when first booting up your new servers.  The documents above will explain how to do that in detail, but you might prefer the short version:

Finally, here are a couple of ‘background’ bits of documentation: the FAQ and the Changelog:

5.0 Churchill on Windows ??!

Churchill is, as I’ve said, an entirely RHCSL Linux-based affair. The technology it uses to automate server and infrastructure builds is simply not available on other O/Ses (they all have their equivalents, to be sure: but they’re not actually the same as the one RHCSL uses).

However, I’ve had many requests for a ‘how to do a virtual RAC on Windows’ article, and I’ve accordingly written up a how-to-do-RAC-on-Windows, with zero automation and everything built by hand: