

# 在 RDS for SQL Server 上使用 SQL Server 开发人员版
<a name="sqlserver-dev-edition"></a>

RDS for SQL Server 支持 SQL Server 开发人员版。开发人员版包含 SQL Server 企业版的所有功能，但仅许可用于非生产用途。您可以通过自定义引擎版本（CEV）功能，使用您自己的安装媒体创建 RDS for SQL Server 开发人员版实例。

## 优势
<a name="sqlserver-dev-edition.benefits"></a>

您可以使用 RDS for SQL Server 开发人员版来实现：
+ 降低开发和测试环境的成本，同时保持与生产数据库的功能对等性。
+ 无需支付企业许可费用，即可在非生产环境中访问企业版功能。
+ 使用 Amazon RDS 自动管理功能，包括备份、修补和监控。

**注意**  
SQL Server 开发人员版仅许可用于开发和测试目的，而不能在生产环境中使用。

## 区域可用性
<a name="sqlserver-dev-edition.regions"></a>

RDS for SQL Server 开发人员版在以下 AWS 区域推出：
+ 美国东部（弗吉尼亚州北部）
+ 美国东部（俄亥俄州）
+ 美国西部（俄勒冈州）
+ 美国西部（北加利福尼亚）
+ 亚太地区（孟买）
+ 亚太地区（首尔）
+ 亚太地区（新加坡）
+ 亚太地区（大阪）
+ 亚太地区（悉尼）
+ 亚太地区（东京）
+ 欧洲地区（爱尔兰）
+ 欧洲地区（法兰克福）
+ 欧洲地区（伦敦）
+ 欧洲地区（斯德哥尔摩）
+ 欧洲地区（巴黎）
+ 加拿大（中部）
+ 南美洲（圣保罗）
+ 非洲（开普敦）

## 许可和使用
<a name="sqlserver-dev-edition.licensing"></a>

SQL Server 开发人员版由 Microsoft 许可，仅适用于开发和测试环境。您不能将开发人员版用作生产服务器。当您在 Amazon RDS 上使用 SQL Server 开发人员版时，您有责任遵守 Microsoft 的 SQL Server 开发人员版许可条款。您只需为 AWS 基础设施成本付费，而无需支付额外的 SQL Server 许可费。有关定价详细信息，请参阅 [RDS for SQL Server pricing](https://aws.amazon.com/rds/sqlserver/pricing/)。

## 先决条件
<a name="sqlserver-dev-edition.prerequisites"></a>

在 RDS for SQL Server 上使用 SQL Server 开发人员版之前，请确保您已满足以下要求：
+ 您必须直接从 Microsoft 获取安装二进制文件，并确保遵守 Microsoft 的许可条款。
+ 您必须具有访问权限，以使用以下资源来创建开发人员版数据库实例：
  + 拥有 `AmazonRDSFullAccess` 和 `s3:GetObject` 权限的 AWS 账户。
+ 存储安装媒体需要 Amazon S3 存储桶。在创建 CEV 的过程中，您需要将 ISO 和累积更新文件上传到 Amazon S3 存储桶。有关更多信息，请参阅[将安装媒体上传到 Amazon S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)。
+ 所有安装媒体文件都必须位于同一 Amazon S3 存储桶中，并且在创建自定义引擎版本的同一区域中，必须位于该 Amazon S3 存储桶内的相同文件夹路径中。

### 支持的版本
<a name="sqlserver-dev-edition.supported-versions"></a>

RDS for SQL Server 上的开发人员版支持以下版本：
+ SQL Server 2022 CU 21（16.00.4215.2）
+ SQL Server 2019 CU 32 GDR（15.00.4455.2）

要列出开发人员版 CEV 创建所支持的所有引擎版本，请使用以下 AWS CLI 命令：

```
aws rds describe-db-engine-versions --engine sqlserver-dev-ee --output json --query "{DBEngineVersions: DBEngineVersions[?Status=='requires-custom-engine-version'].{Engine: Engine, EngineVersion: EngineVersion, Status: Status, DBEngineVersionDescription: DBEngineVersionDescription}}"
```

此命令将返回类似于以下示例的输出：

```
{
    "DBEngineVersions": [
        {
            "Engine": "sqlserver-dev-ee",
            "EngineVersion": "16.00.4215.2.v1",
            "Status": "requires-custom-engine-version",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Developer Edition",
            "DBEngineVersionDescription": "SQL Server 2022 16.00.4215.2.v1"
        }
    ]
}
```

引擎版本状态为 `requires_custom_engine_version` 标识支持的模板引擎版本。这些模板显示您可以导入哪些 SQL Server 版本。

## 限制
<a name="sqlserver-dev-edition.limitations"></a>

以下限制适用于 Amazon RDS 上的 SQL Server 开发人员版：
+ 目前仅在 M6i 和 R6i 实例类上才支持。
+ 不支持多可用区部署和只读副本。
+ 您必须提供并管理自己的 SQL Server 安装媒体。
+ SQL Server 开发人员版（sqlserver-dev-ee）的自定义引擎版本不能跨区域或跨账户共享。

# 准备适用于 RDS for SQL Server 的 CEV
<a name="sqlserver-dev-edition.preparing"></a>

## 先决条件
<a name="sqlserver-dev-prerequisites"></a>

在创建自定义引擎版本之前，请确保您已完成以下先决条件：

### 准备 SQL Server 开发人员版安装媒体
<a name="sqlserver-dev-prepare-media"></a>

您必须从 Microsoft 获取 SQL Server 开发人员版安装媒体，并准备将其上传到 S3。

**从 Microsoft 下载安装媒体**

1. **选项 A：**使用您的 [Visual Studio 订阅](https://visualstudio.microsoft.com/subscriptions/)下载开发人员版 ISO。仅支持英文版本。

1. **选项 B：使用 SQL Server 安装程序**

   1. 下载 [SQL Server 开发人员版安装程序](https://download.microsoft.com/download/c/c/9/cc9c6797-383c-4b24-8920-dc057c1de9d3/SQL2022-SSEI-Dev.exe)。

   1. 运行安装程序并选择**下载媒体**以下载完整版 ISO。

   1. 选择**英语**作为首选语言。

   1. 选择 **ISO** 作为媒体类型。

   1. 选择**下载**。

**下载累积更新**

1. 访问 [Microsoft Catalog Update](https://www.catalog.update.microsoft.com/Home.aspx) 页面。

1. 查找 RDS for SQL Server 支持的 SQL Server 开发人员版，例如“SQL Server 2022 年累积更新”。

1. 下载最新支持的 CU 可执行文件并将其保存到您的计算机上。

1. 示例文件：`SQLServer2022-KB5065865-x64.exe`（适用于 SQL Server 2022 的 CU21）

**重要**  
RDS for SQL Server 仅支持特定的累积更新（CU）版本。您必须使用下表中列出的确切版本。即使 Microsoft 提供较新的 CU 版本，也不要使用这些版本，因为它们可能与 RDS 不兼容。

或者，您也可以直接从以下位置下载所需的累积更新（CU）文件：

下表列出了支持的 SQL Server 开发人员版本及其相应的要与 RDS 结合使用的累积更新：


| SQL Server 版本 | 支持的 CU | 知识库文章 | 下载文件名 | 
| --- | --- | --- | --- | 
|  SQL Server 2022  |  `CU21`  |  [KB5065865](https://learn.microsoft.com/en-us/troubleshoot/sql/releases/sqlserver-2022/cumulativeupdate21)  |  `SQLServer2022-KB5065865-x64.exe`  | 
|  SQL Server 2019  |  `CU32 GDR`  |  [KB5068404](https://support.microsoft.com/en-us/topic/kb5068404-description-of-the-security-update-for-sql-server-2019-cu32-november-11-2025-c203bfbf-036e-46d2-bc10-6c01200dc48a)  |  `SQLServer2019-KB5068404-x64.exe`  | 

# 创建适用于 RDS for SQL Server 的自定义引擎版本
<a name="sqlserver-dev-edition.creating-cev"></a>

适用于 RDS for SQL Server 的自定义引擎版本（CEV）由导入到 Amazon RDS 的 SQL Server 开发人员版安装媒体组成。需要将基本 ISO 安装程序和累积更新文件（.exe）上传到您的 Amazon S3 存储桶。上传后，您应向 RDS 提供 Amazon S3 位置，以便其下载、验证以及随后创建您的 CEV。

## 命名限制
<a name="sqlserver-dev-edition.create-cev.naming-limitations"></a>

创建 CEV 时，必须遵循特定的命名约定：
+ CEV 名称必须遵循模式 `major-version.minor-version.customized-string`。
+ `customized-string` 可以包含 1–50 个字母数字字符、下划线、短划线和句点。例如：对于 SQL Server 2022，为 `16.00.4215.2.my-dev-cev`。

要列出所有支持的引擎版本，请使用以下命令：

```
aws rds describe-db-engine-versions --engine sqlserver-dev-ee --output json --query "{DBEngineVersions: DBEngineVersions[?Status=='requires-custom-engine-version'].{Engine: Engine, EngineVersion: EngineVersion, Status: Status, DBEngineVersionDescription: DBEngineVersionDescription}}" 

{
    "DBEngineVersions": [
        {
            "Engine": "sqlserver-dev-ee",
            "EngineVersion": "16.00.4215.2.v1",
            "Status": "requires-custom-engine-version",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Developer Edition",
            "DBEngineVersionDescription": "SQL Server 2022 16.00.4215.2.v1"
        }
    ]
}
```

## AWS CLI
<a name="sqlserver-dev-edition.create-cev.CLI"></a>

**创建自定义引擎版本**
+ 使用 [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html) 命令。

  以下选项为必填：
  + `--engine`
  + `--engine-version`
  + `--database-installation-files-s3-bucket-name`
  + `--database-installation-files`
  + `--region`

  您还可以指定以下选项：
  + `--database-installation-files-s3-prefix`
  + `--description`
  + `--tags`

  ```
  aws rds create-custom-db-engine-version \
  --engine sqlserver-dev-ee \
  --engine-version 16.00.4215.2.cev-dev-ss2022-cu21 \
  --region us-west-2 \
  --database-installation-files-s3-bucket-name my-s3-installation-media-bucket \
  --database-installation-files-s3-prefix sqlserver-dev-media \
  --database-installation-files "SQLServer2022-x64-ENU-Dev.iso" "SQLServer2022-KB5065865-x64.exe"
  ```

创建 CEV 通常需要 15-30 分钟。要监控 CEV 创建进度，请使用以下命令：

```
# Check CEV status
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

## RDS for SQL Server CEV 的生命周期
<a name="sqlserver-dev-cev-lifecycle"></a>

在 RDS for SQL Server 上使用 SQL Server 开发人员版时，自定义引擎版本会经历不同的生命周期状态。


| 生命周期状态 | 说明 | 何时出现 | 可用操作 | 
| --- | --- | --- | --- | 
|  pending-validation  |  创建 CEV 时的初始状态  |  这是使用 `create-custom-db-engine-version` 命令创建后的初始状态。  |  通过 `describe-db-engine-version` 监控状态。  | 
|  正在验证  |  CEV 验证状态  |  Amazon RDS 正在验证您的自定义引擎版本（CEV）。这个异步过程可能需要一些时间才能完成。  |  监控状态，直到验证完成。  | 
|  available  |  自定义引擎版本（CEV）验证成功完成。  |  自定义引擎版本（CEV）现已可用。Amazon RDS 成功验证了您的 SQL Server ISO 和累积更新文件。您现在可以使用此 CEV 创建数据库实例。  |  使用此 CEV 创建数据库实例  | 
|  已失败  |  由于验证检查失败，RDS for SQL Server 无法创建自定义引擎版本（CEV）。  |  ISO 和累积媒体验证失败。   |  ISO 验证失败。在 `describe-db-engine-version` 中检查失败原因，修复任何文件问题，例如哈希不匹配或内容损坏，然后重新创建自定义引擎版本（CEV）。  | 
|  删除  |  正在删除自定义引擎版本（CEV）  |  在客户调用 `delete-custom-db-engine-version` 之后，直到删除工作流程完成。  |  通过 `describe-db-engine-version` 监控状态。  | 
|  incompatible-installation-media  |  Amazon RDS 无法验证为自定义引擎版本（CEV）提供的安装媒体  |  自定义引擎版本（CEV）验证失败。这是最终状态。  |  有关验证失败原因的信息，请通过 `describe-db-engine-versions` 参阅 failureReason；删除 CEV。  | 

### 描述 CEV 状态
<a name="sqlserver-dev-cev-status-check"></a>

您可以使用 AWS CLI 查看 CEV 的状态。

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status}'
```

示例输出

```
| DescribeDBEngineVersions                     |
+------------+---------------------------------+
| Status | Version                             |
+------------+---------------------------------+
| available | 16.00.4215.2.cev-dev-ss2022-cu21    |
+------------+---------------------------------+
```

当 CEV 显示 `failed` 状态时，您可以使用以下命令确定原因：

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status,FailureReason:FailureReason}'
```

# 创建 RDS for SQL Server 开发人员版数据库实例
<a name="sqlserver-dev-edition.creating-instance"></a>

在 RDS for SQL Server 上启动开发人员版实例的过程分为两步：首先使用 `create-custom-db-engine-version` 创建 CEV，一旦自定义引擎版本处于可用状态，即可使用 CEV 创建 Amazon RDS 数据库实例。

**开发人员版实例创建的主要区别**


| 参数 | 开发人员版本 | 
| --- | --- | 
|  `--engine`  |  sqlserver-dev-ee  | 
|  `--engine-version`  |  自定义引擎版本（例如，16.00.4215.2.cev-dev-ss2022-cu21）  | 
|  `--license-model`  |  自带许可  | 

## AWS CLI
<a name="sqlserver-dev-edition.creating-instance.CLI"></a>

要创建 SQL Server 开发人员版数据库实例，请使用以下参数调用 [create-db-instance](https://docs.aws.amazon.com//cli/latest/reference/rds/create-db-instance.html) 命令：

以下选项为必填：
+ `--db-instance-identifier` 
+ `--db-instance-class` 
+ `--engine` – `sqlserver-dev-ee`
+ `--region`

**示例：**

对于 Linux、macOS 或 Unix：

```
aws rds create-db-instance \
--db-instance-identifier my-dev-sqlserver \
--db-instance-class db.m6i.xlarge \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--allocated-storage 200 \
--master-username admin \
--master-user-password changeThisPassword \
--license-model bring-your-own-license \
--no-multi-az \
--vpc-security-group-ids sg-xxxxxxxxx \
--db-subnet-group-name my-db-subnet-group \
--backup-retention-period 7 \
--region us-west-2
```

对于 Windows：

```
aws rds create-db-instance ^
--db-instance-identifier my-dev-sqlserver ^
--db-instance-class db.m6i.xlarge ^
--engine sqlserver-dev-ee ^
--engine-version 16.00.4215.2.cev-dev-ss2022-cu21 ^
--allocated-storage 200 ^
--master-username admin ^
--master-user-password master_user_password ^
--license-model bring-your-own-license ^
--no-multi-az ^
--vpc-security-group-ids sg-xxxxxxxxx ^
--db-subnet-group-name my-db-subnet-group ^
--backup-retention-period 7 ^
--region us-west-2
```

请参阅[创建数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html#USER_CreateDBInstance.Creating)，以便使用 AWS 控制台来创建实例。

# 应用数据库次要版本升级
<a name="sqlserver-dev-edition.minor-version-upgrades"></a>

RDS for SQL Server 开发人员版要求使用最新的累积更新来创建新的自定义引擎版本（CEV），才能应用数据库次要版本升级。SQL Server 开发人员版的数据库次要版本升级涉及以下步骤：

1. 在升级之前，验证实例上的当前引擎版本，从 Amazon RDS 支持的版本中确定目标数据库引擎版本。有关在 Amazon RDS 上可用的 SQL Server 版本的信息，请参阅 [在 RDS for SQL Server 上使用 SQL Server 开发人员版](sqlserver-dev-edition.md)。

1. 获取并上传安装媒体（ISO 和 CU），然后[创建新的自定义引擎版本](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/sqlserver-dev-edition.creating-cev.html)。

1. 通过使用带有新 CEV 的 Amazon RDS [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 来应用数据库次要版本升级。

   ```
   aws rds modify-db-instance \
   --db-instance-identifier <instance-id> \
   --engine-version <new-cev-version> \
   --no-apply-immediately ## use --apply-immediately for immediate update
   ```
**注意**  
使用 `--no-apply-immediately`（默认设置）可在下一个维护时段内应用更改。

# 查看和管理自定义引擎版本
<a name="sqlserver-dev-edition.managing"></a>

要查看所有 RDS for SQL Server 开发人员版 CEV，请使用 `describe-db-engine-versions` 命令，并将 `--engine` 输入设置为 `sqlserver-dev-ee`。

```
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--include-all \
--region us-west-2
```

要查看特定 CEV 的详细信息，请使用以下命令：

```
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.cev-dev-ss2022-cu21 \
--region us-west-2
```

**注意**  
此命令仅返回带有 `available` 状态的 CEV。要查看处于验证状态或其它状态的 CEV，请加入 `--include-all` 标志。

## 删除自定义引擎版本
<a name="sqlserver-dev-deleting-cevs"></a>

删除 CEV 之前，请确保它未被以下任何项目使用：
+ Amazon RDS 数据库实例
+ Amazon RDS 数据库实例的快照
+ Amazon RDS 数据库实例的自动备份

**注意**  
如果存在与 CEV 关联的任何资源，您无法删除它。

要删除自定义引擎版本，请使用 [delete-custom-db-engine-version](https://docs.aws.amazon.com//cli/latest/reference/rds/delete-custom-db-engine-version.html) 命令。
+ `--engine`：为开发人员版指定 `sqlserver-dev-ee`
+ `--engine-version`：要删除的确切 CEV 版本标识符
+ `--region`：CEV 位于其中的 AWS 区域

```
aws rds delete-custom-db-engine-version \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

要监控 CEV 删除过程，请使用 `describe-db-engine-versions` 命令并指定 RDS for SQL Server CEV 引擎版本

```
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

状态值：
+ `deleting`：正在删除 CEV
+ 未返回任何结果：已成功删除 CEV

# 适用于 RDS for SQL Server 的 SQL Server 开发人员版故障排除
<a name="sqlserver-dev-edition.troubleshooting"></a>

下表列出了使用适用于 RDS for SQL Server 的 SQL Server 开发人员版时遇到的一些常见错误和相应的解决方案


**常见错误和解决方案**  

| 错误代码 | 说明 | 解决方案 | 
| --- | --- | --- | 
| InvalidParameterValue | CEV 参数或文件引用无效 | 验证文件名、路径和参数语法 | 
| DBSubnetGroupNotFound | 子网组不存在 | 创建子网组或验证名称 | 
| InvalidVPCNetworkState | VPC 配置问题 | 检查 VPC、子网和路由表 | 
| InvalidEngineVersion | CEV 不可用或无效 | 验证 CEV 状态和名称 | 
| InvalidDBInstanceClass | 不支持此实例类 | 选择支持的实例类 | 
| CustomDBEngineVersionQuotaExceededFault | 您已达到最大自定义引擎版本数 | 如果需要，可以增加服务配额，也可以根据需要删除未使用的 CEV | 
| CreateCustomDBEngineVersionFault | Amazon RDS 无法访问 Amazon S3 存储桶中的指定安装程序文件。 | Amazon RDS 无法访问指定 Amazon S3 位置中的 SQL Server 安装文件。在您的 Amazon S3 存储桶策略中向 Amazon RDS 服务主体（rds.amazonaws.com）授予 s3:GetObject 权限。验证 Amazon S3 存储桶区域与您要在其中创建 CEV 的区域相同。 | 