Amazon RDS for Microsoft SQL Server - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon RDS for Microsoft SQL Server

Amazon RDS 支持多个版本的 Microsoft SQL Server。下表显示了每个主要版本支持的最新次要版本。有关所支持版本和 RDS 引擎版本的完整列表,请参阅 Amazon RDS 上的 Microsoft SQL Server 版本

主要版本 Service Pack/GDR 累积更新 次要版本 知识库文章 发行日期
SQL Server 2022 GDR CU14

16.0.4140.3

KB5042578 2024 年 9 月 10 日
SQL Server 2019 GDR CU28

15.0.4390.2

KB5042749 2024 年 9 月 10 日
SQL Server 2017 GDR CU31

14.0.3475.1

KB5042215 2024 年 9 月 10 日
SQL Server 2016 SP3 GDR CU14

13.0.6445.1

KB5042207 2024 年 9 月 10 日

有关适用于 SQL Server 的许可的信息,请参阅授予 Amazon RDS 上 Microsoft SQL Server 的许可。有关 SQL Server 内部版本的信息,请参阅有关在何处查找有关最新 SQL Server 内部版本的信息的这篇 Microsoft 支持文章。

利用 Amazon RDS,您可以创建数据库实例和数据库快照、时间点还原以及自动或手动备份。可在 VPC 内使用运行 SQL Server 的数据库实例。此外,您还可使用安全套接字层(SSL)连接到运行 SQL Server 的数据库实例,并且可以使用透明数据加密(TDE)加密静态数据。Amazon RDS 当前支持对将 SQL Server 数据库镜像(DBM)或 Always On 可用性组(AG)用作高可用性故障转移解决方案的 SQL Server 执行多可用区部署。

为让用户获得托管式服务体验,Amazon RDS 未提供对数据库实例的 Shell 访问权限,并且限制对需要高级权限的某些系统程序和表的访问权限。Amazon RDS 支持使用任何标准 SQL 客户端应用程序(例如 Microsoft SQL Server Management Studio)访问数据库实例上的数据库。Amazon RDS 不允许通过 Telnet、安全外壳(SSH)或 Windows 远程桌面连接直接从主机访问数据库实例。在创建数据库实例时,主用户将分配给该实例上的所有用户数据库的 db_owner 角色,并具有用于备份的权限以外的所有数据库级权限。Amazon RDS 会为您管理备份。

在创建您的第一个数据库实例之前,您应完成本指南的设置部分中的步骤。有关更多信息,请参阅“设置 Amazon RDS 环境”。

Amazon RDS 上 Microsoft SQL Server 的常见管理任务

以下是您使用 Amazon RDS for SQL Server 数据库实例执行的常见管理任务,以及有关每个任务的相关文档的链接。

此外,还有使用 SQL Server 数据库实例的高级管理任务。有关更多信息,请参阅以下文档:

Microsoft SQL Server 数据库实例的限制

在数据库实例上进行 Microsoft SQL Server 的 Amazon RDS 实施时,应注意某些限制:

  • 数据库实例上支持的最大数据库数取决于实例类的类型和可用性模式 — 单可用区、数据库镜像 (DBM) 多可用区或可用性组 (AG) 多可用区。Microsoft SQL Server 系统数据库不计入此限制中。

    下表显示了每种实例类类型和可用性模式支持的最大数据库数。使用此表帮助您确定是否可从一种实例类类型切换到另一种类型,或是否可从一种可用性模式切换到另一种模式。如果您的源数据库实例拥有的数据库数量超出目标实例类类型或可用性模式可以支持的数量,则修改数据库实例会失败。您可以在 Events (事件) 窗格中查看请求的状态。

    实例类类型 单可用区 DBM 多可用区 Always On 可用性组多可用区
    db.*.micro to db.*.medium 30 不适用 不适用
    db.*.large 30 30 30
    db.*.xlarge 至 db.*.16xlarge 100 50 75
    db.*.24xlarge 100 50 100

    * 表示不同实例类的类型。

    例如,我们假定您的数据库实例在使用单可用区的 db.*.16xlarge 上运行,且拥有 76 个数据库。您修改数据库实例,以便升级为使用 Always On 可用性组多可用区。因为您的数据库实例包含的数据库数量超出您的目标配置支持的数据库数量,所以此次升级失败。如果您将实例类类型升级为 db.*.24xlarge,则修改会成功。

    如果升级失败,则您会看到类似于下面所示的事件和消息:

    • 无法修改数据库实例类。该实例有 76 个数据库,但在转换之后,它仅支持 75 个数据库。

    • 无法将数据库实例转换为多可用区:该实例有 76 个数据库,但在转换之后,它仅支持 75 个数据库。

    如果时间点还原或快照还原失败,则您会看到类似于下面所示的事件和消息:

    • 数据库实例进入不兼容的还原。该实例有 76 个数据库,但在转换之后,它仅支持 75 个数据库。

  • 以下端口预留供 Amazon RDS 使用,您不能在创建数据库实例时使用它们:1234, 1434, 3260, 3343, 3389, 47001,49152-49156

  • 不允许来自 169.254.0.0/16 范围内的 IP 地址的客户端连接。这是自动私有 IP 寻址范围 (APIPA),它用于本地链路寻址。

  • 如果数据库实例的处理器数量超过软件限制(24 个内核、4 个插槽和 128GB RAM),则 SQL Server Standard 版将仅使用部分可用处理器。例如 db.m5.24xlarge 和 db.r5.24xlarge 实例类。

    有关详细信息,请参阅 Microsoft 文档中 SQL Server 2019 (15.x) 的版本和支持的功能下的扩展限制表。

  • Amazon RDS for SQL Server 不支持将数据导入 msdb 数据库。

  • 您无法重命名 SQL Server 多可用区部署中的数据库实例中的数据库。

  • 在 RDS for SQL Server 上设置以下数据库参数时,请确保遵循以下准则:

    • max server memory (mb) >= 256 MB

    • max worker threads >=(逻辑 CPU 的数量 * 7)

    有关设置数据库参数的更多信息,请参阅 Amazon RDS 的参数组

  • SQL Server 数据库实例的最大存储大小如下所示:

    • 通用型 (SSD) 存储 – 16 TiB(针对所有版本)

    • 预调配 IOPS 存储 – 16 TiB(针对所有版本)

    • 磁性存储 – 1 TiB(针对所有版本)

    对于需要大量存储的情况,您可跨多个数据库实例使用分片绕过该限制。此方法需要连接到已分片系统的应用程序中的依赖数据的路由逻辑。可以使用现有分片框架,也可以编写自定义代码来启用分片。如果使用现有框架,则该框架无法在与数据库实例相同的服务器上安装任何组件。

  • SQL Server 数据库实例的最小存储大小如下所示:

    • 通用 (SSD) 存储 – 20 GiB,用于 Enterprise、Standard、Web 和 Express 版本

    • 预置 IOPS 存储 – 20 GiB,用于 Enterprise、Standard、Web 和 Express 版本

    • 磁性存储 – 20 GiB,用于 Enterprise、Standard、Web 和 Express 版本

  • Amazon RDS 不支持在与 RDS 数据库实例相同的服务器上运行这些服务:

    • 数据质量服务

    • 主数据服务

    要使用这些功能,我们建议您在 Amazon EC2 实例上安装 SQL Server,或者使用本地 SQL Server 实例。在这些情况下,EC2 或 SQL Server 实例充当 Amazon RDS 上的 SQL Server 数据库实例的主数据服务服务器。根据 Microsoft 许可策略,您可以在带有 Amazon EBS 存储的 Amazon EC2 实例上安装 SQL Server。

  • 由于 Microsoft SQL Server 中存在的限制,还原到成功运行 DROP DATABASE 前的时间点可能不会反映出数据库在该时间点的状态。例如,通常会将已删掉的数据库还原到距发出 DROP DATABASE 命令前还有长达 5 分钟时的状态。使用此类型的还原,意味着无法还原您的已删除数据库上在那几分钟进行的事务。要解决该问题,您可以在完成还原操作后重新发出 DROP DATABASE 的命令。删除数据库也会删除该数据库的事务日志。

  • 对于 SQL Server,在创建数据库实例之后,需创建数据库。数据库名称遵循常用的 SQL Server 命名规则,但有以下区别:

    • 数据库名称不能以 rdsadmin 开头。

    • 它们不能以空格或制表符开头或结尾。

    • 它们不能包含任何创建新行的字符。

    • 它们不能包含单引号 (')。

    • RDS for SQL Server 目前不支持自动次要版本更新。有关更多信息,请参阅 Amazon RDS 中的版本管理

  • SQL Server Web Edition 仅允许您在为 SQL Server 数据库实例创建新的 RDS 时使用开发/测试模板。

Microsoft SQL Server 数据库实例的合规性计划支持

Amazon范围内的服务已由第三方审核员完全评估,由此获得了证书、合规性证明或操作授权书 (ATO)。有关更多信息,请参阅合规性计划范围内的Amazon服务

Microsoft SQL Server 数据库实例的 HIPAA 支持

您可以使用 Amazon RDS for Microsoft SQL Server 数据库来构建符合 HIPAA 标准的应用程序。您可以在与 Amazon 签订的业务合作协议 (BAA) 下存储与医疗保健相关的信息,包括受保护医疗信息 (PHI)。有关更多信息,请参阅 HIPAA 合规性

Amazon RDS for SQL Server 支持在以下版本中使用 HIPAA:

  • SQL Server 2022 企业版、标准版和 Web 版本

  • SQL Server 2019 Enterprise、Standard 和 Web 版本

  • SQL Server 2017 Enterprise、Standard 和 Web 版本

  • SQL Server 2016 Enterprise、Standard 和 Web 版本

要启用对数据库实例的 HIPAA 支持,请设置以下三个组件。

组件 详细信息

审核

要设置审核,请将参数 rds.sqlserver_audit 的值设置为 fedramp_hipaa。如果数据库实例尚未使用自定义数据库参数组,您必须创建一个自定义参数组并将它附加到数据库实例,然后才能修改 rds.sqlserver_audit 参数。有关更多信息,请参阅“Amazon RDS 的参数组”。

传输加密

要设置传输加密,请强制与数据库实例的所有连接使用安全套接字层 (SSL)。有关更多信息,请参阅“强制与数据库实例的连接使用 SSL”。

静态加密

要设置静态加密,您有两种选择:

  1. 如果您运行的是 SQL Server 2016–2022 企业版或 2022 标准版,则可以使用透明数据加密(TDE)来实现静态加密。有关更多信息,请参阅 SQL Server 中的透明数据加密支持

  2. 您可以使用 Amazon Key Management Service (Amazon KMS) 加密密钥设置静态加密。有关更多信息,请参阅 加密 Amazon RDS 资源

使用 Microsoft SQL Server 数据库镜像或 Always On 可用性组的多可用区部署

Amazon RDS 通过使用 SQL Server 数据库镜像 (DBM) 或 Always On 可用性组 (AG) 支持为运行 Microsoft SQL Server 的数据库实例进行多可用区部署。多可用区部署为数据库实例提供了更高的可用性、数据持久性和容错能力。在进行计划的数据维护或发生未计划的服务中断时,Amazon RDS 将自动故障转移到最新辅助副本,以便数据库操作能够在不进行手动干预的情况下快速恢复。主实例和辅助实例使用相同的端点,其物理网络地址作为故障转移过程的一部分转换到被动辅助副本。在故障转移时,您不必重新配置应用程序。

Amazon RDS 管理故障转移的方式是:主动监控多可用区部署并在主实例发生问题时主动启动故障转移。除非备用实例和主要实例完全同步,否则故障转移不会发生。Amazon RDS 自动修复运行状况不佳的数据库实例并重新建立同步复制,主动维护您的多可用区部署。您不必管理任何内容。Amazon RDS 负责处理主实例、见证以及备用实例。当您设置 SQL Server 多可用区时,RDS 为实例上的所有数据库配置被动辅助实例。

有关更多信息,请参阅“Amazon RDS for Microsoft SQL Server 多可用区部署”。

使用透明数据加密来加密静态数据

Amazon RDS 支持 Microsoft SQL Server 透明数据加密(TDE),此方法以透明方式对存储数据进行加密。Amazon RDS 利用选项组启用和配置这些功能。有关 TDE 选项的更多信息,请参阅 SQL Server 中的透明数据加密支持