在 适用于: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)。
先决条件
安装高可用性加载项
使用以下语法安装组成每个 Linux 发行版的高可用性 (HA) 附加组件的软件包。
使用以下语法注册服务器。 系统会提示输入有效的用户名和密码。
sudo subscription-manager register列出可用的注册池。
sudo subscription-manager list --available对于 RHEL 10,请使用以下命令:
sudo subscription-manager repos --list从可用池列表中,请注意高可用性订阅的池 ID。
运行以下命令,将 RHEL 高可用性与订阅相关联。 在此示例中,
<PoolId>是上一步高可用性订阅的池 ID。sudo subscription-manager attach --pool=<PoolID>使存储库能够使用高可用性加载项。
RHEL 7
sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpmsRHEL 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)
Pacemaker 使用您在分发中创建的用户 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 start pacemaker在 Ubuntu 上,会看到以下错误。
pacemaker Default-Start contains no runlevels, aborting.此错误是一个已知问题。 尽管出现错误,但启用 Pacemaker 服务是成功的。 将来的更新中将修复此 bug。
接下来,创建并启动 Pacemaker 群集。 对于此步骤,RHEL 和 Ubuntu 之间存在一个区别。 在这两个分发版上,在 RHEL 上安装
pcsPacemaker 群集的默认配置文件时,运行此命令会删除任何现有配置并创建新的群集。
创建 Pacemaker 群集
本部分介绍如何为每个 Linux 分发版创建和配置群集。
授权节点。 在这些示例中,
<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>创建群集。 在此示例中,
PMClusterName是分配给 Pacemaker 群集的名称。RHEL 7
sudo pcs cluster setup --name <PMClusterName> <Node1> <Node2> <Node3>RHEL 8 及更高版本
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 代理(如果尚未安装)。 如果在安装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 创建和配置可用性组。