适用于:Linux 上的 SQL Server
本教程介绍在 Linux Pacemaker 群集上部署 SQL Server Always On 可用性组(AG)或故障转移群集实例(FCI)的必要任务。 与紧密耦合的 Windows Server/SQL Server 堆栈不同,可以在安装 SQL Server 之前或之后在 Linux 上创建 Pacemaker 群集并配置可用性组(AG)。 在配置完集群后,您需要为可用性组 (AG) 或 FCI 部署中的 Pacemaker 部分配置集成和资源。
Important
群集类型为 None 的 AG 不需要 Pacemaker 群集,并且无法由 Pacemaker 管理。
- 安装高可用性加载项并安装 Pacemaker。
- 为 Pacemaker 准备节点(仅限 RHEL 和 Ubuntu)。
- 创建 Pacemaker 群集。
- 安装 SQL Server HA 包。
Note
从 SQL Server 2025(17.x)开始,不支持 SUSE Linux Enterprise Server (SLES)。
先决条件
安装高可用性加载项
使用以下语法安装组成每个 Linux 发行版的高可用性 (HA) 附加组件的软件包。
集群中的每个节点都必须拥有RHEL和高可用性附加组件的相应订阅。 要查看需求,请参阅 《如何在 Red Hat Enterprise Linux 中安装高可用性集群包》。 请按照以下步骤配置订阅和存储库:
注册系统。
sudo subscription-manager register输入用户名和密码。
列出可用的注册池。
sudo subscription-manager list --availableNote
对于 RHEL 10,请使用以下命令:
sudo subscription-manager repos --list从可用池列表中,请注意高可用性订阅的池 ID。
更新以下脚本。 在上一步中,为实现高可用性,请用池 ID 替换
<pool id>。 运行脚本以附加订阅。sudo subscription-manager attach --pool=<pool id>启用存储库。
RHEL 8
sudo subscription-manager repos --enable=rhel-8-for-x86_64-highavailability-rpmsRHEL 9
sudo subscription-manager repos --enable=rhel-9-for-x86_64-highavailability-rpmsRHEL 10
sudo subscription-manager repos --enable=rhel-10-for-x86_64-highavailability-rpms
安装 Pacemaker。
sudo yum install pacemaker pcs fence-agents-all resource-agents
为 Pacemaker 准备节点(仅限 RHEL 和 Ubuntu)
起搏器使用名为 hacluster 的用户。 在 RHEL 和 Ubuntu 上,HA 加载项安装将创建此用户。
在将充当 Pacemaker 群集中的节点的每个服务器上,为群集使用的用户创建密码。 这些示例使用名称
hacluster,但你可以使用任何名称。 Pacemaker 群集中的所有节点都必须使用相同的名称和密码。sudo passwd hacluster在将属于 Pacemaker 群集的每个节点上,使用以下命令(RHEL 和 Ubuntu)启用和启动
pcsd服务。sudo systemctl enable pcsd sudo systemctl start pcsd然后运行以下命令,确保启动
pcsd。sudo systemctl status pcsd在 Pacemaker 群集中的每个可能节点上启用 Pacemaker 服务。
sudo systemctl enable pacemaker在 Ubuntu 上,会看到以下错误。
pacemaker Default-Start contains no runlevels, aborting.此错误是一个已知问题。 尽管出现错误,但启用 Pacemaker 服务是成功的。
接下来,创建并启动 Pacemaker 群集。 对于此步骤,RHEL 和 Ubuntu 之间存在一个区别。 在这两个分发版上,在 RHEL 上安装
pcsPacemaker 群集的默认配置文件时,运行此命令会删除任何现有配置并创建新的群集。
创建 Pacemaker 群集
本部分介绍如何为每个 Linux 分发版创建和配置群集。
授权节点。 在这些示例中,
<NodeX>是每个节点的名称。 在出现提示时手动输入hacluster的用户名和密码。sudo pcs host auth <Node1> <Node2> <Node3>创建群集。 在此示例中,
PMClusterName是分配给 Pacemaker 群集的名称。sudo pcs cluster setup <PMClusterName> <Node1> <Node2> <Node3>在所有节点上启动群集。
sudo pcs cluster start --all使群集能够在计算机启动时启动。
sudo pcs cluster enable --all验证群集状态。
sudo pcs status
安装 SQL Server HA
如果还没安装 SQL Server HA 包,请使用以下命令安装。 如果在安装 SQL Server 后安装 HA 包,则必须重启 SQL Server 才能使更改生效。 这些说明假定已设置Microsoft包的存储库,因为此时应安装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
sudo systemctl restart mssql-server
后续步骤
本教程介绍了如何为 Linux 上的 SQL Server 部署 Pacemaker 群集。 你已了解如何执行以下操作:
- 安装高可用性加载项并安装 Pacemaker。
- 为 Pacemaker 准备节点(仅限 RHEL 和 Ubuntu)。
- 创建 Pacemaker 群集。
- 安装 SQL Server HA 包。
若要为Linux 上的 SQL Server创建和配置可用性组,请参阅:
为 Linux 上的 SQL Server 创建和配置可用性组。