通过


为 Linux 上的 SQL Server 部署 Pacemaker 群集

适用于:SQL Server 的 Linux 上

本教程介绍了部署用于 SQL Server Always On 可用性组(AG)或故障转移群集实例(FCI)的 Linux Pacemaker 群集所需的任务。 与紧密耦合的Windows Server/SQL Server堆栈不同,可以在安装SQL Server之前或之后在 Linux 上创建 Pacemaker 群集并配置可用性组(AG)。 配置群集后,为 AG 或 FCI 部署的 Pacemaker 部分配置集成和资源。

重要

群集类型为 None 的 AG 不需要 Pacemaker 群集,并且无法由 Pacemaker 管理。

  • 安装高可用性加载项并安装 Pacemaker。
  • 为 Pacemaker 准备节点(仅限 RHEL 和 Ubuntu)。
  • 创建 Pacemaker 群集。
  • 安装 SQL Server HA 和 SQL Server 代理 包。

注意

从 SQL Server 2025(17.x)开始,不支持 SUSE Linux Enterprise Server (SLES)。

先决条件

Install Linux 上的 SQL Server

安装高可用性加载项

使用以下语法安装组成每个 Linux 发行版的高可用性 (HA) 附加组件的软件包。

  1. 使用以下语法注册服务器。 系统会提示输入有效的用户名和密码。

    sudo subscription-manager register
    
  2. 列出可用的注册池。

    sudo subscription-manager list --available
    

    对于 RHEL 10,请使用以下命令:

    sudo subscription-manager repos --list
    

    从可用池列表中,请注意高可用性订阅的池 ID。

  3. 运行以下命令,将 RHEL 高可用性与订阅相关联。 在此示例中,<PoolId> 是上一步高可用性订阅的池 ID。

    sudo subscription-manager attach --pool=<PoolID>
    
  4. 使存储库能够使用高可用性加载项。

    RHEL 7

    sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpms
    

    RHEL 8

    sudo subscription-manager repos --enable=rhel-8-for-x86_64-highavailability-rpms
    

    RHEL 9

    sudo subscription-manager repos --enable=rhel-9-for-x86_64-highavailability-rpms
    

    RHEL 10

    sudo subscription-manager repos --enable=rhel-10-for-x86_64-highavailability-rpms
    
  5. 安装 Pacemaker。

    sudo yum install pacemaker pcs fence-agents-all resource-agents
    

为 Pacemaker 准备节点(仅限 RHEL 和 Ubuntu)

Pacemaker 使用您在分发中创建的用户 hacluster 。 在 RHEL 和 Ubuntu 上,HA 加载项安装将创建此用户。

  1. 在将充当 Pacemaker 群集中的节点的每个服务器上,为群集使用的用户创建密码。 这些示例使用名称 hacluster,但你可以使用任何名称。 Pacemaker 群集中的所有节点都必须使用相同的名称和密码。

    sudo passwd hacluster
    
  2. 在将属于 Pacemaker 群集的每个节点上,使用以下命令(RHEL 和 Ubuntu)启用和启动 pcsd 服务。

    sudo systemctl enable pcsd
    sudo systemctl start pcsd
    

    然后运行以下命令,确保启动 pcsd

    sudo systemctl status pcsd
    
  3. 在 Pacemaker 群集中的每个可能节点上启用 Pacemaker 服务。

    sudo systemctl start pacemaker
    

    在 Ubuntu 上,会看到以下错误。

    pacemaker Default-Start contains no runlevels, aborting.
    

    此错误是一个已知问题。 尽管出现错误,但启用 Pacemaker 服务是成功的。 将来的更新中将修复此 bug。

  4. 接下来,创建并启动 Pacemaker 群集。 对于此步骤,RHEL 和 Ubuntu 之间存在一个区别。 在这两个分发版上,在 RHEL 上安装 pcs Pacemaker 群集的默认配置文件时,运行此命令会删除任何现有配置并创建新的群集。

创建 Pacemaker 群集

本部分介绍如何为每个 Linux 分发版创建和配置群集。

  1. 授权节点。 在这些示例中, <NodeX> 是每个节点的名称。

    RHEL 7

    <password>替换为hacluster的密码。

    sudo pcs cluster auth <Node1 Node2 ... NodeN> -u hacluster -p <password>
    

    RHEL 8 及更高版本

    在出现提示时手动输入 hacluster 的用户名和密码。

    sudo pcs host auth <Node1> <Node2> <Node3>
    
  2. 创建群集。 在此示例中, PMClusterName 是分配给 Pacemaker 群集的名称。

    RHEL 7

    sudo pcs cluster setup --name <PMClusterName> <Node1> <Node2> <Node3>
    

    RHEL 8 及更高版本

    sudo pcs cluster setup <PMClusterName> <Node1> <Node2> <Node3>
    
  3. 在所有节点上启动群集。

    sudo pcs cluster start --all
    
  4. 使群集能够在计算机启动时启动。

    sudo pcs cluster enable --all
    
  5. 验证群集状态。

    sudo pcs status
    

安装SQL Server HA

使用以下命令安装 SQL Server HA 包并SQL Server 代理(如果尚未安装)。 如果在安装SQL Server后安装 HA 包,则必须重启SQL Server才能使更改生效。 这些说明假定已设置Microsoft包的存储库,因为此时应安装SQL Server。

  • 如果不使用SQL Server 代理进行日志传送或任何其他用途,则无需启动或配置它。

  • 对于 Linux 上的 SQL Server 而言,SQL Server Full-Text Search(mssql-server-fts)和 SQL Server Integration Services(mssql-server-is)等其他可选包,在实现高可用性方面,不论是 FCI 还是 AG,都不是必需的。

sudo yum install mssql-server-ha
sudo systemctl restart mssql-server

下一步

本教程介绍了如何为 Linux 上的 SQL Server 部署 Pacemaker 群集。 你已了解如何执行以下操作:

  • 安装高可用性组件并安装 Pacemaker。
  • 为 Pacemaker 准备节点(仅限 RHEL 和 Ubuntu)。
  • 创建 Pacemaker 群集。
  • 安装 SQL Server HA 和 SQL Server 代理 包。

若要为Linux 上的 SQL Server创建和配置可用性组,请参阅:

为 Linux 上的 SQL Server 创建和配置可用性组。