可用性グループのデータベースのためのログインとジョブの管理 (SQL Server)
AlwaysOn 可用性グループのすべてのプライマリ データベースと対応するセカンダリ データベースに対して、同じユーザー ログインとSQL Server エージェント ジョブのセットを定期的に維持する必要があります。 可用性グループの可用性レプリカをホストする SQL Server のすべてのインスタンス上でログインとジョブを再作成する必要があります。
SQL Server エージェント ジョブ
関連するジョブを、元のプライマリ レプリカをホストするサーバー インスタンスから元のセカンダリ レプリカをホストするサーバー インスタンスに手動でコピーする必要があります。 すべてのデータベースで、関連するジョブの先頭にロジックを追加して、そのジョブがプライマリ データベースでのみ実行されるようにする必要があります。つまり、ローカル レプリカがデータベースのプライマリ レプリカである場合のみ実行されるようにします。
可用性グループの可用性レプリカをホストするサーバー インスタンスは、構成が異なる場合があります (別のテープ ドライブ文字など)。 各可用性レプリカのジョブは、このような違いを考慮する必要があります。
バックアップ ジョブは、 sys.fn_hadr_is_preferred_backup_replica 関数を使用し、可用性グループのバックアップ設定に従ってローカル レプリカがバックアップ用に推奨されるかどうかを識別できます。 メンテナンス プラン ウィザード を使用して作成されたバックアップ ジョブは、ネイティブでこの関数を使用します。 他のバックアップ ジョブでは、バックアップ ジョブの中でこの関数を条件として使用して、バックアップ ジョブが優先レプリカでのみ実行されるようにすることをお勧めします。 詳細については、「 アクティブなセカンダリ: セカンダリ レプリカでのバックアップ (AlwaysOn 可用性グループ)」を参照してください。
ログイン
包含データベースを使用している場合は、データベースの包含ユーザーを構成でき、これらのユーザーにはセカンダリ レプリカをホストするサーバー インスタンス上のログインを作成する必要がありません。 非包含可用性データベースでは、可用性レプリカをホストするサーバー インスタンス上で、ログインするユーザーを作成する必要があります。 詳細については、「CREATE USER (Transact-SQL)」を参照してください。
SQL Server 認証またはローカル Windows ログインを使用するアプリケーションがある場合は、このトピックの「SQL Server 認証またはローカル Windows ログインを使用するアプリケーションのログイン」を参照してください。
Note
SQL Server ログインが未定義のデータベース ユーザー、またはサーバー インスタンスで適切に定義されていないデータベース ユーザーは、インスタンスにログインできません。 このようなユーザーは、そのサーバー インスタンスのデータベースの 孤立ユーザー と呼ばれます。 ユーザーが特定のサーバー インスタンスで孤立している場合は、いつでもユーザー ログインをセットアップできます。 詳細については、「孤立したユーザーのトラブルシューティング (SQL Server)」を参照してください。
追加メタデータ
ログインとジョブは、特定の可用性グループのセカンダリ レプリカをホストする各サーバー インスタンスで再作成する必要がある唯一の情報ではありません。 たとえば、サーバー構成設定、資格情報、暗号化されたデータ、権限、サービス ブローカー アプリケーション、トリガー (サーバー レベル) などの再作成が必要な場合があります。 詳細については、「データベースを別のサーバー インスタンスで使用できるようにするときのメタデータの管理 (SQL Server)」を参照してください。
SQL Server 認証またはローカル Windows ログインを使用するアプリケーションのログイン
アプリケーションで SQL Server 認証またはローカル Windows ログインを使用している場合、SID が一致しないと、 SQL Serverのリモート インスタンスでアプリケーションのログインを解決できないことがあります。 SID が一致しないと、ログインはリモート サーバー インスタンスの孤立ユーザーになります。 この問題は、アプリケーションがフェールオーバー後にミラー化されたデータベースまたはログ配布データベース、またはバックアップから初期化されたレプリケーション サブスクライバー データベースに接続すると発生する可能性があります。
この問題を防ぐために、 SQL Serverのリモート インスタンスによってホストされているデータベースを使用するようにアプリケーションをセットアップする場合、予防策を講じることをお勧めします。 予報策として、 SQL Server のローカル インスタンスから SQL Serverのリモート インスタンスにログインとパスワードを転送する必要があります。 この問題を回避する方法の詳細については、サポート技術情報の記事 918992 「SQL Server のインスタンス間でログインおよびパスワードを転送する方法」を参照してください。
Note
この問題は、さまざまなコンピューターの Windows ローカル アカウントに影響します。 ただし、各コンピューターの SID は同じであるため、この問題はドメイン アカウントでは発生しません。
詳細については、「 Orphaned Users with Database Mirroring and Log Shipping 」(データベース ミラーリングとログ配布での孤立ユーザー) (データベース エンジンのブログ) を参照してください。