活动
为 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) 加载项的包。
使用以下语法注册服务器。 系统会提示输入有效的用户名和密码。
Bashsudo subscription-manager register
列出可用的注册池。
Bashsudo subscription-manager list --available
运行以下命令,将 RHEL 高可用性与订阅相关联
Bashsudo subscription-manager attach --pool=<PoolID>
其中,“PoolId”是上一步中高可用性订阅的池 ID。
使存储库能够使用高可用性加载项。
Bashsudo subscription-manager repos --enable=rhel-ha-for-rhel-7-server-rpms
安装 Pacemaker。
Bashsudo yum install pacemaker pcs fence-agents-all resource-agents
Pacemaker 本身使用在名为 hacluster 的分发上创建的用户。 在 RHEL 和 Ubuntu 上安装 HA 加载项时,将创建用户。
在将用作 Pacemaker 群集节点的每台服务器上,为群集使用的用户创建密码。 示例中使用的名称是 hacluster,但可以使用任何名称。 参与 Pacemaker 群集的所有节点上使用的名称和密码必须相同。
Bashsudo passwd hacluster
在将成为 Pacemaker 群集一部分的每个节点上,使用以下命令(RHEL 和 Ubuntu)启用并启动
pcsd
服务:Bashsudo systemctl enable pcsd sudo systemctl start pcsd
然后执行以下命令,确保
pcsd
已启动。Bashsudo systemctl status pcsd
在 Pacemaker 群集的每个可能的节点上启用 Pacemaker 服务。
Bashsudo systemctl start pacemaker
在 Ubuntu 上,会显示一个错误:
输出pacemaker Default-Start contains no runlevels, aborting.
此错误是一个已知问题。 尽管会出现该错误,但 Pacemaker 服务的启用是成功的,且此错误将在未来得到修复。
接下来,创建并启动 Pacemaker 群集。 对于此步骤,RHEL 和 Ubuntu 之间存在一个区别。 虽然在这两个分发上,安装
pcs
会为 Pacemaker 群集配置默认配置文件,但在 RHEL 上,执行此命令会销毁任何现有配置并创建新群集。
本节介绍如何为 Linux 的每个分发创建和配置群集。
为节点授权
Bashsudo pcs cluster auth <Node1 Node2 ... NodeN> -u hacluster
其中 NodeX 是节点的名称。
创建群集
Bashsudo pcs cluster setup --name <PMClusterName Nodelist> --start --all --enable
其中
PMClusterName
是分配给 Pacemaker 群集的名称,Nodelist
是由空格分隔的节点名称列表。
如果尚未安装 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 创建和配置可用性组,请参阅:
其他资源
培训
认证
Microsoft Certified: Azure Database Administrator Associate - Certifications
使用 Microsoft PaaS 关系数据库产品/服务,管理云、本地和混合关系数据库的 SQL Server 数据库基础结构。
文档
-
为 Linux 上的 SQL Server 创建和配置可用性组 - SQL Server
本教程演示如何为 Linux 上的 SQL Server 创建和配置可用性组,以及如何创建可用性组终结点和证书。
-
管理可用性组故障转移 - Linux 上的 SQL Server - SQL Server
本文介绍故障转移的类型:自动故障转移、计划的手动故障转移和强制手动故障转移。 自动故障转移和计划的手动故障转移会保留所有数据。
-
为 SQL Server 可用性组配置 Pacemaker 群集 - SQL Server
了解如何在 Red Hat、SUSE 或 Ubuntu 上创建三节点群集,以及如何将先前创建的可用性组资源添加到该群集。