适用于: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 每个分发的高可用性 (HA) 加载项的包。
使用以下语法注册服务器。 系统会提示输入有效的用户名和密码。
sudo subscription-manager register列出可用的注册池。
sudo subscription-manager list --available运行以下命令,将 RHEL 高可用性与订阅相关联。
sudo subscription-manager attach --pool=<PoolID>在此示例中, PoolId 是上一步中高可用性订阅的池 ID。
使存储库能够使用高可用性加载项。
sudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-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 分发版创建和配置群集。
授权节点:
sudo pcs cluster auth <Node1 Node2 ... NodeN> -u hacluster在此示例中, NodeX 是节点的名称。
创建群集:
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 创建和配置可用性组,请参阅: