为 Linux 上的 SQL Server 部署 Pacemaker 群集
适用于: SQL Server - Linux
本教程列出了为 SQL Server Always On 可用性组 (AG) 或故障转移群集实例 (FCI) 部署 Linux Pacemaker 群集所需完成的任务。 与紧密耦合的 Windows Server/ SQL Server 堆栈不同,Linux 上 Pacemaker 群集的创建和可用性组 (AG) 的配置可以在 SQL Server 安装之前或之后完成。 在配置完群集之后,才集成和配置 AG 或 FCI 部署的 Pacemaker 部分的资源。
重要
群集类型为 None 的 AG 不需要 Pacemaker 群集,也不能由 Pacemaker 管理。
- 安装高可用性加载项并安装 Pacemaker。
- 为 Pacemaker 准备节点(仅限 RHEL 和 Ubuntu)。
- 创建 Pacemaker 群集。
- 安装 SQL Server HA 和 SQL Server 代理包。
先决条件
安装高可用性加载项
使用以下语法安装构成 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 服务的启用是成功的,且此错误将在未来得到修复。
接下来,创建并启动 Pacemaker 群集。 对于此步骤,RHEL 和 Ubuntu 之间存在一个区别。 虽然在这两个分发上,安装
pcs
会为 Pacemaker 群集配置默认配置文件,但在 RHEL 上,执行此命令会销毁任何现有配置并创建新群集。
创建 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 代理用于日志传送或任何其他用途,则不必安装它,这时可以跳过包 mssql-server-agent。
其他用于 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 创建和配置可用性组,请参阅: