RACが変えるデータベース環境
Oracle Real Application Clustersを知る
本連載では、Oracle RACを利用するにあたってのポイントを検証結果とともに解説します。第1回ではデータベースグリッドとOracle RACについて押さえましょう。
グリッドコンピューティングとは、ネットワークに接続された複数のコンピュータで並列処理を行う技術を指し、高速に大量の処理を実行する場面で利用されます。
データベースでの利用についても同様で、複数のサーバーで処理することで、大量のトランザクションを効率的に処理できるようになります。また、特定のサーバーに障害が発生した場合、ほかのサーバーで処理を引き継がせることで、耐障害性(高可用性)を確保することもできます。
それまで概念として議論されてきたデータベースグリッドを、エンタープライズでの運用に耐えられるレベルで初めて実装したのが、2002年にリリースされた、「Oraacle9i Database Release2」の「Oracle Real Application Clusters」(以下RAC)です。
翌2003年にリリースされた「Oracle Database10g」(以下10g)においてRACは、パフォーマンスや管理面でも大きく改良され、ミッションクリティカルであることが求められる多くの企業で採用されました。
RACの特徴を表すキーワードとして挙げられるのが、「可用性と拡張性の両立」です。
可用性を実現するためのアーキテクチャとして、RACは「シェアードディスク型」を採用しています。
ノードごとにアクセスできるディスクを分割する「シェアードナッシング型」は、パフォーマンス面でのメリットは大きいものの、1つのノード障害が全体に影響を与えるため、可用性の面で問題があります。
複数のノードでディスクを共有する「シェアードディスク型」は、1つのノード障害でも、ほかのノードで処理を引き継ぐことができるため、可用性の問題をクリアすることができました。一般的に「シェアードディスク型」の場合は、ノード間の同期が問題となりますが、これも「キャッシュフュージョン」というテクノロジーでクリアしています。
可用性と拡張性の両立
RACはよくHA(High Availability)構成と比較して検討されることがありますが、HA構成は障害発生時に待機系に切り替える作業が発生するため、一般的にフェールオーバーに時間がかかる傾向にあります。
RACはActive-Active構成であるため、障害発生時のフェールオーバーが高速に行えるという利点があります。
もう1つのキーワードである拡張性として、RACのノード追加時の柔軟さが挙げられます。既存の構成で処理能力が不足した場合、RACはノード追加することで、スケールアウトによる拡張性を実現することができます。2ノード構成によるスモールスタートから、ビジネスの成長に合わせてノード数を追加するといったことが可能になります。
続いて、RACの中核機能のうち主要なものを3つ紹介したいと思います。紹介するのは「Oracle Clusterware」「Automatic Storage Management」「サービス」です。