

# 创建和管理适用于 RDS for SQL Server 的 BYOM 引擎版本
<a name="sqlserver-byom-creating-cev"></a>

创建 BYOM 引擎版本需要完成一次性设置（许可证移动性验证、获取 RTM 媒体并将其上传到 S3）。设置完成后，您可使用 Amazon RDS 控制台或 AWS CLI 创建引擎版本。

## 开始前的准备工作
<a name="sqlserver-byom-creating-cev.before-you-begin"></a>

### 步骤 1：完成 Microsoft 许可证移动性验证
<a name="sqlserver-byom-creating-cev.step1"></a>

BYOM 需要通过软件保障获得许可证移动性。在 AWS 上进行部署之前，您的 SQL Server 许可证必须具有有效的软件保障。

要完成验证过程，请执行以下操作：

1. **检查资格**：访问 [AWS 许可证移动性页面](https://aws.amazon.com/windows/resources/licensemobility/)，查看要求和资格标准。

1. **提交验证表**：下载并填写 [Microsoft 许可证移动性验证表](https://www.microsoft.com/en-us/licensing/licensing-programs/software-assurance-license-mobility.aspx)。通过您的许可合作伙伴或直接将表格提交给 Microsoft。

1. **等待批准**：Microsoft 会在您的验证获得批准后，向您发送一封确认电子邮件。

您必须在将产品带到 AWS 后的 10 天内直接或通过您的 Microsoft 经销商将表格提交给 Microsoft。

**重要**  
AWS 不验证或强制执行 Microsoft 许可合规性。您负责确保维护对 Microsoft 许可协议的合规性。

### 步骤 2：获取 SQL Server 安装媒体
<a name="sqlserver-byom-creating-cev.step2"></a>

下载要使用的 SQL Server 主要版本的发布到制造（RTM）文件。RTM 文件是 SQL Server 主要版本和修订版（例如 SQL Server 2019 企业版）的基本安装媒体。

您可从以下任一 Microsoft 来源获取 RTM 文件：
+ **Visual Studio 订阅**：如果您具有有效的 Visual Studio 订阅，请从[订阅用户下载页面](https://visualstudio.microsoft.com/subscriptions/)下载 RTM 文件。
+ **Microsoft 365 管理中心**：如果您通过批量许可购买了产品，请从 [Microsoft 365 管理中心下载页面](https://admin.microsoft.com)下载 RTM 文件。

**重要**  
仅下载英语版本的基于内核的 ISO 文件。请勿使用基于 Server\+CAL 的 ISO 文件。

**重要**  
对于 SQL Server 2019 交付厂商版（RTM）安装媒体（标准版和企业核心版），只能从 Microsoft 365 管理中心下载。不支持从 Visual Studio 订阅下载的 SQL Server 2019 媒体。对于 SQL Server 2022 及更高版本，您可以从 Microsoft 365 管理中心或 Visual Studio 订阅下载 RTM 安装媒体。

### 步骤 3：将安装媒体上传到 Amazon S3
<a name="sqlserver-byom-creating-cev.step3"></a>

将 SQL Server RTM 文件上传到 Amazon S3 存储桶，该存储桶应位于您计划创建 BYOM 引擎版本的相同 AWS 区域和账户中。要使用 AWS CLI 上传 RTM 文件，请执行以下操作：

```
aws s3 cp SQLServer2022-x64-ENU-Enterprise.iso s3://my-sqlserver-media/ISOs/
```

**注意**  
如果您在 BYOM 引擎创建期间未提供累积更新（CU）文件，则在您创建引擎版本时，Amazon RDS 会自动从 Microsoft 下载所需的 CU。

## 创建 BYOM 引擎版本
<a name="sqlserver-byom-creating-cev.creating"></a>

使用 `describe-db-engine-versions` 验证哪些引擎版本符合创建 BYOM 引擎版本的条件。有关支持的版本，请查看[适用于 RDS for SQL Server 的自带媒体（BYOM）](sqlserver-byom.md)。

### 控制台
<a name="sqlserver-byom-creating-cev.console"></a>

1. 登录 [AWS 管理控制台](https://console.aws.amazon.com/rds/)并打开 Amazon RDS 控制台。

1. 在导航窗格中，选择 **Custom engine versions**（自定义引擎版本）。

1. 从下拉列表中选择 **RDS for SQL Server**。

1. 选择 **Create custom engine version**（创建自定义引擎版本）。

1. 对于**引擎类型**，选择 **SQL Server**。

1. 对于**数据库管理类型**，选择 **Amazon RDS**。

1. 对于**版本**，选择以下项之一：
   + SQL Server 企业版
   + SQL Server 标准版

1. 对于**引擎版本**，请选择与您的安装文件匹配的 SQL Server 版本（例如，SQL Server 2022 `16.00.4175.1.v1` 或 SQL Server 2025 `17.00.4045.5.v1`）。

1. 对于**安装媒体**，请输入包含您的 SQL Server RTM 媒体的 S3 URI，或者选择**浏览 S3** 来查找并选择文件。

1. 选择 **Create custom engine version**（创建自定义引擎版本）。

控制台显示新的 BYOM 引擎版本，其初始状态为**待验证**。状态会自动更新。有关更多信息，请参阅 [BYOM 引擎版本生命周期状态](#sqlserver-byom-creating-cev.lifecycle)。

### CLI
<a name="sqlserver-byom-creating-cev.cli"></a>

使用 `create-custom-db-engine-version` 命令从安装媒体创建 BYOM 引擎版本。Amazon RDS 会自动从 Microsoft 下载所需的累积更新。

```
aws rds create-custom-db-engine-version \
    --engine sqlserver-ee \
    --engine-version 16.00.4175.1.v1 \
    --database-installation-files-s3-bucket-name my-sqlserver-media \
    --database-installation-files-s3-prefix "ISOs/" \
    --database-installation-files "SQLServer2022-x64-ENU-Enterprise.iso"
```

**响应**

```
{
    "Engine": "sqlserver-ee",
    "MajorEngineVersion": "16.00",
    "EngineVersion": "16.00.4175.1.v1",
    "DatabaseInstallationFiles": [
        "SQLServer2022-x64-ENU-Enterprise.iso"
    ],
    "DBEngineDescription": "Microsoft SQL Server Enterprise Edition",
    "DBEngineVersionArn": "arn:aws:rds:us-east-1:123456789012:cev:sqlserver-ee/16.00.4175.1.v1/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    ....
    "Status": "pending-validation",
    .....
}
```

**CLI 参数**


| 参数 | 必需 | 描述 | 
| --- | --- | --- | 
| --engine | 是 | 数据库引擎类型：sqlserver-ee、sqlserver-se。 | 
| --engine-version | 是 | 目标引擎版本（例如，16.00.4175.1.v1）。 | 
| --database-installation-files-s3-bucket-name | 是 | 包含您的安装媒体的 S3 存储桶的名称。存储桶必须与 BYOM 引擎版本位于相同 AWS 区域中。 | 
| --database-installation-files-s3-prefix | 否 | 存储安装媒体文件的 S3 键前缀（文件夹路径）。 | 
| --database-installation-files | 是 | 安装媒体的文件名。 | 

**注意**  
使用 AWS CLI 时，只有为主要版本和修订版创建的第一个 BYOM 引擎版本才需要 `--database-installation-files-s3-bucket-name`、`--database-installation-files-s3-prefix` 和 `--database-installation-files` 参数。对于相同主要版本的后续次要版本，只有 `--engine` 和 `--engine-version` 是必需项。

## 描述 BYOM 引擎版本
<a name="sqlserver-byom-creating-cev.describing"></a>

创建 BYOM 引擎版本后，请使用 `describe-db-engine-versions` 检查其状态和详细信息。对于同一个引擎版本，输出返回两条记录：一条针对含许可证 (`DBEngineMediaType: None`)，另一条针对 BYOM (`DBEngineMediaType: Customer Provided`)。

**示例：**

```
aws rds describe-db-engine-versions \
    --engine sqlserver-ee \
    --engine-version 16.00.4175.1.v1 \
    --include-all \
    --output table \
    --query "DBEngineVersions[].{Engine: Engine, Version: EngineVersion, Status: Status, MediaType: DBEngineMediaType}"
```

**响应：**

```
-----------------------------------------------------------------------
|                      DescribeDBEngineVersions                       |
+--------------+---------------------+------------+-------------------+
|    Engine    |      MediaType      |  Status    |      Version      |
+--------------+---------------------+------------+-------------------+
|  sqlserver-ee|  None               |  available |  16.00.4175.1.v1  |
|  sqlserver-ee|  Customer Provided  |  available |  16.00.4175.1.v1  |
+--------------+---------------------+------------+-------------------+
```

## BYOM 引擎版本生命周期状态
<a name="sqlserver-byom-creating-cev.lifecycle"></a>


| 州 | 说明 | 
| --- | --- | 
| pending-validation | RDS 接受了请求并将请求排队等候处理。 | 
| validating | RDS 正在验证 RTM 媒体文件。 | 
| creating | RDS 正在从 RTM 媒体文件安装 SQL Server。 | 
| available | BYOM 引擎版本已准备好进行实例创建。 | 
| incompatible\_installation\_media | 安装文件无效或已损坏。这是最终状态。删除 BYOM 引擎版本并使用正确的文件重试。 | 

## 修改 BYOM 引擎版本
<a name="sqlserver-byom-creating-cev.modifying"></a>

您可以使用 AWS 管理控制台或 AWS CLI 修改 BYOM 引擎版本。您可以修改 BYOM 引擎版本描述或其可用性状态。您的 BYOM 引擎版本具有以下状态值之一：
+ **可用**：您可以使用此 BYOM 引擎版本创建新的数据库实例或升级数据库实例。这是新创建 BYOM 引擎版本的默认状态。
+ **非活动**：您无法使用此 BYOM 引擎版本创建或升级数据库实例。您无法使用此 BYOM 引擎版本还原数据库快照来创建新数据库实例。

您可以将 BYOM 引擎版本状态从 `available` 更改为 `inactive` 或从 `inactive` 更改为 `available`。您可以将状态更改为 `inactive`，以防止意外使用某个 BYOM 引擎版本或使已停止的 BYOM 引擎版本可以再次使用。

```
aws rds modify-custom-db-engine-version \
    --engine sqlserver-ee \
    --engine-version 16.00.4175.1.v1 \
    --status inactive
```

**响应**

```
{
    "Engine": "sqlserver-ee",
    "MajorEngineVersion": "16.00",
    "EngineVersion": "16.00.4175.1.v1",
    ....
    "Status": "inactive",
    ....
}
```

**注意**  
运行您设置为非活跃的 BYOM 引擎版本的现有实例将继续正常运行。只有新实例的创建和恢复操作会受到影响。

## 删除 BYOM 引擎版本
<a name="sqlserver-byom-creating-cev.deleting"></a>

使用 `delete-custom-db-engine-version` 可永久删除 BYOM 引擎版本。删除后，引擎版本将返回为单个仅 LI 条目。

**执行删除的先决条件**

在删除 BYOM 引擎版本之前，请确保您满足以下条件：
+ 没有数据库实例正在使用 BYOM 版本。
+ 没有数据库快照引用了 BYOM 版本。

如果存在任何 RDS 资源，则 API 会使删除请求失败。

**删除 BYOM 引擎版本（CLI）**

```
aws rds delete-custom-db-engine-version \
    --engine sqlserver-ee \
    --engine-version 16.00.4175.1.v1
```

**响应**

```
{
    "Engine": "sqlserver-ee",
    "MajorEngineVersion": "16.00",
    "EngineVersion": "16.00.4175.1.v1",
    .....
    "Status": "deleting",
    ....
}
```

## 注意事项
<a name="sqlserver-byom-creating-cev.considerations"></a>
+ 您为每个主要版本和修订版提供一次 RTM ISO 文件。同一主要版本和修订版中的所有次要版本都将重复使用相同的安装媒体。
+ 在为自带媒体提供 SQL Server RTM 时，您只能使用基于内核的 RTM ISO，而不是基于 Server \+ CAL 的 RTM ISO 文件。

## 后续步骤
<a name="sqlserver-byom-creating-cev.next-steps"></a>

在您的 BYOM 引擎版本进入 `available` 状态后，您可以使用它启动 RDS for SQL Server 实例。请参阅[创建 RDS for SQL Server 的 BYOM 数据库实例](sqlserver-byom-creating-instance.md)。