スケーラブルな共有データベースの概要

スケーラブルな共有データベース機能を使用すると、レポートのために構築した読み取り専用データベース (レポート データベース) をスケール アウトすることができます。レポート データベースは、データベースをホストすることを主な目的とした、専用の読み取り専用ボリューム上にあることが必要です。サーバーとボリューム用に汎用的なハードウェアを使用してレポート データベースをスケール アウトし、複数のレポート サーバー上でレポート データの同一のビューを提供することができます。この機能により、レポート データベースへのスムーズな更新も可能になります。

レポート ボリュームのセット上でレポート データベースを構築したら、ボリュームを読み取り専用としてマークし、複数のレポート サーバーにマウントします。各レポート サーバーでレポート データベースを MicrosoftSQL Server 2005 以降のバージョンのインスタンスにアタッチすると、スケーラブルな共有データベースとして使用可能になります。スケーラブルな共有データベースとして構築した後は、異なるレポート サーバーを使用する複数のクライアントでレポート データベースを共有することができます。データベースにクエリを実行するには、ユーザーまたはアプリケーションから、データベースがアタッチされているいずれかのサーバー インスタンスに接続します。レポート データベースのバージョンが同じなら、異なるサーバー上の複数のクライアントでレポート データベースの同一のビューが得られるため、サーバー間でクエリ結果の一貫性が保たれます。

利点

スケーラブルな共有データベースには以下の利点があります。

  • 汎用的なサーバーとハードウェアを使用した、レポート サーバー上のワークロードのスケール アウトが可能

    スケーラブルな共有データベースは、読み取り専用のデータ マートまたはデータ ウェアハウスを構築するための、コスト効果の高い方法です。クエリを実行したり Reporting Services を使用するなど、レポートを生成する目的で複数のサーバー インスタンスからこのデータベースにアクセス可能です。

  • ワークロードの分離

    各サーバーは、サーバー自体のメモリ、CPU、および tempdb データベースを使用するため、調整が不十分なクエリがあってもサーバーのすべてのリソースが独占されてしまうことはありません。

  • すべてのサーバーでレポート データのビューが同一

    ここでは、たとえば同じ照合順序を使用するなど、すべてのサーバー インスタンスが同じように構成されていることを前提としています。

    注意注意

    別のレポート ボリューム上でレポート データベースを更新することができます。詳細については、「スケーラブルな共有データベースの可用性の最大化」を参照してください。

制限事項

スケーラブルな共有データベースには以下の制限があります。

  • データベースは読み取り専用ボリューム上にあることが必要です。

  • データ ファイルには SAN を通じてアクセス可能であることが必要です。

  • データベースは、Windows Server 2003 SP1 以降で動作している Windows Storage だけでサポートされます。

  • スケーラブルな共有データベース構成は、共有データベースあたり 8 台のサーバー インスタンスに制限することを推奨します。

  • スケーラブルな共有データベースでは、データベース スナップショットがサポートされません。

重要な注意事項重要

スケーラブルな共有データベースを構成するには、あらかじめストレージ エリア ネットワーク環境が正常に動作している必要があります。スケーラブルな共有データベースを使用するためのガイドラインと推奨事項については、「スケーラブルな共有データベースのための適切な環境の確保」を参照してください。

レポート データベースの構築とスケール アウト

新しいスケーラブルな共有データベースを構成するには、まずレポート ボリュームのセット上に新しいレポート データベースを構築するか、古いバージョンのレポート データベースを更新します (構築フェーズまたは更新フェーズ)。次に、複数のサーバー インスタンス上でスケーラブルな共有データベースとしてデータベースを構成して、データベースをスケール アウトします (アタッチ フェーズ)。

以下の図に、単一のレポート ボリュームを使用して新しいレポート データベースを構築し、レポート データベースをアタッチして、スケーラブルな共有データベースとして使用可能にするようすを示します。

レポート作成ボリュームを 1 つ使用する、スケーラブルな共有データベース

図中の構築フェーズは、実稼働サーバー上でレポート ボリュームをマウントし、レポート データベースを構築する過程を示します。ボリュームを実稼働システムでマウントした後、読み書き可能としてマークします。次に、データまたはデータベースをコピーするために SQL Server 2005 以降のバージョンで提供されているいずれかのデータ コピー方法を使用して、ボリューム上にレポート データベースを構築します。この図のレポート データベースは、実稼働データベースの完全なコピーです。データベースを構築したら、各レポート ボリュームを読み取り専用にしてマウント解除します。

図中のアタッチ フェーズは、レポート データベースをスケーラブルな共有データベースとして使用可能にする過程を示します。まず、読み取り専用のレポート ボリュームを、SAN を通じて複数のレポート サーバーにマウントします。次に、各レポート サーバー上で、SQL Server のインスタンスにレポート データベースをアタッチします。ボリュームは読み取り専用であるため、データベースは読み取り専用データベースとしてアタッチします。あるレポート サーバー上でこの処理が完了すると、レポート データベースはそのサーバー上でスケーラブルな共有データベースになります。ただし、アタッチ フェーズ全体は、すべてのレポート サーバー上でデータベースをアタッチするまで続きます。

あるバージョンのレポート データベースは、いずれかのレポート サーバー上でアタッチされている限りスケーラブルな共有データベースとして使用可能です。

レポート ボリュームの更新

レポート データベースは読み取り専用であるため、通常はしだいに古くなり、更新してレポート データを最新にする必要があります。スケーラブルな共有データベース構成では、あるレポート ボリュームのセット上のレポート データベースを同じデータベースの更新されたバージョンで置き換える処理全体を、更新サイクルと呼びます。

更新サイクル

更新サイクルの最初のフェーズはデタッチ フェーズです。このフェーズでは、最終的にすべてのレポート サーバーからすべてのレポート ボリュームをマウント解除します。次に更新フェーズがあります (これは、新しいレポート データベースの構築フェーズと同じです)。更新フェーズでは、どのサーバーでもマウントされていない読み取り専用ボリューム上に、更新された最新版のデータベースを作成します。最後に、アタッチ フェーズでデータベースをスケーラブルな共有可能データベースにします。このフェーズは、新しいレポート データベースをアタッチするために使用した手順と同じです。

  • デタッチ フェーズ

    更新サイクルの最初の段階では、各レポート サーバー上のスケーラブルな共有データベース構成から古いデータベースを削除します。古いレポート データベースを、スケーラブルな共有データベースとしてのサービスから削除する処理は、更新サイクルにおけるデタッチ フェーズと呼ばれます。あるレポート サーバー上でレポート データベースの更新版を作成する前に、そのサーバー上でこのフェーズを実行する必要があります。

    データベースの削除を開始するには、各サーバー インスタンスからデータベースに対して実行されるクエリ ワークロードを停止します。次に、各レポート サーバー上でデータベースをデタッチします。最後のサーバー インスタンスからデタッチすると、レポート データベースはスケーラブルな共有データベースでなくなります。このフェーズを完了するために、古いデータベースが格納されているレポート ボリュームのセットのマウントを解除します。

  • 更新フェーズ

    更新サイクルの次のフェーズでは、同じレポート ボリュームのセット上のデータベースを更新します。データベースを最新にするには、最新の実稼働データをインポートするなどして更新するか、実稼働データベースの最新のバックアップを復元するなどして再構築します。データベースの望ましい更新方法は、ビジネス要件によって変わります。

  • アタッチ フェーズ

    レポート ボリュームのセットの更新サイクルを終えるには、更新済みのデータベースをスケール アウトする必要があります。あるスケーラブルな共有データベース構成に対して 1 セットのレポート ボリュームだけを使用する場合は、更新時のアタッチ処理は元のアタッチ処理と同じです。

2 つのレポート ボリュームのセット間でデータベースのバージョンを交互に更新する

スケーラブルな共有データベース構成の可用性を高めるため、2 つのレポート ボリュームのセットを交互に使用することができます。これにより、古いデータベースと新しいデータベースの更新サイクルを重ねることが可能になります。新しいレポート データベースは異なるボリュームのセット上に存在します。古いバージョンのデータベースをデタッチしてボリュームのマウントを解除する前に、別のボリュームのセット上のデータベースを更新してこれらのボリュームを各レポート サーバーにマウントします。次に、あるサーバー インスタンスから古いバージョンのデータベースをデタッチしたら、すぐに新しいバージョンのデータベースをアタッチします。

詳細については、「スケーラブルな共有データベースの可用性の最大化」を参照してください。