RACはクラスタを構成するノードがストレージを共有しており、表や索引のデータをキャッシュするデータベース・バッファ・キャッシュの一貫性を自動で維持するアーキテクチャを持っています。RACはシングル・インスタンスと同様にSQLを実行できることを設計思想に持っており、「Real Application Clusters」の名にふさわしい透過性を持っています。RACは耐障害性および拡張性に優れたアーキテクチャで実装されており、OLTP系の処理も分析系の処理もどちらも高速に実行します。
RACのアーキテクチャ
RACは複数のノードがインターコネクト・ネットワークで接続され、また、ストレージを共有しています(図1)。
RACを構成する場合、Oracle Databaseのソフトウェアよりも先にOracle Grid Infrastructure(GI)のソフトウェアをインストールします。GIの役割は、クラスタにどのノードがいるかのメンバーシップを確定させることや、Oracleインスタンス障害時に自動再起動させたり、Oracle Automatic Storage Management(ASM)の管理などがあります。GIがインストールされているところにOracle Databaseをインストールしようとすると、自動的にRAC用のバイナリがインストールされます。
RACのノードを追加するということはCPUとメモリを追加するということに相当します。RACのノード追加はストレージの増強とは独立しています。ストレージの増強はASMを使用して行います。分析系の大量データにアクセスするような処理ではCPUのデータ処理能力とストレージのデータ供給能力のバランスが取れていないと、RACのノードを追加しても性能が向上しないという場合があります。Automatic Workload Repositoryレポートなどを使用してシステムのボトルネックを丁寧に分析し、ストレージがボトルネックならないように注意してください(図2)。この点はシングル・インスタンス構成でも同じです。ASMについては別途説明の回を設ける予定です。
Oracle Database In-Memory(DBIM)を使用する場合はRACノードの追加でCPUとメモリを増設するという意味合いがあるため、ストレージを増強せずとも性能が向上する場合があります。