我需要使用两个Server实例和镜像设置自动故障转移。有几个DNS主机(例如DNS容易使用和Netriplex)提供自动故障转移。它每分钟监视您的服务器实例,如果主服务器下降,则域名解析为辅助服务器的IP。
我的问题是,当出现自动故障转移时,我还需要切换服务器角色,而我的当前DNS托管提供商不支持这一点(DNS变得很容易)。
换句话说:假设我有两个数据库服务器--A和B --A是主服务器,B是备用的,以防A崩溃。当A下降时,B接管并成为新的主服务器。当A返回时,它是新的辅助服务器,一直到B失败为止。当B失败时,A将接管并再次成为服务器的主服务器。
有提供这种功能的DNS主机吗?
谢谢,
禤浩焯
发布于 2011-05-29 21:50:11
正如我刚刚了解到的,有一种简单的方法可以准确地处理这个场景:在连接字符串中指定故障转移合作伙伴。像这样的事情可以达到这个目的:
Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True;
编辑:我不知道如何理解下面的评论中的反对意见。这个示意性的取自MSDN不是精确地描述了我的场景吗?
另外,来自这篇文章:
如果将ADO.NET或SQL连接到正在镜像的数据库,则应用程序可以利用驱动程序的能力,在发生数据库镜像故障转移时自动重定向连接。必须在连接字符串和故障转移合作伙伴服务器中指定初始主体服务器和数据库。
发布于 2011-05-29 09:25:35
我不认为DNS是这种故障转移的适当机制。根据我的经验,数据库故障转移通常由以下人员处理:
使用DNS的问题是,DNS查找可以在终端用户和服务器之间的多个级别上缓存。因此,即使您立即更改DNS条目,也可能要过几个小时才能将更改传播到最终用户,此时您的服务将被关闭。
发布于 2011-05-29 10:12:19
SQL服务器通常不会直接暴露在Internet上,因此公共DNS和SQL服务器结合在一起是非常罕见的组合。由于这个原因,您将不会发现任何对Server进行自动健康检查的DNS主机。
原则上,如果Server可以面向Internet,则可以保护它的安全。但即便如此,您是否确信这正是您想要的,您是否考虑过与fx相关的所有可能的安全风险-- SQL Server中的缓冲区溢出漏洞?我不知道您的体系结构的具体内容,但乍一看,这种设计似乎是错误的。
下一个,服务器是一种有状态的东西。如果主Server在长时间运行的ALTER TABLE
或事务中崩溃,那么备份服务器所处的状态就不明显了。处理Server的故障转移通常不太可能自动化,您可能需要一个DBA才能使服务器恢复到一致的状态。我肯定不会信任一个不了解我的应用程序域的外部DNS主机来正确地处理数据库故障转移和数据完整性。
最后,DNS故障转移可能需要很长时间才能传播。DNS缓存,好的,缓存查询结果,即使您设置的DNS TTL低,现实生活中的过渡时间可能相当高。。
https://serverfault.com/questions/274960
复制相似问题