クラスタのタイプを2種類から選択可能に
Oracle Databaseの代表的なクラスタ構成とい言えば、Oracle Real Application Clusters(RAC)です。アクティブ-アクティブ型のクラスタであるため可用性、対障害性、拡張性に優れ、ノード間のブロック転送(キャシュ・フュージョン)によってディスクI/Oを削減することができます。
Oracle Database 10gからStandard Editionでも使用可能になったため、2ノードの小規模なクラスタから数十ノードといった大規模なクラスタまで幅広く採用されるようになりました。また、Oracle Database 11gR2(11gR2)からはOracle Real Application One Node(RAC One Node)が新しく提供され、アクティブ-スタンバイ型のように片方だけのライセンスで可用性を確保できるようになりました。Oracle ExadataやOracle Database ApplianceなどのOracle Engineered SystemsでもRACが採用されており、ミッション・クリティカルなデータベース基盤を構築するには欠かせない機能です。
Oracle Database 12c(12c)では、クラスタ構成のタイプを「標準クラスタ」と「Flex Cluster」の2種類から選択できるようになりました。標準クラスタは11gR2までのRACと同じ構成です。データベース・インスタンスが起動するノード同士をインターコネクト(ノード間ネットワーク)で結び、すべてのノードから共有ストレージ上にあるデータベースにアクセスします。
Flex Clusterは12cから登場した新しい構成です。ハブ・ノードと呼ばれる標準クラスタと同じデータベース・サーバに加え、リーフ・ノードという共有ストレージへのアクセス・パスを持たないアプリケーション用のサーバをまとめて管理できるようになりました。
リーフ・ノードにはハブ・ノードと同じくOracle Grid Infrastructureがインストールされていますが、ストレージへのアクセスを行わず、リーフ・ノード間の通信(ハートビート)もありません。ハブ・ノードのいずれかと接続しているだけという軽量タイプの新しいノードです。ハブ・ノードがデータベース・インスタンス用であるのに対し、リーフ・ノードはアプリケーションやWebサーバなどを稼働させるために使われます。
Grid Infrastructureがインストールされているというのがポイントで、アプリケーションやWebサーバがクラスタのリソースとして管理されます。そのため、リソースの依存関係を利用してデータベースの起動停止とアプリケーションの起動停止を連動して行うといった操作を行うことができます。また、リーフ・ノードはハブ・ノードと異なるレイヤとして扱われるため、リーフ・ノードに障害が発生してもハブ・ノードにあるDBインスタンスには影響を与えません。
標準クラスタとFlex Clusterのいずれを使用するかは、インストール画面で選択することができます。一度標準クラスタで構築してからFlex Clusterに変更することはできますが、Flex Clusterから標準クラスタに変更することはできません。また、現時点でWindowsにおけるFlex Clusterはサポートされていないのでご注意ください。
リーフ・ノードとハブ・ノードの指定もインストール時に行いますが、後から変更することもできます。ただし、ハブ・ノードはストレージに直接アクセスできなければなりません。
ハブ・ノードには従来のRACと同じくOracle DatabaseやRACオプションのライセンスが必要ですが、リーフ・ノードには必要ありません。リーフ・ノードにインストールされるGrid Infrastructureは無償で提供されており、Oracle LinuxやSolarisなどのオラクル製品と組み合わせて使用している場合はサポートを受けることもできます。