故障转移后连接到镜像数据库

Posted

技术标签:

【中文标题】故障转移后连接到镜像数据库【英文标题】:connecting to mirrored databases after failover 【发布时间】:2014-08-24 06:01:20 【问题描述】:

我有两个镜像 SQL Server(例如 A 和 B)。 我编写了一个简单的 C# 程序(通过SqlConnection 连接),它将行插入数据库。当我在服务器 A 上进行故障转移时,程序抛出异常,然后我尝试重新连接,并通过超时获取异常 (**A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0**)。

当我重新启动应用程序时,连接已成功建立(到服务器 B)。接下来,我在 B 服务器上进行故障转移,程序抛出异常,然后我尝试重新连接,它的工作 - 连接到 A 没有重新启动程序。

我的连接字符串:

Data Source=SERVER_A;Failover Partner=SERVER_B;Initial Catalog=TEST_DB;persist security info=True;user id=USER_LOGIN;password=USER_PASS;Connection Timeout=60;

我也尝试设置大超时(60秒),并尝试清除所有sqlconnection池,按连接清除单个池,但它不起作用。

有趣的事实:如果我使用域登录名和密码,一切正常! (用户 SID 相同)

【问题讨论】:

故障转移伙伴缓存在这里有一些详细的描述blogs.msdn.com/b/spike/archive/2010/12/08/… 感谢您的评论(昨天看到了这个页面),但这对我没有帮助...... 【参考方案1】:

很难说出您的确切问题是什么。也许是故障转移不是即时的,并且不能转移查询状态 - 请参阅https://dba.stackexchange.com/questions/27528/can-availability-groups-provide-seamless-failover-with-no-query-failures。如果您的应用程序立即重试查询,则故障转移节点可能仍处于接管过程中,因此尚未准备好接受连接。

【讨论】:

以上是关于故障转移后连接到镜像数据库的主要内容,如果未能解决你的问题,请参考以下文章

Sqlserver实现故障转移 — sqlserver镜像备份实现故障转移

SQL Server数据库镜像基于可用性组故障转移

RabbitMQ集群恢复与故障转移的5种解决方案

NHibernate 和数据库连接故障转移?

SQL 数据库镜像

sql server 镜像 主节点异常 镜像节点会提供服务吗