Share via


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

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

ログイン

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

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

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

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

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

注意

この問題は、異なるコンピューターの Windows ローカル アカウントに影響します。ただし、ドメイン アカウントを使う場合は、各コンピューターの SID が同じになるため、この問題は発生しません。

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

ジョブ

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

前のプライマリ/プリンシパル サーバー インスタンスを使用できるときは、その SQL Server インスタンスにある元のジョブを削除することも必要です。現在のミラー データベースのジョブは、現在のミラー データベースが RESTORING 状態で使用できないため、失敗することに注意してください。

注意

SQL Server の各インスタンスは、ドライブ文字が異なっているなど、構成が違っている可能性があります。パートナーごとのジョブは、このような違いを考慮する必要があります。