web-dev-qa-db-ja.com

可用性グループに含まれるデータベースでService Brokerを有効にする

可用性グループの一部であるSQL Server 2012データベースでService Brokerを有効にしようとしていますが、次のエラーメッセージが表示され続けます。

データベース "dbname"はデータベースミラーリングセッションまたは可用性グループに含まれているため、操作を実行できません。一部の操作は、データベースミラーリングセッションまたは可用性グループに参加しているデータベースでは許可されていません。
ALTER DATABASEステートメントが失敗しました。 (Microsoft SQL Server、エラー:1468)

データベースでTrustworthyを有効にしようとしても、同じエラーが発生します。 この記事 によると、AG用に構成されたデータベースでService Brokerを有効にできるようです。何が欠けているのでしょうか?

リスナーが構成され、エンドポイントはパブリック権限で作成され、ターゲットはリスナー名を参照します。このエラーは、サービスブローカーを有効にするか、管理コンソールまたはT-SQLを介してTrustworthyを設定しようとすると発生します。

データベースが、既存のService Broker実装を使用したSQL Server 2005バージョンからの復元であることを追加したかったのです。

6
Sol Esguerra

データベースがSQL Server 2005からの復元であることを追加したかった

データベースを復元すると、そのService Brokerは無効になり、明示的に有効にする必要があります(これが必要な理由はありますが、ここでは説明しません)。 DBを復元し、次にAGを有効化ブローカーなしでセットアップした場合、AGはService Brokerを有効化せずにセットアップしたため、ALTER DATABASE SET ENABLE_BROKER。残念ながら正しく設定するには、ブローカーを有効にするbefore AGに追加する必要があります。つまり、AGを切り離してブローカーを有効にしてから、AGを再度設定する必要があります。

7
Remus Rusanu