我在带有见证服务器的两台SQL 2012 Standard Edition服务器上安装了SQL镜像。镜像在SQL方面很有用,我可以故障转移到每一个都很好。问题是当我手动故障转移到镜像服务器时,我的.Net应用程序无法访问故障转移伙伴,他们只是不断尝试访问主服务器并最终超时。我可以在SQL错误日志中看到主服务器上的连接尝试;错误是"对显式指定的数据库失败"这是有道理的,因为它现在是镜像并处于恢复状态。
这是我的连接字符串:
connectionString="Server=x.x.x.x,[port];Failover Partner=x.x.x.x,[port];Database=[dbname];Network=dbmssocn;Integrated Security=SSPI;Connection Timeout=60;MultipleActiveResultSets=true"
我尝试过以下事项:
如果我在故障转移后立即回收应用程序池,一切都运行良好,我甚至可以故障转移回主实例,一切都很顺利。但是,如果我必须在故障转移后手动回收应用程序池,则会破坏高可用性/自动故障转移的全部目的。
我在这里缺少什么?
编辑:我基本上需要从此页面解决方案5和6:https://blogs.msdn.microsoft.com/spike/2010/12/08/clarification-on-the-failover-partner-in-the-connectionstring-in-database-mirror-setup/
答案 0 :(得分:4)
对于其他有这个问题的人。我将我的SQL实例切换回使用默认的1433端口,一切似乎完全失效。