2015-04-28 38 views
0

我在SQL2012中为HAG的主动和被动节点。当连接字符串传递一个“READ-ONLY”参数时,被动节点会不断被命中。因此,举例来说,报告会每天使用这种类型的连接。高可用性组和故障转移

最近我们有一个QA环境设置,HAG的主动 - 主动,所以没有被动节点。通过与DBA交谈,我被告知,两种设置(主动 - 主动式与主动 - 被动式)之间的区别在于:在故障切换情况下,主动 - 主动式设置允许到的“读写”连接继续工作

在主动 - 被动故障切换情况下,任何“读写”连接都不起作用,因为被动数据库只允许“只读”类型的连接。此外,像SSRS这样的工具会失败,因为它们一次只能在一个节点上安装。目前我们只将它安装在被动节点中。这没有意义,因为被动节点是一个节点,这意味着我们应该能够将它安装在主动节点中。从技术上讲,这一切都是有道理的......但事实并非如此。

是不是其中的主要目的的HAG组提供故障转移保护不管设置?任何人都可以阐明这一点吗?

回答

0

我认为要么你误解了你的数据库管理员,要么他们不正确。

在可用性组,你有关于三种选择你想怎么辅助节点的行为(按照从多到少许可):

  1. 允许任何连接
  2. 只允许连接指定申请意图为只读
  3. 允许没有任何连接

也有主副本(两个选项再次从多到少permissiv E):

  1. 允许任何连接
  2. 允许指定应用程序的意图作为读写

是什么让这个略显混乱的是,这种偏好每个副本配置只connecitons。也就是说,你可以有以下配置:

  • 节点A
    • 小学:接受任何连接
    • 中学:不接受任何连接
  • 节点B
    • 小学:接受读写连接
    • 次要:接受只读连接

在故障转移的情况下,主节点的角色被转移到另一个节点的任何语义被配置用于它每个副本服从。所以,在我上面的例子中,如果主节点是节点A,那么连接到它的任何应用程序都将被接受,而节点B只接受只读连接。发生故障转移时(使节点B成为主节点)写入连接将在节点B处接受,而在节点A处将不接受任何连接。我认为为避免混淆,以同样的方式配置所有节点是最好的。但请与您的DBA交谈,询问每个节点的行为在主要和次要角色中的含义。