我使用见证服务器为 SQL 镜像和自动故障转移设置了 3 台服务器。这按预期工作。
现在,我连接到数据库的应用程序在发生故障转移时似乎出现问题 - 我需要手动干预并更改连接字符串以使其再次连接。到目前为止,我发现的最佳解决方案涉及使用Failover Partner
连接字符串的参数,但它既不直观也不完整:Data Source="Mirror";Failover Partner="Principal"
在此处找到。
从上面博客中的示例(场景#3)中,当第一次故障转移发生并且主体(故障转移伙伴)不可用时,将使用数据源(这是新的主体)。如果它再次失败(我只在有限的时间内尝试过),它就会出现一条错误消息。发生这种情况是因为连接字符串被缓存,所以在刷新之前,它会不断出现错误(似乎连接字符串在遇到错误后刷新约 5 分钟)。如果在故障转移后我交换数据源和故障转移伙伴,我将再次进行一次静默故障转移。
有没有办法为使用镜像数据库的应用程序实现全自动故障转移(没有看到错误)?
我可以看到使用自定义脚本的潜在解决方法,这些脚本将轮询当前活动的数据库节点名称并相应地调整连接字符串,但目前这似乎有点过头了。