为 Linux 上的 SQL Server 部署 Pacemaker 群集

适用于:Linux 上的 SQL Server

本教程介绍在 Linux Pacemaker 群集上部署 SQL Server Always On 可用性组(AG)或故障转移群集实例(FCI)的必要任务。 与紧密耦合的 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)。

先决条件

在 Linux 上安装 SQL Server

安装高可用性加载项

使用以下语法安装构成 Linux 每个分发的高可用性 (HA) 加载项的包。

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

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

    sudo subscription-manager list --available
    
  3. 运行以下命令,将 RHEL 高可用性与订阅相关联。

    sudo subscription-manager attach --pool=<PoolID>
    

    在此示例中, PoolId 是上一步中高可用性订阅的池 ID。

  4. 使存储库能够使用高可用性加载项。

    sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-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. 授权节点:

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

    在此示例中, NodeX 是节点的名称。

  2. 创建群集:

    sudo pcs cluster setup --name <PMClusterName Nodelist> --start --all --enable
    

    在此示例中, PMClusterName 是分配给 Pacemaker 群集的名称,是 Nodelist 用空格分隔的节点名称列表。

安装 SQL Server HA 和 SQL Server 代理包

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

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

  • 其他用于 Linux 上的 SQL Server、SQL Server 全文搜索 (mssql-server-fts) 和 SQL Server Integration Services (mssql-server-is) 的可选包对于高可用性、FCI 或 AG 都不是必需的。

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

下一步

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

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

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