【问题标题】:Multi-homed SQL Server with High Availability Groups具有高可用性组的多宿主 SQL Server
【发布时间】:2018-05-22 12:23:50
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您可能需要考虑将此问题移至dba
  • 请检查我的回答。

标签: sql-server high-availability


【解决方案1】:

有办法做到这一点,否则这将是一个主要缺点。

在开始之前,您应该创建备份并恢复数据库,以便您可以使用初始数据同步类型将只有 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 高可用性 并选中复选框启用AlwaysOn 可用性组(您将在上面看到 Windows 故障转移群集名称。更改此属性后,您需要重新启动 SQL 服务。对其他副本 SQL-ATL02SQL-NYC01 执行此操作。
  2. 现在启动 SQL Server 管理工作室并连接到可能是 SQL-ATL01 的主副本(基于其名称)。右键单击AlwaysOn High Availability 并选择向导(第一个选项)。您将在向导窗口中看到您可以做什么的概述 - 您可以单击下一步按钮。
  3. 首先您将指定 可用性组名称,例如SQLAG(AG 作为可用性组)
  4. 接下来您需要指定要包含的数据库。选择您想要的。
  5. 现在进入核心(指定副本)。在这里,我们将使用标签 ReplicasListener

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

╔═══╦═══════════════════╦═════════════════╦═════════════════════╦══════════════════════╗
║   ║ 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

现在点击按钮 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

选项有:

Full - 是在创建和恢复后开始同步 备份
仅加入 - 如果您已经开始同步 在所有辅助副本上创建备份并恢复
跳过初始数据同步 - 如果您仍需要创建一个 备份和恢复到副本

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

下一步验证

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

如果您将其扩展为例如SQL-ATL01 您应该在 Availability Replicas 中看到所有副本,在 Availability Databases 中看到选定的数据库,在 中看到配置的侦听器 (SQLAGListener) >可用性组侦听器

您还可以检查 Failover Cluster Manager

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

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

编辑

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 2019-01-27
    • 1970-01-01
    • 2017-07-15
    • 2016-10-19
    • 2011-01-15
    • 2019-02-21
    相关资源
    最近更新 更多