【问题标题】:Connect timeout, database failover not working连接超时,数据库故障转移不起作用
【发布时间】:2014-02-02 10:46:19
【问题描述】:

我已经使用 SQL Server 2008 在 Azure 上实现了数据库镜像,见证人使用 SQL Server 。镜像/故障转移在 SQL Server 端工作。我遇到的问题是,一旦发生故障转移,我的 asp.net 网站无法连接到新的原则数据库,并且仍在尝试连接旧的原则。

我已尝试按照post 中的建议将 60 秒连接超时添加到我的连接字符串。但是,这没有任何效果。我最终得到的只是大约 60 秒后的以下错误:

请求超时。

还有人有其他建议吗?

非常感谢任何帮助!

编辑

我的连接字符串是:

数据源=server1;故障转移伙伴=server2;初始目录=DBNAME;用户ID=WebsiteUser;密码=******;连接超时=60;multipleactiveresultsets=True

【问题讨论】:

  • 发布连接字符串(无凭据,如果有)可能会有所帮助...
  • @ta.speot.is 已编辑反映,谢谢
  • blogs.msdn.com/b/spike/archive/2010/12/08/… 有一些关于此的文档 - 例如池连接可能不知道故障转移。
  • @ta.speot.is: 但不应该池化连接,因此只会导致一半的超时延迟来识别故障转移?编辑:不要介意,请参阅场景 #5 的答案:“不,它会失败”:)
  • 谢谢@ta.speot.is 我很确定它是池连接。

标签: c# sql-server failover database-mirroring


【解决方案1】:

【讨论】:

  • 是的,我已将故障转移伙伴添加到我的连接字符串中。
  • 我刚刚检查过:我设置了用户名、密码、初始目录、servernae、故障转移伙伴和超时,仅此而已。顺便说一句:我的经验是当主体失败时,您的第一次连接尝试将花费大约一半的超时时间,之后连接将成功连接到故障转移伙伴(有关原因,请参阅底层故障转移伙伴机制的 msdn 描述)
猜你喜欢
  • 2014-01-21
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 2014-08-24
  • 1970-01-01
  • 2010-11-06
  • 2018-08-17
相关资源
最近更新 更多