高可用性の構成
更新 : 2005 年 12 月 5 日
ここでは、サーバーやデータベースの可用性を向上する Microsoft SQL Server 2005 の高可用性ソリューションをいくつか紹介します。高可用性ソリューションは、ハードウェアやソフトウェアで問題が発生した場合でもその影響が現れないようにし、アプリケーションの可用性を維持しながら、ユーザーに影響するダウンタイムを最小限に抑えます。
SQL Server 2005 には、サーバーやデータベースの高可用性を実現するために複数の方法が用意されています。高可用性を実現するには以下の方法があります。
フェールオーバー クラスタリング
フェールオーバー クラスタリングでは、SQL Server のインスタンス全体の高可用性がサポートされます。フェールオーバー クラスタは、1 つ以上のノード (サーバー) と 2 つ以上の共有ディスクの組み合わせです。SQL Server や Notification Services などのアプリケーションは、リソース グループと呼ばれる Microsoft Cluster Service (MSCS) クラスタ グループに個別にインストールされます。各リソース グループは、いつでもクラスタ内の 1 つのノードだけに所有されています。アプリケーション サービスには、ノード名とは無関係の仮想名が付けられます。この仮想名はフェールオーバー クラスタ インスタンス名と呼ばれます。アプリケーションは、フェールオーバー クラスタ インスタンス名を参照することによって、フェールオーバー クラスタ インスタンスに接続できます。フェールオーバー クラスタ インスタンスがどのノードによってホストされているかを、アプリケーションで認識する必要はありません。
SQL Server フェールオーバー クラスタ インスタンスは、ネットワーク上では 1 台のコンピュータのように見えますが、現在のノードが使用できなくなった場合には、1 つのノードから別のノードにフェールオーバーする機能を備えています。たとえば、ディスク以外のハードウェア障害、オペレーティング システムの障害、または計画されたオペレーティング システムのアップグレードなどで、フェールオーバー クラスタの特定のノード上にある SQL Server インスタンスを、ディスク グループ内の別のノードにフェールオーバーするように構成できます。
フェールオーバー クラスタでは、ディスク障害に対する保護はサポートされません。フェールオーバー クラスタリングを使用して、システムのダウンタイムを削減し、アプリケーションの可用性を向上できます。フェールオーバー クラスタリングは SQL Server 2005 の Enterprise Edition と Developer Edition でサポートされます。また、一部制約はありますが Standard Edition でもサポートされます。フェールオーバー クラスタリングの詳細については、「フェールオーバー クラスタリング」と「フェールオーバー クラスタのインストール」を参照してください。データベース ミラーリング
データベース ミラーリングは、ほぼ瞬時のフェールオーバーをサポートすることによりデータベースの可用性を向上させる、代表的なソフトウェア ソリューションです。データベース ミラーリングを使用して、運用データベース (別称プリンシパル データベース) と、それに対応する 1 つのスタンバイ データベース (別称ミラー データベース) を管理できます。
復旧を伴わずにプリンシパル データベースのデータベース バックアップを復元することにより、ミラー データベースが作成されます。この場合、クライアントからはミラー データベースにアクセスできなくなります。ただし、ミラー データベース上でデータベース スナップショットを作成することにより、レポート作成を目的として、ミラー データベースを間接的に使用できます。クライアントは、データベース スナップショットを使用することにより、スナップショットが作成された時点のデータベースのデータに読み取り専用モードでアクセスできます。
各データベース ミラーリング構成には、プリンシパル データベースを保持するプリンシパル サーバーと、ミラー データベースを保持するミラー サーバーがあります。ミラー サーバーでは、プリンシパル データベースを使用して、ミラー データベースが常に最新の状態になるように管理されます。
データベース ミラーリングは、高安全性モードの同期動作または高パフォーマンス モードの非同期動作のどちらかで実行されます。高パフォーマンス モードでは、ミラー サーバーでログがディスクに書き込まれるのを待機することなくトランザクションがコミットされるので、パフォーマンスが最大限に向上します。高安全性モードでは、コミットしたトランザクションが両方のパートナーでコミットされる反面、トランザクションの遅延が大きくなるという危険性があります。
データベース ミラーリングの最も単純な構成では、プリンシパル サーバーおよびミラー サーバーのみが必要です。この構成では、プリンシパル サーバーが失われると、データ損失の可能性がありますが、ミラー サーバーをウォーム スタンバイ サーバーとして使用できます。高安全性モードでは、自動フェールオーバー機能を持つ構成もサポートされています。この構成では、ミラーリング監視という第 3 のサーバー インスタンスが利用されるため、ミラー サーバーはホット スタンバイ サーバーとして機能できます。プリンシパル データベースからミラー データベースへのフェールオーバーは、通常数秒で行われます。
データベース ミラーリング パートナーおよびミラーリング監視サーバーは SQL Server 2005 Standard Edition SP1 以降のバージョンおよび SQL Server 2005 Enterprise Edition SP1 以降のバージョンでのみサポートされます。ただし、パートナーは同じエディションを使用する必要があり、非同期データベース ミラーリング (高パフォーマンス モード) は SQL Server 2005 Enterprise Edition SP1 以降のバージョンでのみサポートされます。ミラーリング監視サーバーは、SQL Server 2005 Workgroup Edition SP1 以降のバージョンおよび SQL Server 2005 Express Edition SP1 以降のバージョンでもサポートされます。データベース ミラーリングの詳細については、「Database Mirroring」を参照してください。ログ配布
ログ配布は、データベース ミラーリングと同様にデータベース レベルで機能します。ログ配布を使用して、運用データベース (別称プライマリ データベース) と、それに対応する 1 つ以上のウォーム スタンバイ データベース (別称セカンダリ データベース) を管理できます。復旧を伴わずにまたはスタンバイを使用して、プライマリ データベースのデータベース バックアップを復元することにより、各セカンダリ データベースが作成されます。スタンバイを使用して復元すると、生成されるセカンダリ データベースを、制限付きのレポート作成用に使用できます。
ログ配布構成には、プライマリ データベースを保持する 1 台のプライマリ サーバー、各セカンダリ データベースを保持する 1 台以上のセカンダリ サーバー、および 1 台の監視サーバーが含まれます。各セカンダリ サーバーでは、プライマリ データベースのログ バックアップを利用して、そのサーバーのセカンダリ データベースが一定の間隔で更新されます。ユーザーは、プライマリ サーバーでプライマリ データベースのログ バックアップを作成する時点と、セカンダリ サーバーがそのログ バックアップを復元する時点との間に生じる遅延時間を変更できます。フェールオーバーする前に、復元されていないログ バックアップを手動で適用して、セカンダリ データベースを最新の状態にする必要があります。
ログ配布により、複数のスタンバイ データベースがサポートされ、柔軟性がもたらされます。複数のスタンバイ データベースが必要な場合は、ログ配布だけを使用するか、データベース ミラーリングの補完手段としてログ配布を使用できます。ログ配布とデータベース ミラーリングを同時に使用するときは、データベース ミラーリング構成の現在のプリンシパル データベースが、ログ配布構成の現在のプライマリ データベースの役割も果たします。
ログ配布は、SQL Server 2005 の Enterprise Edition、Standard Edition、および Workgroup Edition でサポートされます。ログ配布の詳細については、「ログ配布」を参照してください。レプリケーション
レプリケーションは、パブリッシュとサブスクライブを組み合わせたモデルを使用して、プライマリ サーバー (パブリッシャ) のデータを 1 台以上のセカンダリ サーバー (サブスクライバ) に配布できます。レプリケーションにより、これらのサーバー全体でリアルタイムの可用性とスケーラビリティを実現できます。レプリケーションでは、サブスクライバでデータのサブセットを提供するフィルタ処理がサポートされ、更新を分割して行うこともできます。サブスクライバはオンラインなので、それまで使用していたクエリを復旧しないで、レポートなどの機能に使用できます。SQL Server では、スナップショット レプリケーション、トランザクション レプリケーション、マージ レプリケーションの 3 種類のレプリケーションが用意されています。待機時間が最も短いことから、トランザクション レプリケーションが可用性を向上させる場合に最も一般的に使用されます。詳細については、「スケーラビリティと可用性の向上」を参照してください。
レプリケーションは、SQL Server 2005 のすべてのエディションでサポートされています。レプリケーションのパブリッシングは SQL Server 2005 Express Edition と SQL Server Compact Edition では使用できません。各エディションでサポートされるレプリケーション機能の完全な一覧については、「SQL Server 2005 の各エディションがサポートする機能」を参照してください。重要 : 高可用性ソリューションには、十分に考慮して設計および実装されたバックアップと復元のストラテジが必要不可欠です。詳細については、「SQL Server でのデータベースのバックアップおよび復元」および「レプリケートされたデータベースのバックアップと復元」を参照してください。
高可用性ソリューションの選択
高可用性ソリューションを選択する際の考慮事項を次の一覧に示します。
- フェールオーバー クラスタリングおよびデータベース ミラーリングには、次の機能があります。
- 自動検出と自動フェールオーバー。
- 手動フェールオーバー。
- ユーザーが意識する必要のないクライアント リダイレクト。
フェールオーバー クラスタリングには次の制約があります。 - サーバー インスタンスのスコープで運用されます。
- 署名付きのハードウェアが必要です。
- スタンバイ時のレポート機能はありません。
- データベースの単一のコピーを使用します。
- ディスク障害から保護されません。
データベース ミラーリングには次の利点があります。 - データベースのスコープで運用されます。
- データベースの単一の複製コピーを使用します。
メモ : さらに多くのコピーが必要な場合は、データベース ミラーリングに加えて、データベースのログ配布を使用できます。 - 標準のサーバーを使用します。
- ミラーリング サーバーでは、データベース スナップショットを使用して、制限付きのレポート機能が提供されます。
- 同期運用されているときは、プリンシパル データベースでの遅延コミットにより、作業のロスを防ぎます。
データベース ミラーリングは、フェールオーバー クラスタリングに代わる管理しやすい手法として、従来の SQL Server で実現されていた可用性のレベルを実質的に向上します。
メモ : データベース ミラーリングとフェールオーバー クラスタを併用する方法については、「データベース ミラーリングおよびフェールオーバー クラスタリング」を参照してください。フェールオーバー クラスタリングで Notification Services を使用する方法については、「Notification Services でのフェールオーバー クラスタリングの使用」を参照してください。データベース ミラーリングで Notification Services を使用する方法については、「Notification Services でのログ配布またはデータベース ミラーリングの使用」を参照してください。 - ログ配布
ログ配布は、データベース ミラーリングの補足的な機能または代替機能として使用できます。概念は似ていますが、非同期データベース ミラーリングとログ配布には重要な違いがあります。ログ配布では次の独自の機能を使用できます。- 単一のプライマリ データベースの複数のサーバー インスタンスで、複数のセカンダリ データベースがサポートされます。
- プライマリ サーバーでプライマリ データベースのログをバックアップする時点と、セカンダリ サーバーがそのログ バックアップを復元する時点との間に生じる遅延時間をユーザーが指定できます。たとえば、プライマリ データベースでデータが誤って変更された場合などに、長い遅延が役立ちます。誤った変更にすぐに気付いた場合、セカンダリ データベースにあるまだ変更されていないデータを、変更が反映される前に取得することが遅延により可能になります。
ログ配布がセカンダリ データベースへの変更の反映に要する最短時間と比較して、非同期データベース ミラーリングには、プライマリ データベースに変更が加えられてから、その変更がミラー データベースに反映されるまでの時間が短いという潜在的な利点があります。
データベース ミラーリングがログ配布よりも優れているのは、高安全性モードが、単純なフェールオーバー ストラテジとしてサポートされるデータ損失のない構成であることです。メモ : ログ配布とデータベース ミラーリングの併用については、「データベース ミラーリングとログ配布」を参照してください。Notification Services でログ配布を使用する方法については、「Notification Services でのログ配布またはデータベース ミラーリングの使用」を参照してください。
- レプリケーション
レプリケーションには、次のような利点があります。- データベースのスコープで運用されるため、データベース内でフィルタ処理を行うことで、セカンダリ データベースでデータのサブセットを提供できます。
- データベースのコピーを複数保持できます。
- 複数のデータベース間でリアルタイムの可用性とスケーラビリティが実現され、更新を分割して行うことができます。
- レポートなどの機能では、それまでのクエリを回復することなく、セカンダリ データベースの完全な可用性が実現されます。
メモ : レプリケーションでデータベース ミラーリングを使用する方法については、「レプリケーションおよびデータベース ミラーリング」を参照してください。
このセクションの内容
トピック | 説明 |
---|---|
1 つ以上のノード (サーバー) と 2 つ以上のハード ディスクの組み合わせを共有することについて説明します。 |
|
データベース ミラーリングのしくみと、データベース ミラーリング セッションの構成方法や管理方法について説明します。 |
|
ログ配布のしくみと、ログ配布構成の構成方法や管理方法について説明します。 |
参照
その他の技術情報
SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア
SQL Server 2005 の各エディションがサポートする機能
SQL Server のレプリケーション