我在SQL2012中有HAG的主动和被动节点。当有一个" READ-ONLY"被动节点一直被击中。使用连接字符串传递的参数。因此,例如,报告将在日常使用此类连接。
最近我们有一个QA环境设置,HAG是主动 - 主动,所以没有被动节点。通过与DBA的交谈,我被告知2个设置(主动 - 主动 - 主动 - 被动)之间的区别在于,在故障切换情况下,主动 - 主动设置将允许" READ-WRITE&# 34;与的连接继续有效。
在主动 - 被动故障转移情况下,任何" READ-WRITE"连接不起作用,因为被动数据库只允许" READ-ONLY"类型连接。此外,更多像SSRS这样的工具会失败,因为它们一次只能在一个节点中设置。目前我们只将它安装在被动节点中。这没有意义,因为被动节点是一个节点,这意味着我们应该能够将它安装在主动节点中。从技术上讲,这一切都是有道理的......但事实并非如此。
HAG群组的主要目的之一提供故障转移保护,无论设置如何?有人能说清楚这个吗?
答案 0 :(得分:0)
我认为您误解了DBA或者他们不正确。
在可用性组中,关于您希望辅助节点的行为方式,您有三个选项(按照从最顺序到最不允许的顺序):
主副本还有两个选项(从最多到最不允许的顺序):
这有点令人困惑的是,此首选项已配置为每个副本。也就是说,您可以进行以下配置:
在故障转移情况下,主节点的角色将转移到另一个节点,每个副本都遵循为其配置的任何语义。因此,在上面的示例中,如果主节点是节点A,则将接受连接到它的任何应用程序,而在节点B处仅接受只读连接。当发生故障转移(使节点B成为主节点)时,仅读取 - 节点B将接受写连接,而节点A不接受任何连接。我认为为了避免混淆,以相同的方式配置所有节点是最好的。但请与您的DBA讨论并询问每个节点的行为在主要和次要角色中的作用。