Sql server 2008 数据库镜像和service broker,镜像路由不可操作
我们已经有一个服务代理运行了很长时间(在同一台服务器上运行)。现在我们想在两台服务器之间添加数据库镜像 为此,我们必须为ServiceBroker创建新路由和新端点(以支持故障切换时的镜像) 我们已经在运行完全相同版本的windows和sql server的开发环境中尝试了这一点。即: Microsoft SQL Server 2008 R2(RTM)-10.50.1734.0(X64)2010年8月11日12:51:02版权所有(c)Windows NT 6.1上的Microsoft Corporation企业版(64位)(版本7600:) 一个区别是开发环境运行在虚拟系统中 当我们在生产环境中实现这一点时,我们遇到了在开发环境中从未见过的问题 ServiceBroker的更新变得非常缓慢,但我们可以看到一些消息已经通过 我们得到的错误消息是: 镜像路由不可操作'TCP://server1.domain.local:4022'充当'Unknown'[].'TCP://server2.domain.local:4022'充当'Unknown'[] 镜像路由正在运行,但仅连接到主体。”TCP://server1.domain.local:4022'充当“主体”[]TCP://server2.domain.local:4022'充当“未知”[] 在我们的开发服务器上,我们得到了类似的信息: 镜像路由可操作'TCP://server1.devdomain.local:4022'充当“镜像”[]TCP://server2.devdomain.local:4022'充当'Principal'[] 镜像路由正在运行,但仅连接到主体。”TCP://server1.devdomain.local:4022'充当“未知”[]TCP://server2.devdomain.local:4022'充当“主体”[] 正如您所看到的,我们得到的消息是,镜像路由在我们的生产服务器上不可用,但在我们的开发服务器上不可用 数据库镜像通过端口5022和ServiceBroker for 4022进行设置 创建路由/端点的一些示例:Sql server 2008 数据库镜像和service broker,镜像路由不可操作,sql-server-2008,service-broker,database-mirroring,Sql Server 2008,Service Broker,Database Mirroring,我们已经有一个服务代理运行了很长时间(在同一台服务器上运行)。现在我们想在两台服务器之间添加数据库镜像 为此,我们必须为ServiceBroker创建新路由和新端点(以支持故障切换时的镜像) 我们已经在运行完全相同版本的windows和sql server的开发环境中尝试了这一点。即: Microsoft SQL Server 2008 R2(RTM)-10.50.1734.0(X64)2010年8月11日12:51:02版权所有(c)Windows NT 6.1上的Microsoft Corp
--created on booth principal and mirror
CREATE ENDPOINT [Mirroring]
AUTHORIZATION [domain\sqlservice]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = DISABLED)
--created on booth principal and mirror
CREATE ENDPOINT [BrokerEndpoint]
AUTHORIZATION [domain\sqlservice]
STATE=STARTED
AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL)
FOR SERVICE_BROKER (MESSAGE_FORWARDING = DISABLED, MESSAGE_FORWARD_SIZE = 10, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = DISABLED)
--created in DB1 (on principal)
CREATE ROUTE [RouteToDB2] AUTHORIZATION [dbo] WITH SERVICE_NAME = N'ExecSPReceiveService' , BROKER_INSTANCE = N'DF46452B-97F3-4924-AD2A-A130FDC2016F' , ADDRESS = N'TCP://server1.domain.local:4022' , MIRROR_ADDRESS = N'TCP://server2.domain.local:4022'
--created in DB2 (on principal)
CREATE ROUTE [RouteToDB1] AUTHORIZATION [dbo] WITH SERVICE_NAME = N'ExecSPSendService' , BROKER_INSTANCE = N'91CBA730-48A2-47A8-95C8-0558706250AB' , ADDRESS = N'TCP://server1.domain.local:4022' , MIRROR_ADDRESS = N'TCP://server2.domain.local:4022'
当我们删除数据库镜像端点时,一切又开始正常工作
有什么想法吗
谢谢 据我所知,这些消息不是错误,而是主体与镜像服务器建立连接时记录的预期信息性消息。未使用的镜像连接在90秒不活动后会断开,然后按需重新连接,因此根据镜像数据移动模式,您可能会或多或少地看到这些路由消息
当您说Service Broker更新变得非常慢时,您能提供一些数字说明它比基线慢了多少吗?据我所知,这些消息不是错误,而是主体与镜像服务器建立连接时记录的预期信息消息。未使用的镜像连接在90秒不活动后会断开,然后按需重新连接,因此根据镜像数据移动模式,您可能会或多或少地看到这些路由消息
当您说Service Broker更新变得非常慢时,您能提供一些数字说明它比基线慢了多少吗?问题是因为我们为Service Broker设置了“启动并忘记”模式 我们实施了rusanu推广的更好的解决方案,此后一切都在运行
我们还使用了此处显示的“快速数据推送”示例问题是因为我们为ServiceBroker设置了“触发并忘记”模式 我们实施了rusanu推广的更好的解决方案,此后一切都在运行
我们还使用了此处显示的“快速数据推送”示例消息与我们的开发服务器上的消息非常相似,但不同之处在于它没有说principal/mirror,而是说unknown。另外,我没有任何数字给你。由于这影响了我们的生产环境,我们必须尽快修复它。我们已经尝试在开发服务器上重新创建问题,但到目前为止没有任何成功。消息与开发服务器上的消息非常相似,但不同之处在于它没有说主体/镜像,而是说未知。另外,我没有任何数字给你。由于这影响了我们的生产环境,我们必须尽快修复它。我们曾试图在开发服务器上重现这个问题,但迄今为止没有任何成功。