小编Ale*_*tap的帖子

SQL Server 数据库镜像:故障转移时奇怪的客户端应用程序行为

我正在建立一个基于三台 SQL Server 2008 R2 机器和数据库镜像的 HA SQL 服务器环境。

我会命名它们:

  • 委托人.company.intra
  • mirror.company.intra
  • 证人.company.intra

“company.intra”域是控股公司的域。

两个数据库引擎都在侦听静态 52002 端口,因此客户端应用程序可以通过以下方式访问它们:

principal.company.intra,52002 & mirror.company.intra,52002
Run Code Online (Sandbox Code Playgroud)

端点EP_Mirroring在主体和镜像、EP_Witness见证和侦听主体的 5022 端口、镜像的 5023 和见证的 5024 端口上调用。

服务帐户已正确配置并被授予对彼此端点的连接权限。

镜像功能工作正常,并且在 TSQL 手动故障转移或模拟系统故障的情况下,数据库可以正确进行故障转移。

问题在于应用程序在故障转移时行为异常。

应用程序测试上下文如下:

一个包含两个文本框和一个按钮的小型 .NET 应用程序:

单击按钮时,它会进行存储过程调用,并使用 sp 的输出填充 Textbox1,使用 my 的数据源属性填充 Textbox2 SqlConnection

连接字符串如下所示:

Data source=principal.company.intra,52002;failover partner=mirror.company.intra,52002;
initial catalog = TEST_FAILOVER;user ID=user;password=pass;Connection Timeout=30
Run Code Online (Sandbox Code Playgroud)

我从我的笔记本电脑启动了这个应用程序,位于另一个域: laptop.childcompany.com

场景一

  1. 我启动应用程序
  2. 按下按钮,TB1:sp 输出/TB2:principal.company.intra,52002
  3. 数据库故障转移
  4. 按钮按下,连接超时
  5. 按钮按下,连接超时
  6. 镜像中的数据库故障转移(返回主体)
  7. 按下按钮,TB1:sp 输出/TB2:principal.company.intra,52002

场景二

  1. 数据库故障转移
  2. 启动应用程序
  3. 按下按钮,TB1:sp 输出/TB2:mirror.company.intra,52002
  4. 镜像中的数据库故障转移(回到主体)
  5. 按下按钮,连接错误 …

sql-server mirroring sql-server-2008-r2 high-availability

7
推荐指数
1
解决办法
1469
查看次数