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 のインスタンス間でログインおよびパスワードを転送する方法」を参照してください。
注
この問題は、さまざまなコンピューターの Windows ローカル アカウントに影響します。 ただし、各コンピューターの SID は同じであるため、この問題はドメイン アカウントでは発生しません。
詳細については、「 Orphaned Users with Database Mirroring and Log Shipping 」(データベース ミラーリングとログ配布での孤立ユーザー) (データベース エンジンのブログ) を参照してください。
仕事
バックアップ ジョブなどのジョブでは、特別な考慮が必要になります。 通常は、役割の交代後、データベース所有者またはシステム管理者が、新しいプライマリ/プリンシパル データベース用にジョブを再作成する必要があります。
元のプライマリ/プリンシパル サーバー インスタンスが使用できる場合は、 SQL Serverのそのインスタンスで元のジョブを削除する必要があります。 現在のミラー データベースのジョブは RESTORING 状態であるため失敗し、使用できなくなります。
注
SQL Server の複数のインスタンスを、別のドライブ文字などを使用して別に構成できます。 パートナーごとのジョブは、このような違いを考慮する必要があります。
こちらもご覧ください
データベースを別のサーバー インスタンスで使用できるようにするときのメタデータの管理 (SQL Server)
孤立したユーザーのトラブルシューティング (SQL Server)