Amazon RDS for SQL Server - AWS Prescriptive Guidance

Amazon RDS for SQL Server

Amazon RDS for SQL Server 是一项托管数据库服务,可简化 AWS 上 SQL Server 的预置和管理。借助 Amazon RDS,您可以轻松地在云中设置、操作和扩展 SQL Server 部署。借助 Amazon RDS,您可以在几分钟内部署多个版本的 SQL Server(2014、2016、2017、2019 和 2022)和版本(包括 Express、Web、标准版和企业版),并具有经济高效且可调整大小的计算容量。您可以使用通用型 SSD 或预置 IOPS SSD 存储预置 Amazon RDS for SQL Server 数据库实例。(有关详细信息,请参阅 AWS 文档中的 Amazon RDS 存储类型。预配置 IOPS SSD 旨在提供快速、可预测且一致的 I/O 性能,并针对 I/O 密集型事务 (OLTP) 数据库工作负载进行了优化。

Amazon RDS 可以管理耗时的数据库管理任务,包括预置、备份、软件修补、监控和硬件扩展,让您能够专注于应用程序开发。Amazon RDS for SQL Server 还提供多可用区部署和只读副本(适用于 SQL Server 企业版),为生产工作负载提供高可用性、性能、可扩展性和可靠性。

何时选择 Amazon RDS

在以下情况下,Amazon RDS for SQL Server 是一个迁移选项:

  • 您希望专注于业务和应用程序,并希望 AWS 负责无差别的繁重工作任务,例如数据库的配置、备份和恢复任务的管理、安全修补程序的管理、SQL Server 的次要版本升级和存储管理。

  • 您需要一个高度可用的数据库解决方案,并且希望利用 Amazon RDS 提供的一键式同步多可用区复制,而无需手动设置和维护数据库镜像、失效转移群集或 Always On 可用性组。

  • 您希望按小时支付 SQL Server 许可证作为实例成本的一部分,而不是进行大量的前期投资。

  • Amazon RDS for SQL Server 支持您的数据库大小和 IOPS 需求。请参阅 AWS 文档中的 Amazon RDS 数据库实例存储,了解当前的最大限制。

  • 您不希望管理数据库的备份或时间点恢复。

  • 您希望专注于高级任务,例如性能优化和架构优化,而不是数据库的日常管理。

  • 您希望根据您的工作负载模式扩展或缩减实例类型,而无需担心许可复杂性。

在评估数据库和项目要求后,如果您决定迁移到 Amazon RDS for SQL Server,请参阅以下部分中提供的详细信息,并查看我们稍后在本指南中讨论的迁移最佳实践

有关当前支持的 SQL Server 功能、版本和选项,请参阅 AWS 网站上的 Amazon RDS for SQL Server 功能、本指南后面的在 Amazon EC2 和 Amazon RDS 之间进行选择,以及 AWS 文档中的 Amazon RDS 上的 Microsoft SQL Server。如果您要迁移到 Amazon RDS Custom,请务必查看 Amazon RDS Custom for SQL Server 的要求和限制

高可用性

Amazon RDS 为使用多可用区选项部署的数据库提供高可用性和故障转移支持。当您使用多可用区选项预置数据库时,Amazon RDS 会自动在不同的可用区中预置和维护同步备用实例。主数据库将数据同步复制到备用实例。如果出现问题,Amazon RDS 会自动修复运行状况不佳的实例并重新建立同步。如果基础设施发生故障或可用区中断,Amazon RDS 会自动故障转移到备用实例。仅当备用数据库和主数据库完全同步时,才会发生失效转移。由于主实例和备用实例的终端节点保持不变,因此您可以在失效转移完成后立即恢复数据库操作,而无需执行手动干预。失效转移时间取决于完成恢复过程所需的时间。大型事务会增加故障转移时间。

下图说明了 Amazon RDS for SQL Server 多可用区部署选项。

Amazon RDS for SQL Server in a Multi-AZ configuration

当您在多可用区配置中设置 SQL Server 时,Amazon RDS 会根据您部署的 SQL Server 版本,使用数据库镜像或 Always On 可用性组自动配置备用数据库实例。Amazon RDS 文档中列出了具体的 SQL Server 版本和版本类型。

在多可用区部署中,实例扩展等操作或操作系统 (OS) 修补等系统升级将首先应用于备用实例,然后再对主实例进行自动失效转移,以提高可用性。

由于 SQL Server 的失效转移优化,某些工作负载在备用实例上生成的 I/O 负载可能比在主实例上产生的 I/O 负载更大,尤其是在数据库镜像部署中。此功能可能会导致备用实例上的 IOPS 更高。我们建议您在预置 Amazon RDS for SQL Server 数据库实例的存储类型和 IOPS 时,考虑主实例和备用实例的最大 IOPS 需求。如果客户端驱动程序支持,还可以指定 MultiSubnetFailover=True,以显著减少失效转移时间。

限制

  • 多可用区选项不适用于 SQL Server Express 和 Web 版本。它仅适用于 SQL Server 标准版和企业版。

  • 您不能将备用数据库实例配置为接受数据库读取活动。

  • 不支持跨区域多可用区。

  • 在 Amazon RDS 中,您可以向独立数据库实例发出 stop 命令,并使实例保持停止状态,以避免产生计算费用。您无法停止多可用区配置中的 Amazon RDS for SQL Server 数据库实例。相反,您可以终止实例,在终止之前拍摄最终快照,并在需要时从快照重新创建新的 Amazon RDS 实例。或者,您可以先删除多可用区配置,然后停止实例。七天后,已停止的实例将重新启动,以便可以应用任何待处理的维护。

有关其他限制,请参阅 Amazon RDS 文档中的 Microsoft SQL Server 多可用区部署说明和建议

只读副本

只读副本提供可扩展性和负载均衡。SQL Server 只读副本是用于只读目的的 Amazon RDS for SQL Server 数据库实例的物理副本。Amazon RDS 通过将只读工作负载卸载到只读副本数据库实例来帮助减少主数据库实例上的负载。对主数据库实例进行的更新将异步复制到只读副本实例。

请求只读副本时,Amazon RDS 将创建源数据实例的快照,此快照变成只读副本。创建和删除只读副本时不会出现中断。无论维护时段如何,Amazon RDS for SQL Server 都会在升级只读副本后立即升级主数据库。每个只读副本都附带一个单独的终端节点,用于连接到只读副本数据库。

Amazon RDS for SQL Server 通过配置 Always On 可用性组并维护主数据库实例与其只读副本之间的安全网络连接,可以轻松创建只读副本。

您可以在与主数据库相同的 AWS 区域或其他区域中设置读取副本。您可以为一个源数据库实例创建最多 5 个只读副本。

注意

只读副本仅适用于以下 SQL Server 版本:

  • SQL Server 2017 企业版 14.00.3049.1 或更高版本

  • SQL Server 2016 企业版 13.00.5216.0 或更高版本

支持多可用区环境数据库镜像的 SQL Server 版本不提供只读副本。

下图说明了多可用区环境中的 Amazon RDS for SQL Server 数据库实例,该实例的只读副本位于同一 AWS 区域内的另一个可用区中。并非所有 AWS 区域都提供两个以上的可用区,因此在采用此策略之前,您应该检查您计划使用的区域

Amazon RDS for SQL Server with a read replica in another Availability Zone in the same Region

SQL Server 只读副本不允许写入操作。但是,您可以提升只读副本以使其可写。提升后,无法将其恢复为只读副本。它将成为与其原始主数据库实例没有关系的单个独立数据库实例。提升的只读副本中的数据将与源数据库实例中的数据匹配,直到发出提升请求时的数据。源数据库实例及其所有只读副本的 SQL Server 数据库引擎版本将是相同的。

为了实现高效复制,我们建议采取以下措施:

  • 使用与源数据库实例相同的计算和存储资源设置每个只读副本。

  • 您必须先通过将备份保留期设置为一个非 0(零)值来在源数据库实例上启用自动备份。

  • 源数据库实例必须部署在具有 Always On 可用性组的多可用区。

有关 SQL Server 版本支持、版本和限制,请参阅 Amazon RDS 文档中的 SQL Server 只读副本限制。

有关使用只读副本的更多信息,请参阅 AWS 文档中的使用只读副本和使用 Amazon RDS 的 SQL Server 只读副本。有关数据传输定价的更多信息,请参阅 Amazon RDS 定价

灾难恢复

借助 Amazon RDS for SQL Server,您可以创建可靠的跨区域灾难恢复 (DR) 策略。创建灾难恢复解决方案的主要原因是业务连续性和合规性:

  • 有效的灾难恢复策略可帮助您在灾难性事件期间保持系统正常运行,同时将中断降至最低或没有中断。可靠且有效的跨区域灾难恢复策略可使您的业务保持运营,即使整个区域都处于离线状态。

  • 跨区域灾难恢复解决方案可帮助您满足审计和合规性要求。

恢复点目标 (RPO)、恢复时间目标 (RTO) 和成本是制定灾难恢复策略时要考虑的三个关键指标。有关提供跨区域副本的其他选项,请参阅 AWS Marketplace。有关这些方法的更多信息,请参阅 AWS Database 博客上的 Amazon RDS for SQL Server 的跨区域灾难恢复