

# 升级 RDS for SQL Server 的 BYOM 数据库实例
<a name="sqlserver-byom-upgrade"></a>

您可在 RDS for SQL Server 上，对 BYOM 数据库实例应用次要引擎版本升级。次要版本升级包括 Microsoft 累积更新，其中包含安全补丁、错误修复和性能改进。

与含许可证实例不同，升级 BYOM 实例需要在启动升级之前提供 BYOM 引擎版本。

## 确定有效的升级目标
<a name="sqlserver-byom-upgrade.targets"></a>

在升级之前，请确定哪些引擎版本可用作当前版本的有效升级目标。

使用 `describe-db-engine-versions` 命令列出有效的次要版本升级目标：

**示例：**

```
aws rds describe-db-engine-versions \
    --engine sqlserver-ee \
    --engine-version 15.00.4440.1.v1 \
    --include-all \
    --query "DBEngineVersions[?DBEngineMediaType=='Customer Provided'].ValidUpgradeTarget[] | [?IsMajorVersionUpgrade==\`false\`]"
```

**示例输出。**

```
[
    {
        "Engine": "sqlserver-ee",
        "EngineVersion": "15.00.4455.2.v1",
        "AutoUpgrade": false,
        "IsMajorVersionUpgrade": false
    },
    .....
    {
        "Engine": "sqlserver-ee",
        "EngineVersion": "15.00.4465.1.v1",
        "AutoUpgrade": false,
        "IsMajorVersionUpgrade": false
    }
]
```

## 应用 BYOM 版本升级（AWS CLI）
<a name="sqlserver-byom-upgrade.applying"></a>

在启动版本升级之前，请制作手动快照。Amazon RDS 会创建自动快照，但手动快照会向您提供已知的还原点。

**示例：**

```
aws rds modify-db-instance \
    --db-instance-identifier my-byom-instance \
    --engine-version 15.00.4465.1.v1 \
    --no-apply-immediately
```

**注意**  
使用 `--no-apply-immediately` 时，Amazon RDS 在下一个维护时段内应用更改。使用 `--apply-immediately` 可立即应用更改。有关更多信息，请参阅[使用计划修改设置](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.ApplyImmediately.html)。

## 验证上传
<a name="sqlserver-byom-upgrade.verifying"></a>

升级完成后，验证数据库实例上的新引擎版本。

**示例：**

```
aws rds describe-db-instances \
    --db-instance-identifier my-byom-instance \
    --query "DBInstances[*].[DBInstanceIdentifier,EngineVersion,DBInstanceStatus,LicenseModel]"
```

```
[
    [
        "my-byom-instance",
        "15.00.4465.1.v1",
        "available",
        "bring-your-own-media"
    ]
]
```

请确认以下值：
+ `EngineVersion` 与您的目标版本相匹配。
+ `DBInstanceStatus` 为 `available`。
+ `LicenseModel` 为 `bring-your-own-media`。

## 将含许可证实例转换为自带媒体
<a name="sqlserver-byom-upgrade.converting"></a>

您可以将现有 RDS for SQL Server 实例从含许可证模式转换为 BYOM。这样，您就可以使用自己的 SQL Server 许可证，而不必支付 AWS 包含的许可费。

**注意**  
对于实例的当前引擎版本，您的 BYOM 引擎版本必须处于 `available` 状态。

使用 `modify-db-instance` 命令更改许可模式：

```
aws rds modify-db-instance \
    --db-instance-identifier DB_INSTANCE_IDENTIFIER \
    --license-model bring-your-own-media \
    --no-apply-immediately
```

**注意**  
使用 `--no-apply-immediately` 时，Amazon RDS 在下一个维护时段内应用更改。使用 `--apply-immediately` 可立即应用更改。有关更多信息，请参阅[使用计划修改设置](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.ApplyImmediately.html)。

要核实数据库实例的当前许可模式，请使用 `describe-db-instances` 命令并检查响应中的 `LicenseModel` 字段。如果正在进行修改，请检查 `PendingModifiedValues` 字段中的待处理许可模式。修改完成后，`LicenseModel` 字段反映新值。有关更多信息，请参阅[描述数据库实例](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)。

## 注意事项
<a name="sqlserver-byom-upgrade.considerations"></a>
+ 不支持从 BYOM 转换为含许可证。
+ 如果您的含许可证（LI）实例有只读副本，请在将许可模式转换为 BYOM 之前删除这些副本，然后再重新创建。新副本将自动继承 BYOM 许可模式。
+ 如果您的 LI 数据库实例运行在不支持 BYOM 的实例类（例如 db.m5 或 db.r6i）上，则无法直接转换为 BYOM。首先，将您的实例修改为支持的实例类（第 7 代或更高版本），然后通过单独的修改操作转换许可模式。