第一回でも触れたように、現代のデータベースにとって安定性やパフォーマンスが良いのはもはや当たり前となっています。しかし、どんなにデータベースの安定性やパフォーマンスが向上しても、残念ながら問題が皆無になるわけではありません。特に安定性の問題は、データベースがソフトウエア単体でなく、ハードウエアを伴うシステムとして稼動している以上、パーツの故障やインフラのトラブルによるダウンは避けられない問題です。こうした問題を解決するため、ミッションクリティカルな運用環境においては、サービスの停止を最小限にとどめるために、同じサービスを提供するサーバーを複数台用意し、必要に応じてサーバーを切り替えるという、フェールオーバー クラスタ構築という手法が利用されることが一般的です。
第二回では、本当にとまらないデータベース選びと題して、データベースの可用性向上のために最も重要かつ高度なフェールオーバー機能という切り口でデータベース評価のポイントを紹介します。

| フェールオーバー クラスタとその必要性 | |
| SQL Server 2000 によるフェールオーバー クラスタの構築デモ | |
| まとめ 〜データベースに 1 ランク上の信頼性を〜 |
![]()
フェールオーバークラスタとは?
フェールオーバーとは、あるサービスを提供するサーバーに何らかのトラブルがあった場合に、自動的に補助サーバーにリクエスト先を切り替えることで、サービスを継続的に提供する機能を意味します。フェールオーバーを実現するためには、通常複数台のサーバー (クラスタ) が必要になりますが、フェールオーバーを目的として導入されたサーバー群をフェールオーバー クラスタと呼びます。フェールオーバーはあらゆるサービスや機能を提供するサーバーにおいて有益な機能ですが、情報システムの基盤を担うデータベースとっては、最も重要な機能の 1 つと言えます。どんなにソフトウエアとしてのデータベースの安定性が向上しても、ハードウエアやネットワークインフラのトラブルなど、物理的なトラブルは避けることができません。このようなトラブルに対応するためには、サーバーを多重化 (クラスタを構成) する必要があります。
フェールオーバークラスタの必要性
どのような状況においてもフェールオーバー クラスタの導入が必須というわけではありません。フェールオーバー クラスタの実現にはスタンドアロン環境を構築する場合の少なくとも 2 倍のコストがかかることは明らかです。提供するサービスに要求される品質とコストのバランスを考慮した上で、慎重に導入を検討することが重要です。 24 時間、365 日のサービス提供が必要であれば、フェールオーバーは間違いなく不可欠な機能です。また、特定時間のみのサービス提供の場合でも、ある期間、ノンストップでサービスを提供しなければならない場合などには不可欠な機能と言えます。
また、フェールオーバーはトラブル対応時のみに有用というわけではありません。ソフトウエアのアップデートや設定更新に伴う再起動など、メンテナンスであっても、サービスを止められないという状況においては不可欠な機能と言えます。さらに、フェールオーバーはバックアップ・リカバリの 1 つの手法としても有用な場合があります。
フェールオーバー機能の評価のポイント
フェールオーバー機能という切り口でデータベースを評価する場合、その機能の有無でデータベースを評価することはあまり意味がありません。なぜなら、現在販売されている商用データベースのほとんどはフェールオーバー機能を搭載しているからです。このような状況においては、データベースをフェールオーバー機能の有無ではなく、機能の完成度の高さ、特に導入の容易さという点で評価するべきでしょう。フェールオーバーのような重要かつ複雑になりがちな機能においては、何より導入の容易さが重要です。どんなに優れた機能でも、使いこなすことができなければ全く意味がありません。

![]()
GUI で簡単クラスタリング
SQL Server 2000 Enterprise Edition を利用すれば、 GUI により、簡単にフェールオーバー クラスタを導入、運用することが可能です。 Windows Server および SQL Server に関する基本的な知識があれば、誰でも簡単にフェールオーバー クラスタを導入、運用することができるのです。
フェールオーバークラスタの構築
フェールオーバー クラスタの構築には、Windows Server 2003 から [クラスタ アドミニストレータ] を利用して設定しています。[クラスタ アドミニストレータ] で、クラスタの作成とクラスタで使用するノードの追加を行った後に、SQL Server のインストールを行います。
クラスタを構成するには、Active Directory が必ず必要となるため、Active Directory サーバーがない場合は構築する必要があります。 また、マシンを何台も用意することが大変であるため、Virtual Server を利用して設定しています。
※詳細は「クラスタ構築手順書」をご参照下さい。
| • | クラスタ構築手順書 |
主な手順は以下のようになります。
1. | クラスタの構成に使用するマシンを Virtual Server のバーチャル マシンとして 3 台作成する。 1 台は Active Directory 用 (DC) 、 2 台はクラスタ サーバー用 (MSCS1, MSCS2) とする。 Virtual Server でのバーチャル マシンの設定 |
2. | 作成したバーチャル サーバーのうち 1 台に Active Directory をインストールしドメイン コントローラとして設定する。 Active Directory のインストール ウィザード |
3. | 設定したドメイン コントローラのドメインに残りの 2 台を参加させる。 サーバーをドメインへ参加させる |
4. | サーバー (MSCS1) にクラスタ アドミニストレータを利用して、クラスタを作成する。 クラスタ アドミニストレータによるクラスタの作成 |
5. | 作成したクラスタにもう 1 つのサーバー (MSCS2) をクラスタ ノードとして追加する。 クラスタ アドミニストレータによるクラスタ ノードの追加 |
6. | サーバー (MSCS1) に SQL Server をインストールする。インストーラに従い、インストール先を「仮想サーバー」に設定すると、クラスタの設定としてインストールされる。 SQL Server のインストール SQL Server インストールでのクラスタ サーバーの設定 |
7. | フェールオーバー クラスタの動作確認。Web アプリケーションを実行し、フェールオーバー時のアプリケーションの動作とデータを確認 フェールオーバーの実行確認 (左 MSCS1 、右が MSCS2 ) |
※詳細は「クラスタ構築手順書」をご参照下さい。
| • | クラスタ構築手順書 |
| • | 関連リンク |
![]()
第一回でも触れたとおり、データベースにアクセスしないビジネス アプリケーションは存在しないと言っても過言ではありません。これは同時に、データベースがダウンすれば全てのビジネス アプリケーションが機能停止することを意味しています。データベースがハードウエアを伴うシステムとして動作する以上、突発的な事故は避けられません。サーバー自体の故障によるサービス停止を防止する方法は基本的にはフェールオーバー クラスタしかありません。ハードウエアが非常に高価だった時代は、システムの多重化は金融機関など、一部の特殊なシステムだけに許された冗長化手法でした。しかし、ハードウエアの低価格化が進んだ現在においては、フェールオーバー クラスタによる信頼性向上は非常にシンプルかつ有益な手法と言えます。
SQL Server 2000 はフェールオーバー クラスタという高度な機能も GUI で簡単に設定することができるため、エンタープライズレベルはもちろん、部門、クループレベルの情報管理においても 1 ランク上の信頼性を実現することが可能であり、規模の大小を問わず、常時運用が求められる現代のビジネスシーンを支えるデータベースとして、最もふさわしい製品といえます。
| 1 of 3 |