我的一个客户端有一个与service一起工作的数据库,上周我们尝试将数据库移动到一个始终处于on环境中,而不知道应用程序使用的是service。在有人抱怨它不起作用之后(排定的会议没有添加到日历中,旧的会议也没有结束(这是一个临床应用程序))之后,我们发现Microsoft对服务代理的引用总是开着,并试图使用它:https://learn.microsoft.com/en-us/sql/database-engine/availability-groups/windows/service-broker-with-always-on-availability-groups-sql-server?view=sql-server-2017。
但还是没起作用。一开始我们试过
alter database [databasename] set enable_broker with rollback immediate
alter database [databasename] set new_broker with rollback immediate
我们收到了一个错误
Msg 1468、级别16、状态1、第2行不能对数据库"dbname“执行操作,因为它涉及数据库镜像会话或可用性组。在参与数据库镜像会话或可用性组的数据库上,不允许进行某些操作。Msg 5069,第16级,国家1
我们还尝试了以下命令:
CREATE ENDPOINT [SSBEndpoint]
STATE = STARTED
AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL )
FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)
GRANT CONNECT ON ENDPOINT::[SSBEndpoint] TO [PUBLIC]
ALTER ROUTE AutoCreatedLocal
WITH ADDRESS = 'TCP://[server]:4022' ;
最后,我们别无选择,我们将其从“始终打开”组中删除,在执行此命令之后,它起了作用:
ALTER ROUTE AutoCreatedLocal
WITH ADDRESS = 'LOCAL' ;
有人知道我们在配置中缺少了什么吗?谢谢。
发布于 2019-03-01 15:28:06
为了让Service与可用性组一起工作,您必须在将它添加到可用性组之前为数据库启用Service。
您的问题表明您创建了AG,然后尝试配置Service。
另外,要注意有使用可用性组的服务会话的某些修补程序级别要求。
发布于 2020-12-18 15:14:42
你可以的
https://dba.stackexchange.com/questions/214081
复制相似问题