寻找具有自动故障转移和angular色切换function的DNS主机提供商

我需要使用两个SQL Server实例和镜像来设置自动故障转移。 有几个DNS主机(如DNS Made Easy和Netriplex)提供自动故障转移function。 每分钟都在监视您的服务器实例,如果主服务器出现故障,域名将parsing为辅助服务器的IP。

我的问题是,我还需要切换服务器angular色,以防万一自动故障转移,这是我目前的DNS托pipe服务提供商(DNS轻松)不支持。

换句话说:假设我有两台数据库服务器–A和B.A是主服务器,B只是在A出现故障的情况下待命。 当A发生故障时,B接pipe并成为新的主服务器。 当A回来时,它是新的辅助服务器,并等待B失败。 当B失败时,A接pipe并再次成为主服务器。

有没有提供这种function的DNS主机?

谢谢,

阿德里安

我不认为DNS是这种故障转移的适当机制。 根据我的经验,数据库故障转移通常由以下方式处理:

  • A)在不同服务器之间迁移浮动IP地址的群集软件(同时还根据需要自动监视和迁移服务)或
  • B)负载均衡器,在不同的服务器之前提供虚拟IP地址(在多主节点的情况下)。

为此使用DNS的问题是可以在最终用户和服务器之间的多个级别上cachingDNS查找。 因此,即使您立即更改DNS条目,可能需要几个小时才会将更改传播到最终用户,并且您的服务将暂时closures。

抱歉,不,不能这样做。

SQL服务器通常不直接暴露给Internet,所以公共的DNS和SQL服务器是非常罕见的组合。 出于这个原因,您将无法find任何具有SQL Server自动运行状况检查的DNS主机。

原则上,你可以确保一个SQL Server的一个点,它可以面向互联网。 但即便如此; 你确定这就是你想要的吗?是否考虑过与SQL Server中缓冲区溢出漏洞相关的所有可能的安全风险? 我不知道你的架构的具体情况,但乍一看这个devise看起来是错误的。

接下来, SQL Server是一个有状态的东西 。 如果主SQL Server在长时间运行的ALTER TABLE或事务中正常崩溃,则不清楚备份服务器处于什么状态。处理SQL Server故障转移通常不太可能自动化,可能需要DBA才能使服务器恢复到一致状态。 我当然不会相信外部DNS主机,他们不知道我的应用程序域,正确处理数据库故障转移和数据完整性。

最后, DNS故障转移可能需要很长时间才能传播。 DNScaching,以及caching查询结果,即使您将DNS TTL设置得较低, 实际的转换时间也可能相当长 。

据我所知,有一个简单的方法来处理这种情况:指定连接string中的故障转移伙伴。 像这样的事情会诀窍:

 Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True; 

编辑:我不知道如何理解下面的评论中的异议。 不是从MSDN采取这个原理图描述了我的场景吗?

故障转移伙伴和应用程序代码

另外,从这篇文章 :

如果使用ADO.NET或SQL Native Client连接到正在镜像的数据库,则应用程序可以利用驱动程序在发生数据库镜像故障转移时自动redirect连接。 您必须在连接string和故障转移伙伴服务器中指定初始主体服务器和数据库。