具有高可用性组的多宿主SQL Server

时间:2018-05-22 12:23:51

标签: sql-server high-availability

我们有两个服务器(SQL-ATL01,SQL-ATL02)组成一个故障转移群集,每个服务器都作为SQL Server高可用性组(HAG)的一部分运行。每台服务器都有两个网卡。一种是直接连接到另一台服务器的10Gbit卡,用于在192.168.99.x子网上同步HAG。另一种是1Gbit卡,用于将数据库服务器连接到交换机,以便与10.0.0.x子网上的应用程序服务器进行通信。监听器指向192.168.99.x子网。

我们希望在群集的另一个物理位置添加第三个服务器(SQL-NYC01)并将其作为HAG的Async副本部分运行,但VPN仅在1Gbit网络上的子网上路由流量。

有没有办法设置故障转移群集和高可用性组来告诉它:

  • 为SQL-ATL01发送同步副本流量< - > SQL-ATL02超过192.168.99.x
  • 为(SQL-ATL01,SQL-ATL02)< - >发送异步副本流量SQL-NYC01超过10.0.0.x

或者我们 所有副本流量在同一个IP地址/子网上进出?

1 个答案:

答案 0 :(得分:2)

有一种方法可以做到这一点,否则这将是一个主要的缺点。

在开始之前,您应该创建备份并恢复数据库,这样您就可以使用初始数据同步类型JOIN ONLY(因为您只有1Gbit节点)。

  

仅限加入 - 如果您已创建备份,则启动同步   并在所有辅助副本上恢复

为了让我的生活更轻松,我会假设一些你可以轻松适应的IP地址:

sync node: SQL-ATL01 192.168.99.1
sync node: SQL-ATL02 192.168.99.2
async node: SQL-NYC01 10.0.0.10
  1. 转到SQL Server属性(在SQL-ATL01上)并右键单击sql server服务并单击属性 - 找到一个选项卡 AlwaysOn High Availability 并检查checbox 启用AlwaysOn可用性组(您将在上面看到Windows故障转移群集名称。更改此属性后,您需要重新启动SQL服务。对其他副本SQL-ATL02SQL-NYC01执行此操作。
  2. 现在启动SQL Server管理工作室并连接到主副本,该主副本可能是SQL-ATL01(基于其名称)。右键单击 AlwaysOn High Availability 并选择向导(第一个选项)。您将在向导窗口中看到概述您可以执行的操作 - 您可以单击下一步按钮。
  3. 首先,您将指定可用性组名称,例如 SQLAG (AG作为可用性组)
  4. 接下来,您需要指定将包含的数据库。选择你想要的那个。
  5. 现在进入核心(指定副本)。在这里,我们将使用选项卡 Replicas Listener

    Replicas 开始,您需要添加副本(我只编写重要/更改的列):

  6. ╔═══╦═══════════════════╦═════════════════╦═════════════════════╦══════════════════════╗
    ║   ║ Server Instance   ║ Initial Role    ║ Automatic Failover  ║   Synchronous commit ║
    ╠═══╬═══════════════════╬═════════════════╬═════════════════════╬══════════════════════╣
    ║ 1 ║ SQL-ATL01         ║ Primary         ║ Checked             ║ Checked              ║
    ║ 2 ║ SQL-ATL02         ║ Secondary       ║ Checked             ║ Checked              ║
    ║ 3 ║ SQL-NYC01         ║ Secondary       ║ Unchecked           ║ Unchecked            ║
    ╚═══╩═══════════════════╩═════════════════╩═════════════════════╩══════════════════════╝
    

    如果您希望SQL-NYC01成为故障转移或同步,则必须在此处选中复选框。

    1. 现在转到 Listener 标签 单击创建可用性组侦听器。您必须为监听器指定DNS名称,例如SQLAGListener,选择端口(默认为1433)和网络模式 - > Static IP
    2. 现在点击按钮add,在那里选择您的子网和IP地址:

      ╔═══╦═════════════════╦═════════════════════════════╗
      ║   ║ Subnet          ║ IP Address                  ║
      ╠═══╬═════════════════╬═════════════════════════════╣
      ║ 1 ║ 192.168.99.0/24 ║ 192.168.99.1 192.168.99.2   ║
      ║ 2 ║ 10.0.0.0/24     ║ 10.0.0.10                   ║
      ╚═══╩═════════════════╩═════════════════════════════╝
      

      然后点击下一步。

      1. 初始数据同步 如开始所述,因为您有1Gbps节点,我建议使用Join only
      2. 选项包括:

          

        完整 - 是在创建和恢复后启动同步   备份
          仅限加入 - 如果您已经启动,则启动同步   创建备份并在所有辅助副本上恢复   跳过初始数据同步 - 如果您仍需要创建,则使用此选项   备份和还原到副本

        1. 接下来是验证,它将检查您的所有设置。单击“下一步”以继续摘要页面
        2. 最后一个是结果页面,您将看到所有检查,例如配置端点启动' AlwaysOn_health' 创建可用性组SQLAG 创建可用性组侦听器SQLAGListener 等。
        3. 下一步验证

          您应该在SQL Server Management工作室的每个节点 AlwaysOn HA 中看到 SQLAG 的每个节点(SQL-ATL01(主要),SQL-ATL02(辅助), SQL-NYC01(二级))。

          如果您将其展开,例如SQL-ATL01您应该会看到可用性副本中的所有副本以及可用性数据库<​​/ strong>中的所选数据库和已配置的侦听器( SQLAGListener 可用性组监听器

          您还可以检查故障转移群集管理器

          您将在哪里看到已配置的侦听器 SQLAGListener : 主节点192.168.99.1将显示为在线,其他节点显示为脱机。

          要查看节点的当前状态,您还可以右键单击SQLAG(主节点)并显示仪表板。这可以针对每个节点完成,并且可以在需要时用于测试/查看当前状态。

          修改

          如果您没有遗漏任何内容,也应该测试配置。