役割の交代後のログインとジョブの管理 (SQL Server)

SQL Server データベースの高可用性ソリューションまたは災害復旧ソリューションを展開する場合、master 内のデータベースまたは msdb データベースに格納されている関連情報を再現することが重要です。 通常、関連情報には、プライマリ/プリンシパル データベースのジョブおよびデータベースへの接続に必要なユーザーまたはプロセスのログインが含まれます。 セカンダリ/ミラー データベースをホストする SQL Server の任意のインスタンスでこの情報を複製する必要があります。 可能であれば、役割の交代後に、プログラムで新しいプライマリ/プリンシパル データベースに情報を再現することが最善の方法です。

ログイン

データベースのコピーをホストするすべてのサーバー インスタンスで、プリンシパル データベースにアクセスする権限を持つログインを再現する必要があります。 プライマリ/プリンシパルの役割が交代すると、新しいプリンシパル/プライマリ サーバー インスタンスにログインが存在するユーザーのみが新しいプリンシパル/プライマリ データベースにアクセスできます。 ログインが新しいプライマリ/プリンシパル サーバー インスタンスで定義されていないユーザーは孤立して、データベースにアクセスできません。

ユーザーが孤立している場合は、新しいプライマリ/プリンシパル サーバー インスタンスでログインを作成し、sp_change_users_login を実行します。 詳細については、「孤立ユーザーのトラブルシューティング (SQL Server)」を参照してください。

SQL Server 認証またはローカル Windows ログインを使用するアプリケーションのログイン

アプリケーションで SQL Server 認証またはローカル Windows ログインを使用している場合、SID が一致しないと、SQL Server のリモート インスタンスでアプリケーションのログインを解決できないことがあります。 SID が一致しないと、ログインはリモート サーバー インスタンスの孤立ユーザーになります。 この問題は、アプリケーションがフェールオーバー後にミラー化されたデータベースまたはログ配布データベース、またはバックアップから初期化されたレプリケーション サブスクライバー データベースに接続すると発生する可能性があります。

この問題を防ぐために、SQL Server のリモート インスタンスによってホストされているデータベースを使用するようにアプリケーションをセットアップする場合、予防策を講じることをお勧めします。 予報策として、SQL Server のローカル インスタンスから SQL Server のリモート インスタンスにログインとパスワードを転送する必要があります。 この問題を回避する方法の詳細については、サポート技術情報の記事 918992「SQL Server 2005 のインスタンス間でログインおよびパスワードを転送する方法」を参照してください。

注意

この問題は、さまざまなコンピューターの Windows ローカル アカウントに影響します。 ただし、各コンピューターの SID は同じであるため、この問題はドメイン アカウントでは発生しません。

詳細については、「データベース ミラーリングとログ配布での孤立ユーザー」(データベース エンジンのブログ) を参照してください。

ジョブ

バックアップ ジョブなどのジョブでは、特別な考慮が必要になります。 通常は、役割の交代後、データベース所有者またはシステム管理者が、新しいプライマリ/プリンシパル データベース用にジョブを再作成する必要があります。

元のプライマリ/プリンシパル サーバー インスタンスが使用できる場合は、SQL Server のそのインスタンスで元のジョブを削除する必要があります。 現在のミラー データベースのジョブは RESTORING 状態であるため失敗し、使用できなくなります。

注意

SQL Server の複数のインスタンスを、別のドライブ文字などを使用して別に構成できます。 パートナーごとのジョブは、このような違いを考慮する必要があります。

関連項目

概念

データベースを別のサーバー インスタンスで使用できるようにするときのメタデータの管理 (SQL Server)

孤立ユーザーのトラブルシューティング (SQL Server)