1. RACアーキテクチャの特徴
RACアーキテクチャの大きな特徴は、1つのデータベースに対するデータの更新・参照を複数Oracleインスタンスより同時に実行可能な点にあります。そのため、1つのOracleインスタンスが停止してしまったとしても、他のOracleインスタンスに接続することによって処理を継続することができます。シングル環境やH/A環境の場合、複数のインスタンスが同じデータベースに対してアクセスすることはできません。RACにはキャッシュ・フュージョンという機能が備わっており、この機能によって互いにデータの一貫性が保持されるため、複数のインスタンスが同じデータを更新した場合でも、一貫性が保たれるようになっています。なお、キャッシュ・フュージョンにおけるノード間通信はプライベート・ネットワークを使用して実行されます。また、追って説明しますが、Oracle ASM、Oracle Clusterwareというソフトウェアとも連携して動作します。以下にRACのアーキテクチャの概要図を示します。
2.Oracle ASM
Oracle ASM(以下、ASM)とは、 Oracle Automatic Storage Managementの略で、Oracleデータベース・ファイル用のボリューム・マネージャ兼ファイルシステムの役割を担います。そして、データベース同様にインスタンスが存在します。ASMを使用する場合はASMインスタンスを起動させる必要がありますが、ASMを使用しない場合はASMインスタンスを起動させる必要はありません。なお、Standard EditionライセンスにてRACを使用する場合は、ASMの使用が必須となりますのでご注意ください。RAC 11gR1以前ではASMはOracle Databaseに含まれるコンポーネントでしたが、RAC 11gR2からはGrid Infrastructureに含まれています。そのため、たとえシングル環境でも、ASMを使用する場合はGrid Infrastructureをインストールする必要があります。ASMについては次回以降で詳しく説明します。
3.Oracle Clusterware
一般に、複数ノードからなるクラスタ構成のシステムでは、各ノードにクラスタウェアと呼ばれるソフトウェアの導入が必要となります。RACでは、Oracle Clusterwareというクラスタウェアを各ノードに導入する必要があります。Oracle Clusterwareは各ノードのリソースを管理しています。代表的なリソースについて以下に記載します。黄色のリソースがRAC 11gR2から追加されたリソースとなります。リソースはcrsctl status resource -tコマンドで確認することができます。Oracle Clusterwareについても、ASM同様、RAC 11gR2からGrid Infrastructureのコンポーネントの1つとなります。
リソースの種類 | リソース名 | 説明 |
Global Service Daemon | ora.gsd | SRVCTLユーティリティの要求を受信し、インスタンスの起動停止などのタスクを実行する。 |
Oracle Notification Service | ora.ons | 自ノードのOracle Clusterwareデーモンプロセスからイベントを受け取って、自ノードのOracle Clusterwareリソースにイベントを送信する。 |
仮想IPアドレス | ora.<ホスト名>.vip | 各ノードのパブリックネットワークで使用しているインターフェースに割り当てられたVIPのリソース。ノード障害やネットワーク障害時は生存ノードにフェイルオーバする。 |
ネットワーク | ora.net.network | RAC 11gR2で使用するサブネットに対応するリソース。複数のサブネットに接続する場合は、接続したサブネット分のリソースが必要。 |
Oracle ASM | ora.asm | ASMインスタンスに対応するリソース。 |
ディスク・グループ | ora.<ディスクグループ名>.dg | ASMインスタンスで作成したディスクグループに対応するリソース。ディスクグループを作成すると自動的にリソースが作成される。 |
データベース | ora.<データベース名>.db |
データベースを構成する各インスタンスに対応するリソース。
|
サービス | ora.<データベース名>.<サービス名>.svc | 作成されたサービスに対応するリソース。サービスを作成すると自動的にリソースが作成される。 |
リスナー | ora.<リスナー名>.lsnr | 作成されたリスナーに対応するリソース。リスナーを作成すると自動的にリソースが作成される。 |
SCAN VIP | ora.scan.vip | SCAN VIPに対応するリソース。SCAN VIPの数だけリソースも起動し、全ノードあわせて3つまで起動可能。ただし、DNSを使用しない構成では1つしか起動しない。 |
SCANリスナー | ora.LISTENER_SCAN.lsnr | SCANリスナーに対するリソース。SCANリスナーはSCAN VIPからの接続をリスニングする。そのため、SCAN VIPが起動しているノードのみSCANリスナーは起動する。 |