在可用性组中涉及的数据库上启用 Service Broker

Sol*_*rra 6 sql-server service-broker sql-server-2012 availability-groups

我正在尝试在属于可用性组的 SQL Server 2012 数据库上启用 Service Broker 并不断收到此错误消息:

无法对数据库“dbname”执行该操作,因为它涉及数据库镜像会话或可用性组。不允许对参与数据库镜像会话或可用性组的数据库执行某些操作。
ALTER DATABASE 语句失败。(Microsoft SQL Server,错误:1468)

即使尝试Trustworthy在数据库上启用也会产生相同的错误。根据这篇文章,似乎可以在为 AG 配置的数据库上启用 Service Broker。我可能会错过什么?

侦听器已配置,使用公共权限创建的端点,目标引用侦听器名称。当我尝试启用服务代理或Trustworthy通过管理控制台或 T-SQL 进行设置时发生错误。

我想补充一点,该数据库是从具有现有 Service Broker 实现的 SQL Server 2005 版本还原的。

Rem*_*anu 7

我想补充一点,该数据库是从 SQL Server 2005 还原的

当您恢复数据库时,其中的 Service Broker 将被禁用并且必须显式启用(这有其必要性,但我不会深入探讨)。如果您恢复了数据库,然后首先设置了不启用代理的 AG,则您已经设置了不启用 Service Broker 的 AG,现在您无法运行ALTER DATABASE SET ENABLE_BROKER. 不幸的是,要正确设置它,您必须将其添加到 AG之前启用代理,这意味着您必须拆开 AG,启用代理,然后再次设置 AG。