Oracle Blog

Availability Engineering

Thursday Jan 15, 2015

Another new feature of Oracle Solaris Cluster Geographic Edition

A few weeks ago I wrote about a new feature for Geographic Edition: DR Orchestration, which we added in Oracle Solaris Cluster 4.2. With the latest update to 4.2, SRU1, we've completed the testing of another Geographic Edition feature which can make DR Orchestration even more useful - we can now support Oracle Data Guard replication control for a remote database.

As I described before, a multigroup can combine several protection groups so that they can be switched together in a coordinated manner. That enables a service constructed out of multiple tiers, on multiple clusters, to be managed as a unit.

Since each tier is represented by a protection group it might seem necessary that each tier be running Oracle Solaris Cluster, which could be inconvenient if one of the tiers is running only an Oracle RAC database. There is no absolute requirement to use Oracle Solaris Cluster in that configuration; the systems might not be running any cluster software, or perhaps running Oracle RAC Clusterware. An example of such a configuration is the Oracle SuperCluster Engineered System.

In practice, however, we can use some features of Oracle Solaris Cluster and the Oracle Database to include such a tier in an orchestrated Geographic Edition configuration. The two features we're using are:

HA for Oracle External Proxy

This is a data service which can be used to reflect the status of an Oracle database which is running on a remote system, so that local Oracle Solaris Cluster resources and resource groups can associate dependencies with it. You can find more information about it at: http://docs.oracle.com/cd/E39579_01/html/E52343/index.html

Remote Database Connectivity

This is a standard feature of the Oracle Database. A service name that is configured in the TNSNAMES.ORA file can identify a database that is running on a remote system, so that control operations from local sqlplus and dgmgrl (Data Guard broker) commands will operate on the remote database instance. To take advantage of this you don't even need to install a full Oracle database locally, you can just install the Oracle Database Client software, see: http://docs.oracle.com/database/121/SSCLI/toc.htm

Put these together, and...

By using these two features together you can now create a local Geographic Edition protection group (PG) that uses Oracle Data Guard replication, but which manages a database instance on a remote system. You just need to provide the name of a resource group that contains an external proxy resource, instead of an Oracle RAC or failover database resource. As far as the cluster configuration is concerned, this behaves just like an ordinary local protection group, and so it can be included in a multigroup as part of a DR Orchestration configuration. When you switch over that multigroup, the software will contact all the systems configured in the protection group, local and remote.

Now you can fully orchestrate all tiers of a service and control them from a system that is part of an Oracle Solaris Cluster configuration, even if the database tier is on a system that isn't running Oracle Solaris Cluster.

Tuesday Nov 25, 2014

With the increasing use of virtualization and cloud-based services, a service might no longer be confined to a single cluster. Disaster Recovery Orchestration enables an administrator to control multiple service tiers, on multiple clusters, with a single command.[Read More]

Tuesday Dec 06, 2011

We are very happy to announce the release of Oracle Solaris Cluster 4.0, the first release providing High Availability (HA) and Disaster Recovery (DR) capabilities for Oracle Solaris 11. This release comes within a few of the weeks of the release of Solaris 11.

Oracle Solaris Cluster 4.0 offers the best availability for enterprise applications with instant system failure detection for fastest service recovery. It includes out-of the box support for Oracle database and applications such as Oracle WebLogic Server and is pre-tested with Oracle Sun servers, storage and networking components. It is optimized to leverage the SPARC SuperCluster redundancy and reliability features and delivers the high availability infrastructure for the Oracle Optimized Solutions.

Thursday Jun 25, 2009

At first sight, a single-node cluster may seem to be a pointless thing. After all, what sort of high availability can you get from one node?

That might be a valid point if HA alone were the only consideration, but there are quite a few other ways in which single-node clusters can be useful. Two of the most useful ones are:

As part of a Geographic Edition (SCGE) Disaster Recovery (DR) configuration.

For development and test.

Disaster Recovery with SCGE

SCGE allows two clusters, separated by enough distance that a disaster at one site will not affect the the other, to be managed together. Several data replication products (AVS, SRDF, Oracle DataGuard, etc.) can be managed within this two-cluster partnership to ensure that the DR site has up-to-date information, ready to take over service.

Obviously this configuration requires two clusters, but if we assume that the DR site will be needed only in the (hopefully rare) instance of a disaster, and probably occasionally during maintenance of the primary, there is no need for it to be an exact copy of the primary site. In fact, it can be a single node. All that is required is that it be running Solaris Cluster software, i.e. it can be a Single-Node Cluster.

Carrying this idea further, it is also fully supported to have single-node clusters at both primary and secondary sites.

As I mentioned at the start, this won't give very much in the way of High Availability in the event of a local primary-site server failure, but you may not need that. Strange though it might seem at first glance, HA isn't a prerequisite for DR, it depends entirely on your business continuity needs (and that's a subject for a future blog entry).

No special tricks or configurations are required for this, it just works “out of the box”. With two single-node clusters and AVS (SNDR) replication between them, you have a fully-supported Disaster Recovery configuration, implemented with no special additional hardware. Larger sites with external storage arrays and replication also work just as well with a single-node cluster as with a multi-node configuration.

Development

Another place where a single-node cluster can be really useful is when developing cluster-based software, especially cluster agents. With the support for Solaris Containers (aka zones) that was added in Solaris Cluster 3.2, this has become even easier.

Fully testing a cluster agent requires that you simulate failures, such as system crashes or disconnections, and ensure that the agent reacts correctly. This is also true when testing that a given application operates correctly in a cluster environment. It's not something that you'd normally want to do on your desktop. However, providing an extra pair of systems in a cluster as lab test equipment for each developer is costly, and takes up valuable lab space and energy.

The solution? A single-node cluster, with some zones configured. With Solaris Cluster 3.2 you can specify zones (in the format of nodename:zonename) in the nodelist of an application resource group, see the clrg(1CL) manpage. The cluster software, running in the global zone, manages those applications just as if they were on separate physical nodes. You can request that the resource groups be switched between zones, or even crash or halt zones to test that automatic recovery is performed correctly. All without leaving your desk or rebooting your development system.

And for my next trick...

I hope that's given a brief idea of what can be done today with a single node. What might the future hold? Well, people will jump on me if I promise anything, but I really like some of the ideas that the Open HA Cluster guys have been demonstrating. Take a look at Thorsten's whitepaper if you want to try clustering VirtualBox systems - on your laptop!