Oracle Real Application Clusters(Oracle RAC)を学んでいると、「各ノードのOracleインスタンスを管理し、クラスタ全体を制御する基盤ソフトウェアは何か」という点で、Oracle Grid Infrastructure、Oracle Clusterware、Oracle ASMの関係が分かりにくくなることがあります。
整理すると、Oracle RAC環境のクラスタ基盤として導入されるのがOracle Grid Infrastructureであり、その中にOracle ClusterwareとOracle ASMが含まれます。そして、ノードやネットワーク、データベース、インスタンス、リスナー、サービスなどのクラスタリソースを監視・制御する中心的な役割を担うのがOracle Clusterwareです。
したがって「RAC環境の基盤ソフトウェアはOracle Grid Infrastructure」という理解は概ね正しいものの、より正確には「Grid Infrastructureという基盤の中で、Clusterwareがクラスタ制御を、ASMが共有ストレージ管理を担当する」と整理すると理解しやすくなります。
- Oracle Grid Infrastructureとは何か
- Oracle RACでは各ノードにインスタンスが存在する
- 各ノードのインスタンス管理を担うのはOracle Clusterware
- Grid InfrastructureとClusterwareをどう区別すればよい?
- Oracle ASMはクラスタ制御ではなくストレージ管理を担当する
- RACでGrid Infrastructureが必要な理由
- Oracle Databaseソフトウェアとの違い
- Clusterwareはデータベース以外のリソースも管理する
- CRSという言葉は何を意味する?
- srvctlは何をするコマンド?
- ノード障害時には何が起こる?
- Oracle RACとActive-Standbyクラスタの違い
- Grid InfrastructureをインストールするORACLE_HOMEはDatabaseとは別
- 試験問題ではどの表現を選べばよい?
- 「各ノードのインスタンスをGrid Infrastructureが動かしている」と言ってよい?
- 初心者向けに一枚で整理すると
- まとめ|RACの基盤はGrid Infrastructure、クラスタ制御の中心はClusterware
Oracle Grid Infrastructureとは何か
Oracle Grid Infrastructureは、Oracle Databaseのクラスタ環境を支えるための基盤ソフトウェア群です。Oracle RACを構築するときには、通常Oracle Databaseソフトウェアとは別にGrid Infrastructureをインストールします。
Grid Infrastructureには大きく分けて、クラスタを管理するOracle Clusterwareと、Oracle Database向けのストレージを管理するOracle Automatic Storage Management(Oracle ASM)が含まれます。
| 構成要素 | 主な役割 |
|---|---|
| Oracle Grid Infrastructure | RACやクラスタ環境を支える基盤ソフトウェア全体 |
| Oracle Clusterware | ノード、データベース、インスタンス、サービスなどのクラスタリソースを監視・制御 |
| Oracle ASM | Oracle Databaseで利用する共有ストレージを管理 |
Grid Infrastructureは製品・基盤全体の名称であり、クラスタ制御の実働部分を担うのがOracle Clusterwareです。
Oracle RACでは各ノードにインスタンスが存在する
Oracle RACでは、複数のサーバー、つまり複数ノードから同じOracle Databaseへアクセスします。一般的には各ノード上でそれぞれOracleインスタンスが稼働し、複数のインスタンスが同一データベースを共有します。
例えば2ノードRACであれば、概念的には次のような構成になります。
ノード1
└─ Oracleインスタンス1
ノード2
└─ Oracleインスタンス2
↓
同一のOracle Database
↓
共有ストレージ
単一インスタンス構成と違い、RACでは「どのノードが稼働しているか」「どのインスタンスが正常か」「障害時にどのリソースを再起動するか」といったクラスタ全体の管理が必要です。そこでOracle Clusterwareが重要になります。
各ノードのインスタンス管理を担うのはOracle Clusterware
Oracle Clusterwareは、RAC環境でOracle Databaseやインスタンスなどをクラスタリソースとして認識し、状態を監視します。必要に応じて起動、停止、再起動などを制御します。
例えばあるノード上のRACインスタンスが停止した場合、Clusterwareはその状態を検知し、構成やポリシーに従ってリソースを再起動するなどの処理を行います。
そのため「各ノードのインスタンスを管理するソフトウェアは何か」と聞かれた場合、厳密にはOracle Grid Infrastructureに含まれるOracle Clusterwareと答えるとより正確です。
Grid InfrastructureとClusterwareをどう区別すればよい?
この2つは包含関係で考えると分かりやすくなります。Oracle Grid Infrastructureという大きな枠組みの中にOracle ClusterwareとOracle ASMがあります。
Oracle Grid Infrastructure
├─ Oracle Clusterware
│ ├─ ノード管理
│ ├─ インスタンス管理
│ ├─ データベース管理
│ ├─ リスナー管理
│ └─ サービス管理
└─ Oracle ASM
└─ 共有ストレージ管理
したがって、「RACの基盤ソフトウェアは何か」という質問ならGrid Infrastructure、「クラスタリソースの監視・制御を担当するものは何か」という質問ならClusterwareという切り分けができます。
Oracle ASMはクラスタ制御ではなくストレージ管理を担当する
Grid Infrastructureに含まれるもう一つの重要な構成要素がOracle ASMです。ASMはAutomatic Storage Managementの略で、Oracle Databaseが使用するストレージを管理します。
RACでは複数ノードから同じデータベースファイルへアクセスするため、共有ストレージが重要になります。ASMを利用すると、複数のディスクをディスクグループとしてまとめ、Oracle Databaseから利用できます。
ただしASMは、RACインスタンスの死活監視やノード障害時のクラスタ制御を主目的とするものではありません。その役割はClusterwareです。Clusterwareはクラスタ制御、ASMはストレージ管理と覚えると整理しやすくなります。
RACでGrid Infrastructureが必要な理由
単純に複数台のサーバーへOracle Databaseをインストールしただけでは、RACにはなりません。複数ノードを一つのクラスタとして認識し、相互監視しながらデータベースやインスタンスを適切に管理する仕組みが必要です。
Grid Infrastructureは、このクラスタ運用を支えるための基盤を提供します。ノードの参加状態やクラスタリソースの状態を管理し、Oracle RACが高可用性を実現するための土台になります。
つまり、Oracle Databaseソフトウェアが「データベースそのものを動かす」のに対し、Grid Infrastructureは「複数ノードを協調して動かすための基盤」と考えると分かりやすくなります。
Oracle Databaseソフトウェアとの違い
Oracle RAC環境では、Grid InfrastructureとOracle Databaseソフトウェアを混同しないことも重要です。Grid InfrastructureがクラスタやASMを担当する一方、実際のSQL処理やデータベースインスタンスそのものはOracle Databaseソフトウェアによって提供されます。
| ソフトウェア | 主な役割 |
|---|---|
| Oracle Grid Infrastructure | クラスタ・共有ストレージの基盤 |
| Oracle Clusterware | クラスタリソースの監視・制御 |
| Oracle ASM | データベース用ストレージ管理 |
| Oracle Database | SQL処理、データ管理、各RACインスタンスの実体 |
例えばSQL文を解析してSELECTやUPDATEを実行するのはOracle Database側です。ClusterwareがSQLを実行するわけではありません。
Clusterwareはデータベース以外のリソースも管理する
Oracle Clusterwareが管理する対象は、RACインスタンスだけではありません。データベース、サービス、リスナー、SCAN関連リソース、VIPなど、RAC運用に必要な複数のリソースを管理します。
そのため「Clusterware=インスタンスを起動するだけの仕組み」と考えると役割を狭く捉えすぎています。実際にはクラスタ全体の可用性を支えるリソース管理基盤です。
各リソースには依存関係があるため、「あるリソースが利用可能になってから別のリソースを起動する」といった制御もクラスタ管理では重要になります。
CRSという言葉は何を意味する?
Oracle RACの資料やコマンドを調べると、CRS という言葉が頻繁に登場します。CRSはCluster Ready Servicesに由来する名称で、Oracle Clusterware関連のサービスやコマンド名などに現在も使われています。
例えばクラスタリソースの状態確認では、次のようなコマンドを見かけます。
crsctl status resource -t
このコマンドでは、Clusterwareが管理しているクラスタリソースの状態を確認できます。RACを運用するうえでは、Grid Infrastructureという製品名だけでなく、CRSやClusterwareという用語にも慣れておくと理解しやすくなります。
srvctlは何をするコマンド?
Oracle RACでは srvctl も頻繁に利用されます。これはServer Control Utilityで、Oracle Database、インスタンス、サービス、リスナーなどのOracleリソースを管理するときに利用します。
例えばデータベースの状態確認では、環境やバージョンに応じた形で srvctl status database などのコマンドを使用します。
一方、crsctl はClusterwareそのものやクラスタリソースを管理する低レベル寄りの管理コマンドです。試験や実務では、Oracle Database関連リソースの管理にはsrvctl、Clusterware全般の管理にはcrsctlという大まかな役割の違いを理解しておくと便利です。
ノード障害時には何が起こる?
RACの価値を理解するには、ノード障害を考えると分かりやすくなります。例えば2ノード構成で、ノード1が停止したとします。
Clusterwareはクラスタ内の状態を監視しているため、ノード障害を認識します。残っているノード上のインスタンスは引き続き共有データベースへアクセスでき、構成されたサービスも利用可能なインスタンス側へ提供されるよう管理されます。
ただし「RACならどんな障害でもユーザーが一切気付かない」という意味ではありません。既存セッションの切断、アプリケーション側の再接続、サービス設定なども関係するため、高可用性はRACだけで完成するものではありません。
Oracle RACとActive-Standbyクラスタの違い
RACを理解するときは、一般的なActive-Standby構成との違いも重要です。Active-Standbyでは通常、片方のノードが稼働し、もう片方が待機する構成があります。
一方RACでは、複数ノード上の複数インスタンスが同一データベースへ同時にアクセスできます。そのため、複数インスタンス間でデータブロックの整合性を保つ仕組みも必要になります。
Grid Infrastructureはクラスタ基盤を担当しますが、RAC特有のインスタンス間キャッシュ連携などはOracle RACおよびOracle Database側の仕組みとして理解する必要があります。
Grid InfrastructureをインストールするORACLE_HOMEはDatabaseとは別
Oracle環境では、Grid InfrastructureをインストールするGrid homeと、Oracle DatabaseソフトウェアをインストールするOracle homeは通常分けて管理されます。
そのため、同じOracle製品群でも「Grid Infrastructure側のバイナリ」と「Database側のバイナリ」が別に存在します。パッチ適用やアップグレードでも、どちらを対象にしているのかを区別する必要があります。
RACの学習で「Grid InfrastructureとOracle Databaseは同じソフトなのか」と混乱した場合は、クラスタ基盤とデータベース本体を別レイヤーとして考えると整理できます。
試験問題ではどの表現を選べばよい?
Oracle関連資格の問題では、質問文がどの粒度で聞いているかを見ることが重要です。
例えば「Oracle RACのクラスタ基盤を提供するソフトウェアは何か」であれば、Oracle Grid Infrastructureが適切です。一方、「ノードおよびクラスタリソースを監視・制御するコンポーネントは何か」であればOracle Clusterwareがより直接的な答えになります。
| 質問の内容 | 対応する用語 |
|---|---|
| RACを支える基盤ソフトウェア全体 | Oracle Grid Infrastructure |
| クラスタ制御・リソース管理 | Oracle Clusterware |
| 共有ストレージ管理 | Oracle ASM |
| SQL・データベース処理 | Oracle Database |
「Grid InfrastructureかClusterwareか」で迷った場合は、全体を聞いているのか、クラスタ制御機能そのものを聞いているのかを確認しましょう。
「各ノードのインスタンスをGrid Infrastructureが動かしている」と言ってよい?
入門的な会話では、「Grid InfrastructureがRACインスタンスを管理する」という表現で問題ない場面もあります。実際、Grid Infrastructureとして導入されるClusterwareがDatabaseやInstanceリソースを管理するためです。
ただし技術的に正確に説明するなら、「Oracle Grid Infrastructureに含まれるOracle Clusterwareが、RACインスタンスをクラスタリソースとして管理する」と表現すると役割が明確になります。
また、OracleインスタンスそのものはOracle Databaseソフトウェアのプロセスとメモリ構造であり、ClusterwareそのものがOracleインスタンスの実体になるわけではありません。
初心者向けに一枚で整理すると
Oracle RACの構成を単純化すると、次のように整理できます。
Oracle RAC環境
Oracle Grid Infrastructure
├─ Oracle Clusterware
│ ├─ ノード監視
│ ├─ RACインスタンス管理
│ ├─ Database管理
│ ├─ Service管理
│ ├─ Listener管理
│ └─ VIP・SCANなどの管理
│
└─ Oracle ASM
└─ 共有ストレージ管理
Oracle Database Software
├─ ノード1:RACインスタンス1
└─ ノード2:RACインスタンス2
↓
同一Database
この階層を覚えておくと、Grid Infrastructure、Clusterware、ASM、RAC、Databaseの関係を混同しにくくなります。
まとめ|RACの基盤はGrid Infrastructure、クラスタ制御の中心はClusterware
Oracle RAC環境では、複数ノードをクラスタとして管理するための基盤としてOracle Grid Infrastructureが利用されます。Grid InfrastructureにはOracle ClusterwareとOracle ASMが含まれます。
各ノードの状態やOracle Database、RACインスタンス、サービス、リスナーなどをクラスタリソースとして監視・制御する中心的な役割を担うのはOracle Clusterwareです。一方、ASMはOracle Database向けの共有ストレージ管理を担当します。
最も分かりやすく覚えるなら「Grid Infrastructure=RACの基盤全体」「Clusterware=クラスタ制御」「ASM=ストレージ管理」と整理するとよいでしょう。
したがって、RAC環境の基盤ソフトウェアを尋ねる文脈ではOracle Grid Infrastructureという理解でよく、さらに厳密に「各ノードのインスタンスやクラスタリソースを管理しているもの」を答える場合は、Grid Infrastructureに含まれるOracle Clusterwareと説明するのが正確です。

コメント