データベースの耐障害性を高めるクラスタソフト
CLUSTERPROによるデータベースのクラスタリング
データベースのクラスタリングに際し、データベースファイルの格納先に気をつければよいので基本的には通常のサーバーの場合と変わりはない。基本的な2ノードクラスタの場合、現用系と待機系にCLUSTERPROをインストールしておけば、ハードウェア障害、OS障害、ソフトウェア障害の監視が可能だ。
OS層に存在するOSに対してはストール監視を行い、さらに下のハードウェアレイヤーの内蔵ディスクや共有ディスクにはアクセスチェックを、同じ層のNICに対してはリンクダウンチェックを行う。さらに、ルータなどネットワーク機器に対してはPing応答監視を実施。また、アプリケーション層のデータベースに対しては存在監視と後述する監視エージェントによる正常応答監視を行う。データベースを正常稼動させるために必要な3つの層のどのポイントでの異常も検知可能で、フェイルオーバーをはじめとする、業務継続のためのアクションが実行できる。
CLUSTERPROではこれらの監視機能をあらかじめ搭載しており、監視機能を別途準備する必要がなく、スムーズな導入が可能だ。
また、データベースファイルについては、前述した共有ディスク型のほかに、CLUSTERPROのデータミラー機能を利用して、サーバー間で冗長化されたパーティションに格納することも可能だ。
データベースファイルを格納したパーティションは、現用系のデータベースソフトからのみアクセスが可能で、データの一元性が保持されるとともに、データベースソフト側からは単体サーバー時と同様の取り扱いが可能で、クラスタ構造を意識する必要はない。
データベースの死活を正しく判断する監視エージェント
クラスタソフトによっては、データベースソフトの健全性を常駐しているかどうかの死活監視に頼るだけのものもある。プロセスの死活監視だけでは物足りないという技術者はSQLコマンドでSELECTコマンドによる参照監視を行うケースもある。CLUSTERPROではより確実な動作確認を行うために独自の監視エージェントをオプションとして提供している。
監視エージェントはデータベースのプログラミングのAPIをコールし、そのAPIを経由してSQLコマンドを出す。SQLコマンドは単にSELECTで参照できるかどうかをチェックするのではない。データベースに監視表領域を作成し、そのテーブルに対し実際に監視用データを書き込み、それを再び読み込んで内容をチェックし、この過程が正常に稼動していれば監視表領域を削除するという一連の動作を定期的に行う。
つまり、CREATE、INSERT、UPDATE、SELECT、DELETE、DROPの各コマンドを実際に実行しているわけで、データベースソフトが動作していることの確実な証明となる。
また、各コマンドの実行にタイマーをかけることで死活監視だけでは判断できないデータベースのハングアップなどの障害も検出できるため、チェックとして非常に有効だ。
通常、データベースは最高のパフォーマンスを実現するために、SQLコマンドのキャッシュを実装しているが、こうした一連のSQLコマンドを繰り返すことで、そこにデータが乗らないようにし、監視をより確実なものにしている。
また、このプログラムでは、シェルスクリプトを利用していないため、余分なメモリ空間を使用して、データベースサーバーのパフォーマンスを低下させることもない。
次は低コストなバックアップを実現するCLUSTERPROのミラーリング機能を紹介しよう。
CLUSTERPRO製品の詳細はこちら
http://www.nec.co.jp/pfsoft/clusterpro/?pfid=104