故障转移后连接到镜像数据库
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。如果您的应用程序立即重试查询,则故障转移节点可能仍处于接管过程中,因此尚未准备好接受连接。
【讨论】:
以上是关于故障转移后连接到镜像数据库的主要内容,如果未能解决你的问题,请参考以下文章