如何在 AWS Cloud 中创建 SQL Server Always On 可用性组集群?

上次更新日期:2022 年 12 月 27 日

我想在 AWS Cloud 中创建一个 SQL Server Always On 可用性组集群。我该如何操作?

简短描述

要在 AWS Cloud 中创建 SQL Server Always On 可用性组集群,首先,为每个集群节点弹性网络接口配置两个辅助 IP。然后,使用远程桌面协议(RDP)作为域管理员账户连接到集群节点实例。最后,创建一个双节点 Windows 集群和 SQL Server Always On 可用性组。

您还可以使用 AWS Launch Wizard 创建 SQL Server Always On 可用性组部署。Launch Wizard 会根据您的使用案例确定 AWES 资源,进而自动预置 SQL Server 数据库。有关更多信息,请参阅什么是 AWS Launch Wizard for SQL Server?

解决方法

先决条件

  • 跨虚拟私有云(VPC)内的多个可用区启动两个 Amazon Elastic Compute Cloud(Amazon EC2)Windows Server 实例(2012 R2 或更高版本)。
  • 使用 SQL Server 2014 64 位企业版或更高版本。对于测试,请使用 SQL Server 2014 64 位评估版或更高版本。
  • 配置辅助 Amazon Elastic Block Store (Amazon EBS) 卷来托管 SQL Server Master 数据文件、日志数据文件和 SQL 备份文件。最佳实践是为大型 SQL Server 数据库工作负载选择预配置 IOPS SSD (io1) EBS 卷。
  • 在私有子网中部署集群节点。然后,您可以使用 RDP 从跳转服务器连接到集群节点实例。
  • 配置安全组入站规则和 Windows 防火墙例外设置,以允许节点在限制性环境中进行通信。请参阅 Microsoft 网站上的 Configure the Windows Firewall to allow SQL Server access(配置 Windows 防火墙以允许 SQL Server 访问)。
  • Active Directory(AD)域控制器必须为 SQL 节点开启所有必要端口,并见证加入域和对 Active Directory 进行身份验证。请参阅 Microsoft 网站上的 Active Directory and Active Directory Domain Services Port Requirements(Active Directory 和 Active Directory 域服务端口要求)。
  • 在创建 Windows 失效转移集群前,将节点加入域。在创建和配置集群之前验证您已使用域凭证登录。
  • 使用 Active Directory 服务账户运行 SQL 数据库实例。
  • 使用 Windows 域身份验证创建具有 sysadmin 权限的 SQL 登录。有关更多信息,请咨询您的数据库管理员。有关更多详细信息,请参阅 Microsoft 网站上的使用 SSMS 创建登录
  • 验证 SQL 浏览器的配置是否正确。仅 SQL Server 命名实例必须执行此操作。

为每个集群节点弹性网络接口配置辅助 IP

每个集群节点 eth0 的弹性网络接口都需要一个辅助 IP。如果需要 SQL 组侦听器,则需要添加第三个 IP 地址。这会导致总共有 3 个 IP 附加到 eth0 弹性网络接口。

注意:如果您不打算部署 SQL 组侦听器,只需为每个集群节点弹性网络接口添加一个辅助 IP。

1.    打开 Amazon EC2 控制台,然后选择将托管您的 Always On 集群的 AWS 区域。

2.    从导航窗格中,选择实例 ,然后选择 EC2 集群实例。

3.    选择联网选项卡。

4.    在网络接口下,选择接口 ID 弹性网络接口。

5.    选择网络接口,然后依次选择操作管理 IP 地址

6.    选择网络接口 ID 旁边的箭头以展开窗口,然后选择分配新 IP 地址。您可以选择特定 IP,或将该字段保留为“自动分配”。重复此步骤以添加第二个新 IP。

7.    依次选择保存确认

8.    对于将参与集群的其他 EC2 实例,重复步骤 1-7。

创建双节点 Windows 集群

1.    使用 RDP 及一个域账户(对两个节点均有本地管理员权限)连接到 EC2 实例

2.    在 Windows 开始 菜单中,打开控制面板,然后选择网络和共享中心

3.    从导航窗格中选择更改适配器设置

4.    选择网络连接,然后选择更改此连接的设置

5.    选择 Internet 协议版本 4 (TCP/IPv4),然后选择 属性

6.    选择高级

7.    在 DNS 选项卡中,选择附加主要和特定于连接的 DNS 后缀

8.    选择确定,选择 确定,然后选择关闭

9.    对于将参与集群的其他 EC2 实例,重复步骤 1-8。

10.    在每个实例上,从服务器管理器安装节点上的集群功能 ,或运行以下 PowerShell 命令:

Install-WindowsFeature –Name Failover-Clustering –IncludeManagementTools

11.    以管理员身份打开 cmd ,然后输入 Clussvc.exe 以打开集群管理器。

12.    打开故障转移集群管理器的上下文(右键单击)菜单,然后选择 创建集群

13.    选择下一步,然后选择浏览

14.    对于输入对象名称以选择,输入集群节点主机名,然后选择 确定

15.    选择下一步。现在,您可以选择是否要验证集群。运行集群验证是最佳做法。如果集群未通过验证,Microsoft 可能无法为您的 SQL 集群提供技术支持。选择,然后选择下一步

16.    对于集群名称,输入一个名称,然后选择下一步

17.    清除将所有符合条件的存储添加到集群,然后选择下一步

18.    集群创建完成后,选择完成

注意: 集群日志和报告位于以下路径: %systemroot%\cluster\reports

19.    在集群管理器的集群核心资源部分中,展开新集群的条目。

20.    打开第一个 IP 地址条目的上下文(右键单击)菜单,然后选择 属性。对于 IP 地址,选择静态 IP 地址,然后输入一个与 eth0 弹性网络接口相关联的辅助 IP。选择确定。对于辅助 IP 地址条目,重复此步骤。

21.    打开集群名称的上下文(右键单击)菜单,然后选择 Bring Online(在线使用)。

注意:最佳实践是也配置一个文件共享见证(FSW)来充当连接中断器。您还可以将 Amazon FSx for Windows File Server 与 Microsoft SQL Server 结合使用。有关 FSW 的信息,请参阅 Microsoft 网站上的 Failover Cluster Step-by-Step Guide: Configuring the Quorum in a Failover Cluster(失效转移集群分步指南:在失效转移集群中配置仲裁)。

创建 Always On 可用性组

1.    打开 SQL Server 配置管理器。

2.    打开 SQL 实例的上下文(右键单击)菜单,然后选择属性

3.    在 AlwaysOn 高可用性选项卡上,选择启用 AlwaysOn 可用性组,然后选择应用

4.    打开 SQL 实例的上下文(右键单击)菜单,然后选择重启

5.    对于集群的其他集群节点部分,重复步骤 1-4。

6.    打开 Microsoft SQL Server Management Studio (SSMS)。

7.    使用具有 SQL 实例访问权限的 Windows 验证用户名,登录其中一个 SQL 实例。

注意:最佳实践是跨多个 SQL 实例使用相同的 MDF 和 LDF 目录文件路径。

8.    创建测试数据库。打开 Databases(数据库)的上下文(右键单击)菜单,然后选择 New Database(新建数据库)。

注意:请务必使用 Options(选项)页面上的 Full(完全)恢复模式。有关更多信息,请参阅 Microsoft 网站上的 Recovery Models (SQL Server)(恢复模式(SQL Server))。

9.    对于数据库名称,输入一个名称,然后选择确定

10.    打开新数据库名称的上下文(右键单击)菜单,选择 Tasks(任务),然后选择 Back Up(备份)。对于备份类型,选择完整

11.    选择确定,然后选择确定

12.    打开 Always On 高可用性的上下文(右键单击)菜单,然后选择新可用性组向导

13.    选择下一步

14.    对于可用性组名称,输入一个名称,然后选择下一步

15.    选择数据库,然后选择下一步

16.    主副本已存在于“可用性副本”窗口中。选择添加副本创建一个辅助副本。

17.    对于服务器名称,输入辅助副本名称,然后选择连接

18.    对于 Availability Mode(可用性模式),确定想要的可用性模式,然后为每个副本选择 Synchronous commit(同步提交)或 Asynchronous commit(异步提交)。有关更多信息,请参阅 Microsoft 网站上的 Differences between availability modes for an Always On availability group(Always On 可用性组的可用性模式之间的差异)。

19.    选择下一步

20.    选择数据同步首选项,然后选择 Next(下一步)。有关更多信息,请参阅 Microsoft 网站上的 Select Initial Data Synchronization Page (Always On Availability Group Wizards)(选择初始数据同步页面(Always On 可用性组向导))

21.    验证成功后,选择下一步

注意: 您可以放心地忽略检查侦听器配置,因为您将稍后添加它。

22.    选择 Finish(完成),然后选择 Close(关闭)。

添加 SQL 组侦听器

1.    打开 SSMS,然后展开 Always On 高可用性可用性组[主副本名称]

2.    打开可用性组侦听器的上下文(右键单击)菜单,然后选择添加侦听器

对于侦听器 DNS 名称,输入一个名称。

对于端口,输入 1433

对于网络模式,选择静态 IP

3.    选择 Add(添加)。

对于 IPv4 Address(IPv4 地址),输入其中一个集群节点实例的第三个 IP 地址,然后选择 Ok(确定)。使用其他集群节点实例的第三个 IP 地址,重复此步骤。

4.    选择 Ok(确定)。

注意:添加 SQL 组侦听器时收到的错误表示缺少权限。有关故障排除步骤,请参阅 Microsoft 网站上的以下资源:

测试失效转移

1.    使用 SSMS,打开导航菜单上的主副本上下文(右键单击)菜单,然后选择故障转移

2.    选择下一步,然后选择下一步

3.    选择连接,然后选择连接

4.    选择下一步,然后选择完成。故障转移后,主副本将变为辅助副本。