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

Jos*_*sef 12 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网络上的子网上路由流量.

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

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

或者我们是否必须让所有副本流量在同一IP地址/子网上进出?

tuk*_*kan 2

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

\n\n

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

\n\n
\n

仅加入 - 如果您已创建备份\n并在所有辅助副本上还原,则开始同步

\n
\n\n

为了让我的生活更轻松,我将假设一些您可以轻松调整的 IP 地址:

\n\n
sync node: SQL-ATL01 192.168.99.1\nsync node: SQL-ATL02 192.168.99.2\nasync node: SQL-NYC01 10.0.0.10\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  1. 转到 SQL Server 属性(在 上SQL-ATL01),右键单击 sql server 服务,然后单击属性 - 找到一个选项卡AlwaysOn 高可用性,然后选中复选框启用 AlwaysOn 可用性组(您将在上面看到 Windows 故障转移群集名称。之后更改此属性需要重新启动 SQL 服务。对其他副本SQL-ATL02和执行此操作SQL-NYC01
  2. \n
  3. 现在启动 SQL Server Management Studio 并连接到可能的主副本SQL-ATL01(根据其名称)。右键单击“AlwaysOn High Availability”并选择“向导”(第一个选项)。您将在向导窗口中看到您可以做什么的概述 - 您可以单击下一步按钮。
  4. \n
  5. 首先,您将指定可用性组名称,例如SQLAG(AG 作为可用性组)
  6. \n
  7. 接下来您需要指定将包含的数据库。选择您想要的一个。
  8. \n
  9. 现在进入核心(指定副本)。在这里,我们将使用选项卡ReplicasListener

    \n\n

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

  10. \n
\n\n\n\n
\xe2\x95\x94\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x97\n\xe2\x95\x91   \xe2\x95\x91 Server Instance   \xe2\x95\x91 Initial Role    \xe2\x95\x91 Automatic Failover  \xe2\x95\x91   Synchronous commit \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 1 \xe2\x95\x91 SQL-ATL01         \xe2\x95\x91 Primary         \xe2\x95\x91 Checked             \xe2\x95\x91 Checked              \xe2\x95\x91\n\xe2\x95\x91 2 \xe2\x95\x91 SQL-ATL02         \xe2\x95\x91 Secondary       \xe2\x95\x91 Checked             \xe2\x95\x91 Checked              \xe2\x95\x91\n\xe2\x95\x91 3 \xe2\x95\x91 SQL-NYC01         \xe2\x95\x91 Secondary       \xe2\x95\x91 Unchecked           \xe2\x95\x91 Unchecked            \xe2\x95\x91\n\xe2\x95\x9a\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
    \n
  1. 现在转到“侦听器”选项卡\n单击 “创建可用性组侦听器”。您必须指定侦听器的 DNS 名称,例如SQLAGListener,选择端口(默认为1433)和网络模式 -> Static IP
  2. \n
\n\n

现在单击按钮,add您可以在其中选择子网和 IP 地址:

\n\n\n\n
\xe2\x95\x94\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa6\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x97\n\xe2\x95\x91   \xe2\x95\x91 Subnet          \xe2\x95\x91 IP Address                  \xe2\x95\x91\n\xe2\x95\xa0\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xac\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa3\n\xe2\x95\x91 1 \xe2\x95\x91 192.168.99.0/24 \xe2\x95\x91 192.168.99.1 192.168.99.2   \xe2\x95\x91\n\xe2\x95\x91 2 \xe2\x95\x91 10.0.0.0/24     \xe2\x95\x91 10.0.0.10                   \xe2\x95\x91\n\xe2\x95\x9a\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa9\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后单击下一步。

\n\n
    \n
  1. 初始数据同步\n如开头所述,由于您有 1Gbps 节点,我建议使用Join only.
  2. \n
\n\n

选项有:

\n\n
\n

完全- 是在创建和还原备份后开始同步\
n 仅加入- 是在您已创建备份并在所有辅助副本上还原时开始同步
\n 跳过初始数据同步- 如果您仍然需要,则使用此同步需要创建\n备份并还原到副本

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

下一步验证

\n\n

您应该在 SQL Server Management Studio 的每个节点上看到SQLAG的每个节点上的AlwaysOn HA(SQL-ATL01(主)、SQL-ATL02(辅助)、SQL-NYC01(辅助))。

\n\n

如果将其展开,例如,SQL-ATL01您应该会看到可用性副本中的所有副本、可用性数据库中选定的数据库以及可用性组侦听器中配置的侦听器 ( SQLAGListener ) 。

\n\n

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

\n\n

您将在其中看到配置的侦听器SQLAGListener:\n主节点 192.168.99.1 将显示为在线,其他节点将显示为离线。

\n\n

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

\n\n

编辑

\n\n

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

\n