可用性グループの一部であるSQL Server 2012データベースでService Brokerを有効にしようとしていますが、次のエラーメッセージが表示され続けます。
データベース "dbname"はデータベースミラーリングセッションまたは可用性グループに含まれているため、操作を実行できません。一部の操作は、データベースミラーリングセッションまたは可用性グループに参加しているデータベースでは許可されていません。
ALTER DATABASEステートメントが失敗しました。 (Microsoft SQL Server、エラー:1468)
データベースでTrustworthy
を有効にしようとしても、同じエラーが発生します。 この記事 によると、AG用に構成されたデータベースでService Brokerを有効にできるようです。何が欠けているのでしょうか?
リスナーが構成され、エンドポイントはパブリック権限で作成され、ターゲットはリスナー名を参照します。このエラーは、サービスブローカーを有効にするか、管理コンソールまたはT-SQLを介してTrustworthy
を設定しようとすると発生します。
データベースが、既存のService Broker実装を使用したSQL Server 2005バージョンからの復元であることを追加したかったのです。
データベースがSQL Server 2005からの復元であることを追加したかった
データベースを復元すると、そのService Brokerは無効になり、明示的に有効にする必要があります(これが必要な理由はありますが、ここでは説明しません)。 DBを復元し、次にAGを有効化ブローカーなしでセットアップした場合、AGはService Brokerを有効化せずにセットアップしたため、ALTER DATABASE SET ENABLE_BROKER
。残念ながら正しく設定するには、ブローカーを有効にするbefore AGに追加する必要があります。つまり、AGを切り離してブローカーを有効にしてから、AGを再度設定する必要があります。