Share via


データベースのミラーリングとフェールオーバーのプログラムによる管理

最終更新日: 2010年1月13日

適用対象: SharePoint Foundation 2010

このトピックでは、Microsoft SQL Server のデータベース ミラーリングおよびフェールオーバー機能に対して Microsoft SharePoint Foundation オブジェクト モデルが提供するサポートについて説明します。

データベース ミラーリングと自動フェールオーバー

すべての Microsoft SQL Server データベースは、別の SQL Server サーバー上にミラー化できます。プライマリ データベースに対して行われた書き込みおよび削除操作はすべて、ミラー データベースに複製されます。さらに、プライマリ サーバーでハードウェア、ネットワーク、その他の障害が発生したときは、ミラーリング サーバーがプライマリ データベースの役割を直ちに引き継ぐので、利用しているアプリケーションに対してサービスの中断はほとんど、またはまったく発生しません。

重要重要

データベース ミラーリングを利用しても、データのバックアップが不要になることはありません。通常、プライマリ データベースがハードウェア障害以外の理由で破損した場合、ミラー データベースも同じように破損します。

データベース ミラーリングおよびフェールオーバー サーバーに対する SharePoint Foundation のサポートは、基本的に、ミラーについて SharePoint Foundation に通知することです。詳細な構成は、Microsoft SQL Server ですべて処理されます。サーバーの全体管理アプリケーションには、検索データベースなどのコンテンツ データベースおよびサービス アプリケーション データベースに対するフェールオーバー サーバーを識別するための UI があります。Windows PowerShell のコマンドライン インターフェイス スクリプトを使用すると同じ機能を実現でき、Windows PowerShell のコマンドを使用すると構成データベースに対してフェールオーバー サーバーを指定できます。ソリューションにユーザーがミラー化すると考えられるデータベースが含まれる場合は、オブジェクト モデルを使用して SharePoint Foundation にフェールオーバー サーバーのことを認識させ、この情報を構成データベースに保存できます。

ミラーリング監視サーバーをセットアップすると、プライマリ データベースにアクセスできない場合は、データベース アクセスがミラー データベースに自動的にリダイレクトされます。ミラーリング監視サーバーがない場合でも、SharePoint Foundation はミラーへの迅速な切り替えをサポートします。何らかの理由でプライマリ データベースにアクセスできない場合、SharePoint Foundation はミラーへの接続を試みます。当然のことながら、ミラーは SQL Server で "読み取り可能" に設定されている必要があります。

オブジェクト モデルでのミラーリングとフェールオーバーのサポート

SPDatabase クラスの次の 3 つのメンバーがデータベース ミラーリングをサポートします。

  • FailoverServer プロパティは、データベースのミラーをホストしているサーバーを表す SPServer オブジェクトを取得します。このプロパティは、AddFailoverServiceInstance(String) を呼び出して間接的にのみ設定できます。

  • FailoverServiceInstance プロパティは、データベースのミラーをホストしているデータベース サービスのインスタンスを表す SPDatabaseServiceInstance オブジェクトを取得または設定します。

  • AddFailoverServiceInstance(String) メソッドは、データベースのミラーをホストするサーバーおよびデータベース サービス インスタンスを SharePoint Foundation に示します。サーバーがサーバー ファームにまだ登録されていない場合、このメソッドはサーバーを登録します。AddFailoverServiceInstance(String) に渡すパラメーターは、"サーバー名/データベース サービス インスタンス名" という形式にする必要があります (例: BackupServer/Microsoft##SSEEMirror)。

次の例では、ミラー データベースを SharePoint Foundation 構成データベースに登録する方法を示します。cdb は SPDatabase オブジェクトです。

cdb.AddFailoverServiceInstance("Server2/Microsoft##SSEEMirror");
cdb.Update();
cdb.AddFailoverServiceInstance("Server2/Microsoft##SSEEMirror")
cdb.Update()

ソリューションでサーバーの全体管理アプリケーションに代わる UI もファーム管理者に提供する場合は、ContentDatabaseSection コントロールを使用できます。その特定のプロパティを使用して (具体的には FailoverDatabaseServer プロパティ)、ファーム管理者は関連する値を設定できます。