前回の連載ではOracle Real Application Clusters(RAC)への接続と負荷分散について解説しました。RACはノードを増設することでCPUとメモリーのスケール・アウトが可能です。RACのもう1つの特徴として、高可用性があります。RACのノードが障害を起こしても、残りの正常ノードがトランザクションを一貫性のある状態に自動的にリカバリします。
Oracle Grid Infrastructureの役割
RACを構成するコンポーネントとして、Oracle Databaseのソフトウェアをインストールする前にOracle Grid Infrastructure(GI)のソフトウェアをインストールします。GIをインストールすると、インストーラが自動的にクラスタの構成を行い、各ノードの監視を開始します。続いてOracle Databaseのソフトウェアをインストールし、Database Configuration Assistant(DBCA)ユーティリティでデータベースを作成すると、RACデータベースを構成するOracleインスタンスがGIに登録され、監視対象となります(図1)。

Oracleインスタンスの起動もしくは停止があると、GIはRACを構成する他のOracleインスタンスにこの増減を通知し、それをトリガーとしてクラスタの再構成が開始されます。
各コンポーネントの障害からのリカバリについて見ていきましょう。
Oracleサーバー・プロセス障害
OracleクライアントはOracleリスナー・プロセスに接続リクエストを発行し、Oracleサーバー・プロセスを生成してOracleインスタンスに接続されます。専用サーバー・プロセスと呼ばれる構成では、1本のセッションにつき専用の1つのOracleサーバー・プロセスが生成されます。Oracleサーバー・プロセスがSQLの実行主体です。
Oracleサーバー・プロセスに障害が発生すると、Oracleインスタンスによって検出され、自動的にそのOracleサーバー・プロセスが実行していた未完了トランザクションがロールバックされます。Oracleクライアントにはエラーが返り、アプリケーションがそのエラーを処理します。Oracleサーバー・プロセス障害の場合、他のセッションはエラーとなるような影響を受けずにトランザクションを継続できます(図2)。

この記事は参考になりましたか?
- イチから学ぶデータベース最新技術 - Oracle Real Application Clusters編連載記事一覧
- この記事の著者
-
日下部 明(クサカベ アキラ)
日本オラクル データベース担当。Oracle GRID Centerのラインマネージャとしてオラクルの持つ最新技術をパートナー各社と共同で検証し、多くのホワイトペーパーを執筆・レビュー。以後、その経験を元にミッションクリティカルな案件のソリューションデザインの提案などを担当。データベースセキュリティ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア