我对于故障转移如何与 SQL Azure 一起工作以及我们需要实现什么以及什么是开箱即用的感到有点困惑。
我读过这篇文章
https://azure.microsoft.com/en-us/blog/fault-tolerance-in-windows-azure-sql-database/
上面说的是自动故障转移,不需要干预。这似乎意味着连接字符串甚至不需要更改。这听起来像是主站点和辅助站点都可以使用相同的连接字符串。
所有与 Windows Azure SQL Database 数据库的连接均由一组负载平衡网关进程管理。网关负责接受来自客户端的入站数据库连接请求,并将其绑定到当前托管数据库主副本的节点。网关与分布式结构协调,以找到客户数据库的主副本。如果发生故障转移,网关会在新的主副本可用时立即重新协商与故障主副本绑定的所有连接的连接绑定。
然后我读了这篇文章
其中继续提到必须创建某种连接监控应用程序来为我们执行故障转移(听起来本身就很容易出现故障 - 为什么这不是标准做法?)。并表示辅助站点应始终指向辅助数据库。即根本不是第一篇文章所说的内容。
那么,我是不是理解错了?第一篇文章(较旧的那篇)是不是过时了?
答案1
第一篇文章介绍了如何在单个数据中心内进行故障转移,指出“除了整个数据中心的损失之外,所有其他故障都可以通过服务缓解。”如果您的数据库的硬件或存储出现故障,这将为您提供保障。
第二篇文章介绍了如何使用地理复制来处理数据中心本身出现故障的情况,“在这种情况下,当所有应用程序组件受到影响并需要作为一个单元进行故障转移时,应用程序部署拓扑针对处理区域性灾难进行了优化。”
它们都是正确的,并且涵盖了使用相同服务的两种不同场景。