New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
如何升级或降级 RDS for SQL Server 中的 SQL Server 引擎版本?
我想升级或降级 Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server 中的 SQL Server 引擎版本。
简短描述
Amazon RDS for SQL Server 支持 Express 版、Web 版、标准版和企业版。您不能使用 Amazon RDS 控制台或 AWS 命令行界面 (AWS CLI) 将 SQL Server 版本更改作为就地修改来执行。
解决方法
**注意:**如果在运行 AWS CLI 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
升级 SQL Server 引擎版本
为现有 RDS for SQL Server 实例创建 RDS 快照,然后从该快照恢复新的 RDS 实例。有关升级限制,请参阅 Microsoft SQL Server 注意事项。
完成以下步骤:
- 创建原始 RDS for SQL Server 实例的快照。
- 恢复快照以创建新的 RDS 实例。恢复实例时,请选择数据库的更高版本。
- 重命名或删除原始 RDS for SQL Server 实例,以便您可以重用 DNS 端点名称。有关详细信息,请参阅本文的“重命名 RDS 实例”部分。
要从标准版升级到企业版,请参阅 Modify an Amazon RDS for SQL Server instance from Standard edition to Enterprise edition。
您可以使用相同的快照和恢复方法进行以下类型的升级:
- 从标准版升级到企业版
- 从 Web 版升级到标准版或企业版
- 从 Express 版升级到 Web 版、标准版或企业版
**注意:**升级版本时,快照恢复会创建一个新的 RDS for SQL Server 实例。新实例的 RDS 端点与快照源实例不同。
降级 SQL Server 版本
不支持将 RDS for SQL Server 实例从较高版本就地降级到较早版本。但是,您可以完成以下任何类型的降级:
- 从企业版升级到标准版、Web 版或 Express 版
- 从标准版升级到 Web 版或 Express 版
- 从 Web 版升级到 Express 版
要降级 RDS for SQL Server 版本,请使用本机备份和恢复选项、AWS Database Migration Service (AWS DMS) 或其他工具。根据停机时间、工作量和用例的复杂性等因素选择降级选项。
RDS for SQL Server 中的本机备份和恢复选项
本机备份和恢复会在现有源 RDS for SQL Server 实例上创建数据库的完整备份。
要从源企业版实例降级到目标标准版实例,请完成以下步骤:
- 使用标准版创建新的 RDS for SQL Server 数据库实例。
- 在源企业版和目标标准版实例上添加本机备份和恢复选项。
- 将源企业版实例上的每个用户数据库备份到 Amazon Simple Storage Service (Amazon S3) 存储桶中。
- 对源企业版实例上的每个数据库运行 sys.dm_dm_persisted_sku-features 查询:
**注意:**将 database-name 替换为您的数据库名称。USE database-name GO SELECT feature_name FROM sys.dm_db_persisted_sku_features; GO
前面的查询检查当前是否有任何功能连接到较高版本。将数据库恢复到较早版本的目标实例时,连接到较高版本的功能可能不起作用。有关详细信息,请参阅 Microsoft 网站上的 sys.dm_db_persisted_sku_features (Transact-SQL)。 - 从 Amazon S3 存储桶恢复备份到目标标准版实例。
- 在目标标准版实例数据库上创建所需的登录名和用户。此外,创建相应的安全组并连接相应的参数选项组。
**注意:**您可以使用前面的步骤在 RDS 上导出和导入任何版本的 SQL Server 上的数据库。
AWS DMS
AWS DMS 将正在进行的更改从较高版本的实例复制到较早版本的实例。AWS DMS 支持单向复制和批量加载表,并捕获支持的数据更改。
有关详细信息,请参阅以下 AWS 文档:
- 使用 Microsoft SQL Server 数据库作为 AWS DMS 的源
- 使用 Microsoft SQL Server 数据库作为 AWS Database Migration Service 的目标
- 使用 SQL Server 作为 AWS DMS 源的限制
- 使用 AWS DMS 将 SQL Server 数据库迁移到 Amazon RDS for SQL Server
用于导入和导出 SQL Server 数据的其他工具
您还可以使用以下工具来导入和导出数据库:
- SQL Server 导入和导出向导
- 生成和发布脚本向导
- 批量复制(bcp 实用程序)
**注意:**在使用上述任何工具之前,必须使用较早的 SQL Server 版本启动实例。
当您使用这些工具移动数据时,可能会出现多个必须解决的数据一致性或完整性问题。在使用其中一个工具之前,请在测试环境中充分测试该过程。
对于 SQL Server 导入和导出向导,创建源实例数据库和对象的架构并将其复制到目标实例上。然后,使用该向导将表、视图或查询从一个 RDS for SQL Server 数据库实例复制到另一个数据存储。
对于 SQL Server 生成和发布脚本向导和 bcp 实用程序,使用该向导为整个数据库或选定对象创建脚本。您可以在目标 SQL Server 数据库实例上运行脚本来重新创建脚本对象。然后,使用批量复制功能将选定对象的数据导出到目标数据库实例。从同时连接到源和目标 RDS 实例的 Amazon Elastic Compute Cloud (Amazon EC2) 实例运行 bcp 实用程序。
重命名 RDS 实例
上述所有选项都会导致创建新的目标 RDS 实例。新的 RDS 实例具有与现有源 RDS 实例不同的 RDS DNS 端点。
有时,在跨应用程序和服务更新新的 RDS 端点时,组件中缺少连接字符串更新,导致错误。
为防止出现此问题,最佳做法是重命名源和目标 RDS 实例。当您重命名实例时,目标版本实例具有与原始源版实例相同的 RDS DNS 端点。因此,在更改版本后,您无需更改依赖应用程序或服务的连接字符串。
要在更改版本后重命名源和目标 RDS 实例,完成以下步骤:
**注意:**在以下示例过程中,企业版的源 RDS 实例为 rds-original,标准版的目标实例为 rds-new。
- 停止所有流向源实例 rds-original 的传入流量。
- 在 RDS 实例上升级或降级 SQL Server 版本。
**注意:**升级或降级后,源实例为 rds-original,目标实例为 rds-new。 - 修改源实例以重命名数据库实例(由 rds-original 重命名为其他名称,例如 rds-original-old)。
- 在 rds-original-old 实例处于 Available(可用)状态后,将目标数据库实例由 rds-new 重命名为源实例的原始名称 rds-original。
- 确认实例已重命名为 rds-original-old 和 rds-original,并处于 Available(可用)状态。
- 保持新的目标 RDS 实例安全组与源实例相同,以保持与现有应用程序的网络连接。
- 允许流向具有所需 SQL Server 版本的 rds-original 实例的传入流量。您无需更改应用程序连接字符串,因为 RDS 具有与源实例相同的 DNS 端点。
- 执行应用程序测试以确保 RDS 实例版本更改不会导致任何错误。
- 如果没有错误,请创建 rds-original-old 实例的最终快照,并删除该实例以降低成本。
**注意:**在生产环境中实施更改之前,最佳做法是在测试环境中测试活动。
相关信息

相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 个月前