2011-03-23 89 views
0

我们有一个运行相当一段时间的服务代理(运行在同一台服务器上)。现在我们要在两台服务器之间添加数据库镜像。数据库镜像和服务代理,镜像路由不可操作

为此,我们必须为服务代理创建新路由和新端点(以支持故障切换时的镜像)。

我们已经在运行完全相同版本的windows和sql-server的开发环境中尝试了这一点。它是:

Microsoft Windows Server 2008 R2(RTM) - 10.50.1734.0(X64)2010年8月11日12:51:02版权所有(c)Windows NT 6.1上的Microsoft Corporation企业版(64位) :)

一个区别是开发环境在虚拟系统中运行。

当我们在生产环境中实现这一点时,我们遇到了在开发环境中从未见过的问题。

服务代理更新变得非常缓慢,但我们可以看到一些消息传出。

,我们得到的错误信息是:

镜子路线不工作。 'TCP://server1.domain.local:4022'充当'未知' []。 'TCP://server2.domain.local:4022'充当'未知' []。

镜像路线是可操作的,但只连接到委托人。 'TCP://server1.domain.local:4022'充当'Principal'[]。 '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'充当'Principal'[]。

正如您所看到的,我们得到有关镜像路由在我们的生产服务器上无法运行的消息,但在我们的开发服务器上无法运行。

数据库镜像是建立在端口5022,服务经纪人4022

如何路由/创建端点的一些例子:

--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' 

当我们删除了数据库镜像端点一切开始再次正常工作。

任何想法?

谢谢!

回答

0

据我所知,这些消息不是错误,而是当委托人与镜像服务器建立连接时得到记录的预期信息消息。未使用的镜像连接会在90秒不活动后丢弃,然后根据需要重新连接,因此根据镜像数据移动模式的不同,您可能会多次或多次看到这些路由消息。

当你说服务代理更新变得非常慢时,你能否提供一些数据说明它比基线要慢多少?

+0

显示的信息“快速数据推送”的例子颇为相似,在我们的开发服务器的消息,但与与其说主/镜像它说未知的差异。另外,我没有任何号码给你。由于这影响了我们的生产环境,我们不得不尽快修复它。我们试图在我们的开发服务器上重新创建问题,但迄今尚未取得任何成功。 – Patrik 2011-03-23 20:57:34