Always On 可用性グループのデータベースを使用するジョブのログインを管理する
適用対象: SQL Server
Always On 可用性グループ (AG) のすべてのプライマリ データベースとその対応するセカンダリ データベース上で、ユーザー ログインと SQL Server エージェント ジョブの同じセットを定期的に管理する必要があります。 AG の可用性レプリカをホストする SQL Server のすべてのインスタンス上でログインとジョブを再作成する必要があります。
SQL Server エージェント ジョブ
関連するジョブを、元のプライマリ レプリカをホストするサーバー インスタンスから元のセカンダリ レプリカをホストするサーバー インスタンスに手動でコピーする必要があります。 すべてのデータベースで、関連するジョブの先頭にロジックを追加して、そのジョブがプライマリ データベースでのみ実行されるようにする必要があります。つまり、ローカル レプリカがデータベースのプライマリ レプリカである場合のみ実行されるようにします。
AG の可用性レプリカをホストするサーバー インスタンスは、構成が異なる場合があります (別のテープ ドライブ文字など)。 各可用性レプリカのジョブは、このような違いを考慮する必要があります。
バックアップ ジョブは、sys.fn_hadr_is_preferred_backup_replica 関数を使用し、AG のバックアップ設定に従ってローカル レプリカがバックアップ用に推奨されるかどうかを識別できます。 「メンテナンス計画ウィザードの使用」を用いて作成されたバックアップ ジョブは、ネイティブでこの関数を使用します。 他のバックアップ ジョブでは、バックアップ ジョブの中でこの関数を条件として使用して、バックアップ ジョブが優先レプリカでのみ実行されるようにすることをお勧めします。 詳細については、「可用性グループのセカンダリ レプリカにサポートされているバックアップをオフロードする」を参照してください。
ログイン
包含データベースを使用している場合は、データベースの包含ユーザーを構成でき、これらのユーザーにはセカンダリ レプリカをホストするサーバー インスタンスのログインを作成する必要がありません。 非包含可用性データベースでは、可用性レプリカをホストするサーバー インスタンス上で、ログインするユーザーを作成する必要があります。 詳細については、「CREATE USER」を参照してください。
SQL Server 認証またはローカル Windows ログインを使用するアプリケーションがある場合は、この記事の後半にある「SQL Server 認証またはローカル Windows ログインを使用するアプリケーションのログイン」を参照してください。
注意
SQL Server ログインが未定義のデータベース ユーザー、またはサーバー インスタンスで適切に定義されていないデータベース ユーザーは、インスタンスにログインできません。 このようなユーザーは、そのサーバー インスタンスのデータベースの 孤立ユーザー と呼ばれます。 ユーザーが特定のサーバー インスタンスで孤立している場合は、いつでもユーザー ログインをセットアップできます。 詳細については、「孤立したユーザーのトラブルシューティング (SQL Server)」を参照してください。
追加メタデータ
特定の AG のセカンダリ レプリカをホストする各サーバー インスタンスで再作成する必要がある情報は、ログインとジョブだけではありません。 たとえば、サーバー構成設定、認証情報、暗号化されたデータ、アクセス許可、レプリケーション設定、Service Broker アプリケーション、トリガー (サーバー レベル) などの再作成が必要な場合があります。 詳細については、「データベースを別のサーバーで使用できるようにするときのメタデータの管理」を参照してください。
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 」(データベース ミラーリングとログ配布での孤立ユーザー) (データベース エンジンのブログ) を参照してください。