

# 管理 Amazon RDS Custom for SQL Server 数据库实例
<a name="custom-managing-sqlserver"></a>

Amazon RDS Custom for SQL Server 支持 Amazon RDS 数据库实例的常见管理任务子集。在下文中，您可以找到使用 AWS 管理控制台和 AWS CLI 的受支持的 RDS Custom for SQL Server 管理任务的说明。

**Topics**
+ [暂停和恢复 RDS Custom 自动化](custom-managing-sqlserver.pausing.md)
+ [修改 RDS Custom for SQL Server 数据库实例](custom-managing.modify-sqlserver.md)
+ [修改 RDS Custom for SQL Server 数据库实例的存储](custom-managing-sqlserver.storage-modify.md)
+ [为 RDS Custom for SQL Server 资源添加标签](custom-managing-sqlserver.tagging.md)
+ [删除 RDS Custom for SQL Server 数据库实例](#custom-managing-sqlserver.deleting)
+ [启动和停止 RDS Custom for SQL Server 数据库实例](custom-managing-sqlserver.startstop.md)

# 暂停和恢复 RDS Custom 自动化
<a name="custom-managing-sqlserver.pausing"></a>

RDS Custom 自动为 RDS Custom for SQL Server 数据库实例提供监控和实例恢复功能。如果您需要自定义实例，请执行以下操作：

1. 在指定的时间内暂停 RDS Custom 自动化。暂停可确保您的自定义项不会干扰 RDS Custom 自动化。

1. 根据需要自定义 RDS Custom for SQL Server 数据库实例。

1. 请执行以下任一操作：
   + 手动恢复自动化。
   + 等待暂停期结束。在这种情况下，RDS Custom 会自动恢复监控和实例恢复。

**重要**  
修改 RDS Custom for SQL Server 数据库实例时，暂停和恢复自动化是唯一受支持的自动化任务。

## 控制台
<a name="custom-managing.pausing.console"></a>

**要暂停或恢复 RDS Custom 自动化**

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

1. 在导航窗格中，请选择 **Databases**（数据库），然后选择要修改的 RDS Custom 数据库实例。

1. 选择**修改**。将显示**修改数据库实例**页面。

1. 对于 **RDS Custom automation mode**（RDS Custom 自动化模式），请选择以下选项之一：
   + **Paused**（已暂停）将暂停 RDS Custom 数据库实例的监控和实例恢复。为 **Automation mode duration**（自动化模式持续时间）输入您想要的暂停持续时间。最小值为 60 分钟（默认值）。最大值为 1440 分钟。
   + **Full automation**（完全自动化）将恢复自动化。

1. 请选择 **Continue**（继续），以查看修改摘要。

   将显示一条消息，表示 RDS Custom 将立即应用更改。

1. 如果更改正确无误，请选择 **Modify DB Instance**（修改数据库实例）。也可以选择 **Back (返回)** 编辑您的更改，或选择 **Cancel (取消)** 取消更改。

   在 RDS 控制台上，将显示修改的详细信息。如果您暂停了自动化，RDS Custom 数据库实例的 **Status**（状态）将指示 **Automation paused**（自动化已暂停）。

1. （可选）在导航窗格中，选择 **Databases (数据库)**，然后选择 RDS Custom 数据库实例。

   在 **Summary**（摘要）窗格中，**RDS Custom automation mode**（RDS Custom 自动化模式）表示自动化状态。如果自动化已暂停，则值为 **Paused（已暂停）。自动化将在 *num* 分钟内恢复**。

## AWS CLI
<a name="custom-managing-sqlserver.pausing.CLI"></a>

要暂停或恢复 RDS Custom 自动化，请使用 `modify-db-instance` AWS CLI 命令。使用必需的参数 `--db-instance-identifier` 识别数据库实例。使用以下参数控制自动化模式：
+ `--automation-mode` 指定数据库实例的暂停状态。有效值为 `all-paused`，它将暂停自动化，以及 `full`，它将恢复自动化。
+ `--resume-full-automation-mode-minutes` 指定暂停的持续时间。默认值为 60 分钟。

**注意**  
无论您是指定 `--no-apply-immediately` 还是 `--apply-immediately`，RDS Custom 都会尽快地异步应用修改。

在命令响应中，`ResumeFullAutomationModeTime` 以 UTC 时间戳表示恢复时间。当自动化模式为 `all-paused` 时，您可以使用 `modify-db-instance` 恢复自动化模式或延长暂停时间。不支持其他 `modify-db-instance` 选项。

以下示例将 `my-custom-instance` 的自动化暂停 90 分钟。

**Example**  
对于 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 90
```
对于 Windows：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 90
```

以下示例将暂停持续时间再延长 30 分钟。在 `ResumeFullAutomationModeTime` 中显示的原始时间中增加 30 分钟。

**Example**  
对于 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 30
```
对于 Windows：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 30
```

以下示例恢复 `my-custom-instance` 的完全自动化。

**Example**  
对于 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode full \
```
对于 Windows：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode full
```
在以下部分示例输出中，待处理 `AutomationMode` 值为 `full`。  

```
{
    "DBInstance": {
        "PubliclyAccessible": true,
        "MasterUsername": "admin",
        "MonitoringInterval": 0,
        "LicenseModel": "bring-your-own-license",
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "0123456789abcdefg"
            }
        ],
        "InstanceCreateTime": "2020-11-07T19:50:06.193Z",
        "CopyTagsToSnapshot": false,
        "OptionGroupMemberships": [
            {
                "Status": "in-sync",
                "OptionGroupName": "default:custom-oracle-ee-19"
            }
        ],
        "PendingModifiedValues": {
            "AutomationMode": "full"
        },
        "Engine": "custom-oracle-ee",
        "MultiAZ": false,
        "DBSecurityGroups": [],
        "DBParameterGroups": [
            {
                "DBParameterGroupName": "default.custom-oracle-ee-19",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        ...
        "ReadReplicaDBInstanceIdentifiers": [],
        "AllocatedStorage": 250,
        "DBInstanceArn": "arn:aws:rds:us-west-2:012345678912:db:my-custom-instance",
        "BackupRetentionPeriod": 3,
        "DBName": "ORCL",
        "PreferredMaintenanceWindow": "fri:10:56-fri:11:26",
        "Endpoint": {
            "HostedZoneId": "ABCDEFGHIJKLMNO",
            "Port": 8200,
            "Address": "my-custom-instance.abcdefghijk.us-west-2.rds.amazonaws.com"
        },
        "DBInstanceStatus": "automation-paused",
        "IAMDatabaseAuthenticationEnabled": false,
        "AutomationMode": "all-paused",
        "EngineVersion": "19.my_cev1",
        "DeletionProtection": false,
        "AvailabilityZone": "us-west-2a",
        "DomainMemberships": [],
        "StorageType": "gp2",
        "DbiResourceId": "db-ABCDEFGHIJKLMNOPQRSTUVW",
        "ResumeFullAutomationModeTime": "2020-11-07T20:56:50.565Z",
        "KmsKeyId": "arn:aws:kms:us-west-2:012345678912:key/aa111a11-111a-11a1-1a11-1111a11a1a1a",
        "StorageEncrypted": false,
        "AssociatedRoles": [],
        "DBInstanceClass": "db.m5.xlarge",
        "DbInstancePort": 0,
        "DBInstanceIdentifier": "my-custom-instance",
        "TagList": []
    }
```

# 修改 RDS Custom for SQL Server 数据库实例
<a name="custom-managing.modify-sqlserver"></a>

修改 RDS Custom for SQL Server 数据库实例的过程与为 Amazon RDS 执行此操作类似，但您可以进行的更改仅限于以下内容：
+ 更改数据库实例类
+ 更改备份保留期和备份时段
+ 更改维护时段
+ 当新版本可用时升级数据库引擎版本
+ 更改分配的存储、预调配 IOPS 和存储类型
+ 允许和删除多可用区部署

以下限制适用于修改 RDS Custom for SQL Server 数据库实例：
+ 不支持自定义数据库选项和参数组。
+ 手动附加到 RDS Custom 数据库实例的任何存储卷都在支持外围之外。

  有关更多信息，请参阅 [RDS Custom 支持外围](custom-concept.md#custom-troubleshooting.support-perimeter)。

## 控制台
<a name="custom-managing.modify-sqlserver.CON"></a>

**要修改 RDS Custom for SQL Server 数据库实例**

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

1. 在导航窗格中，选择 **Databases (数据库)**。

1. 选择要修改的数据库实例。

1. 选择**修改**。

1. 根据需要进行以下更改：

   1. 对于**数据库引擎版本**，选择新版本。

   1. 更改 **DB instance class**（数据库实例类）的值。有关支持的类，请参阅[RDS Custom for SQL Server 的数据库实例类支持](custom-reqs-limits.instancesMS.md)

   1. 更改 **Backup retention period**（备份保留期）的值。

   1. 对于 **Backup window**（备份时段），设置 **Start time**（开始时间）和 **Duration**（持续时间）的值。

   1. 对于 **DB instance maintenance window**（数据库实例维护时段），设置 **Start day**（开始日）、**Start time**（开始时间）和 **Duration**（持续时间）的值。

1. 选择**继续**。

1. 选择 **Apply immediately**（立即应用）或 **Apply during the next scheduled maintenance window**（在下一个计划的维护时段内应用）。

1. 选择**修改数据库实例**。

## AWS CLI
<a name="custom-managing.modify-sqlserver.CLI"></a>

要修改 RDS Custom for SQL Server 数据库实例，请使用 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 命令。根据需要设置以下参数：
+ `--db-instance-class` – 有关支持的类，请参阅[RDS Custom for SQL Server 的数据库实例类支持](custom-reqs-limits.instancesMS.md)
+ `--engine-version` – 要升级到的数据库引擎的版本号。
+ `--backup-retention-period` – 保留自动备份的持续时间，为 0-35 天。
+ `--preferred-backup-window` – 创建自动备份的每日时间范围。
+ `--preferred-maintenance-window` – 可能进行系统维护的每周时间范围（按世界协调时间计算）。
+ `--apply-immediately` – 使用 `--apply-immediately` 可立即应用存储更改。

  或使用 `--no-apply-immediately`（默认设置）以在下一个维护时段内应用更改。

# 修改 RDS Custom for SQL Server 数据库实例的存储
<a name="custom-managing-sqlserver.storage-modify"></a>

修改 RDS Custom for SQL Server 数据库实例的存储与修改 Amazon RDS 数据库实例的存储类似，但您只能执行以下操作：
+ 增加分配的存储大小。
+ 更改存储类型。您可以使用可用的存储类型，如通用型或预调配 IOPS。gp3、io1 和 io2 Block Express 存储类型支持预调配 IOPS。
+ 如果您使用的是支持预调配 IOPS 的卷类型，则更改预调配 IOPS。

以下限制适用于修改 RDS Custom for SQL Server 数据库实例的存储：
+ RDS Custom for SQL Server 的最小分配存储大小为 20 GiB。io1、gp2 和 gp3 的最大存储限制为 16 TiB，而 io2 支持 64 TiB。
+ 与 Amazon RDS 一样，您无法减少分配的存储。这是 Amazon Elastic Block Store (Amazon EBS) 卷的限制。有关更多信息，请参阅 [使用 Amazon RDS 数据库实例的存储](USER_PIOPS.StorageTypes.md)。
+ RDS Custom for SQL Server 数据库实例不支持存储自动扩缩。
+ 您手动连接到 RDS Custom 数据库实例的任何存储卷都不会考虑进行存储扩缩。仅考虑对 RDS 提供的默认数据卷（即 D 驱动器）进行存储扩缩。

  有关更多信息，请参阅 [RDS Custom 支持外围](custom-concept.md#custom-troubleshooting.support-perimeter)。
+ 扩展存储通常不会导致数据库实例的任何中断或性能下降。在修改数据库实例的存储大小后，数据库实例的状态为 **storage-optimization**。
+ 存储优化可能耗时数小时。六（6）小时后或在实例上完成存储优化后，您才能进行进一步的存储修改。有关更多信息，请参阅 [使用 Amazon RDS 数据库实例的存储](USER_PIOPS.StorageTypes.md)。

有关存储的更多信息，请参阅 [Amazon RDS 数据库实例存储](CHAP_Storage.md)。

有关存储修改的一般信息，请参阅[使用 Amazon RDS 数据库实例的存储](USER_PIOPS.StorageTypes.md)。

**重要**  
请勿使用 Amazon EC2 控制台、Amazon EBS 控制台或 API 修改 RDS Custom for SQL Server 数据库实例的存储。在 Amazon RDS 控制台或 API 之外直接修改存储会使数据库处于 `unsupported-configuration` 状态。  
当您使用 Amazon EC2 或 Amazon EBS 直接更改存储时，Amazon RDS 无法跟踪或管理数据库实例状态。这可能会导致：  
高可用性失效转移机制无法正常运行
数据库复制设置中断
冗余功能失败
只通过 Amazon RDS 控制台或 API 修改存储，以使数据库保持在受支持的状态。有关恢复步骤，请参阅[修复 RDS Custom for SQL Server 中不支持的配置](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported)。

## 控制台
<a name="custom-managing.storage-modify.CON"></a>

**修改 RDS Custom for SQL Server 数据库实例的存储**

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

1. 在导航窗格中，选择 **Databases (数据库)**。

1. 选择要修改的数据库实例。

1. 选择**修改**。

1. 根据需要进行以下更改：

   1. 为 **Allocated Storage (分配的存储)** 输入新值。它必须大于当前值，且范围从 20GiB 到 16TiB。

   1. 更改 **Storage type**（存储类型）的值。您可以从可用的通用型或预调配 IOPS 存储类型中进行选择。gp3、io1 和 io2 Block Express 存储类型支持预调配 IOPS。

   1. 如果您指定支持预调配 IOPS 的卷类型，则可以定义**预调配 IOPS** 值。

1. 选择**继续**。

1. 选择 **Apply immediately**（立即应用）或 **Apply during the next scheduled maintenance window**（在下一个计划的维护时段内应用）。

1. 选择**修改数据库实例**。

## AWS CLI
<a name="custom-managing-sqlserver.storage-modify.CLI"></a>

要修改 RDS Custom for SQL Server 数据库实例的存储，请使用 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 命令。根据需要设置以下参数：
+ `--allocated-storage` – 要为数据库实例分配的存储量（以 GiB 为单位）。它必须大于当前值，并且范围从 20 到 16,384GiB。
+ `--storage-type` – 存储类型，例如 gp2、gp3、io1 或 io2。
+ `--iops` – 数据库实例的预调配 IOPS。您只能为支持预调配 IOPS 的存储类型（gp3、io1 和 io2）指定此项。
+ `--apply-immediately` – 使用 `--apply-immediately` 可立即应用存储更改。

  或使用 `--no-apply-immediately`（默认设置）以在下一个维护时段内应用更改。

以下示例将 my-custom-instance 的存储大小更改为 200GiB，将存储类型更改为 io1，将预调配 IOPS 更改为 3000。

**Example**  
对于 Linux、macOS 或 Unix：  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --storage-type io1 \
    --iops 3000 \
    --allocated-storage 200 \
    --apply-immediately
```
对于 Windows：  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --storage-type io1 ^
    --iops 3000 ^
    --allocated-storage 200 ^
    --apply-immediately
```

# 为 RDS Custom for SQL Server 资源添加标签
<a name="custom-managing-sqlserver.tagging"></a>

您可以将 RDS Custom 资源与 Amazon RDS 资源一样标记，但有一些重要的区别：
+ 不要创建或修改 RDS Custom 自动化所需的 `AWSRDSCustom` 标签。如果您这样做，可能会破坏自动化。
+ `Name` 标签将添加到 RDS Custom 资源，前缀为 `do-not-delete-rds-custom`。任何客户传递的键值都将被覆盖。
+ 在创建过程中添加到 RDS Custom 数据库实例的标签将传播到所有其他相关 RDS Custom 资源。
+ 当您在创建数据库实例后将标签添加到 RDS Custom 资源时，标签不会传播。

有关资源标记的一般信息，请参阅[为 Amazon RDS 资源添加标签](USER_Tagging.md)。

## 删除 RDS Custom for SQL Server 数据库实例
<a name="custom-managing-sqlserver.deleting"></a>

要删除 RDS Custom for SQL Server 数据库实例，请执行以下操作：
+ 提供数据库实例的名称。
+ 选择或清除拍摄数据库实例的最终数据库快照的选项。
+ 选择或清除保留自动备份的选项。

您可以使用控制台或 CLI 删除 RDS Custom for SQL Server 数据库实例。删除数据库实例所需的时间可能会有所不同，具体取决于备份保留期（也即，要删除的备份数）、删除的数据量以及是否拍摄最终快照。

**警告**  
删除 RDS Custom for SQL Server 数据库实例将永久删除 EC2 实例和关联的 Amazon EBS 卷。任何时候都不要终止或删除这些资源，否则，删除和最终快照创建可能会失败。

**注意**  
如果数据库实例具有 `creating`、`failed`、`incompatible-create`、`incompatible-restore` 或 `incompatible-network` 状态，则无法为其创建最终数据库快照。有关更多信息，请参阅 [查看 Amazon RDS数据库实例状态](accessing-monitoring.md#Overview.DBInstance.Status)。

**重要**  
当您选择拍摄最终快照时，我们建议您当正在删除数据库实例时避免向数据库实例写入数据。启动数据库实例删除后，不能保证数据更改会被最终快照捕获。

### 控制台
<a name="custom-managing-sqs.deleting.console"></a>

**要删除 RDS Custom 数据库实例**

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

1. 在导航窗格中，选择 **Databases**（数据库），然后选择要删除的 RDS Custom for SQL Server 数据库实例。RDS Custom for SQL Server 数据库实例显示角色 **Instance (RDS Custom for SQL Server)** [实例（RDS Custom for SQL Server）]。

1. 对于**操作**，选择**删除**。

1. 要拍摄最终快照，请选择 **Create final snapshot**（创建最终快照），并为 **Final snapshot name**（最终快照名称）提供名称。

1. 要保留自动备份，请选择 **Retain automated backups (保留自动备份)**。

1. 在框中输入 **delete me**。

1. 选择**删除**。

### AWS CLI
<a name="custom-managing-sqs.deleting.CLI"></a>

您可以通过使用 [delete-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance.html) AWS CLI 命令删除 RDS Custom for SQL Server 数据库实例。使用必需的参数 `--db-instance-identifier` 识别数据库实例。其余参数与 Amazon RDS 数据库实例的参数相同。

以下示例删除名为 `my-custom-instance` 的 RDS Custom for SQL Server 数据库实例，拍摄最终快照，并保留自动备份。

**Example**  
对于 Linux、macOS 或 Unix：  

```
aws rds delete-db-instance \
    --db-instance-identifier my-custom-instance \
    --no-skip-final-snapshot \
    --final-db-snapshot-identifier my-custom-instance-final-snapshot \
    --no-delete-automated-backups
```
对于 Windows：  

```
aws rds delete-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --no-skip-final-snapshot ^
    --final-db-snapshot-identifier my-custom-instance-final-snapshot ^
    --no-delete-automated-backups
```

要拍摄最终快照，需要且必须指定 `--final-db-snapshot-identifier` 选项。

要跳过最终快照，请在命令中指定 `--skip-final-snapshot` 选项而不是 `--no-skip-final-snapshot` 和 `--final-db-snapshot-identifier` 选项。

要删除自动备份，请在命令中指定 `--delete-automated-backups` 选项而不是 `--no-delete-automated-backups` 选项。

# 启动和停止 RDS Custom for SQL Server 数据库实例
<a name="custom-managing-sqlserver.startstop"></a>

您可以启动和停止 RDS Custom for SQL Server 数据库实例。RDS for SQL Server 数据库实例的一般要求和限制同样适用于停止和启动 RDS Custom for SQL Server 数据库实例。有关更多信息，请参阅 [暂时停止 Amazon RDS 数据库实例](USER_StopInstance.md)。

以下注意事项也适用于启动和停止 RDS Custom for SQL Server 数据库实例：
+ 当数据库实例为 `STOPPED` 时，不支持修改 RDS Custom for SQL Server 数据库实例的 EC2 实例属性。
+ 只有在将 RDS Custom for SQL Server 数据库实例配置为单可用区时，您才能停止和启动该数据库实例。您无法停止多可用区配置中的 RDS Custom for SQL Server 数据库实例。
+ 当您停止 RDS Custom for SQL Server 数据库实例时，将创建 `SYSTEM` 快照。当您再次启动 RDS Custom for SQL Server 数据库实例时，将自动删除此快照。
+ 如果您在 RDS Custom for SQL Server 数据库实例停止时删除 EC2 实例，那么当您再次启动 RDS Custom for SQL Server 数据库实例时，`C:` 驱动器将被替换。
+ 当您停止 RDS custom for SQL Server 数据库实例时，只要您不修改实例类型，`C:\` 驱动器、主机名和您的自定义配置就会持久存在。
+ 以下操作将导致 RDS Custom 将数据库实例放置在支持外围之外，并且您仍将收取数据库实例小时数的费用：
  + 在 Amazon RDS 停止时启动底层 EC2 实例。要解决这个问题，您可以调用 `start-db-instance` Amazon RDS API，或者停止 EC2 以便 RDS Custom 实例返回到 `STOPPED`。
  + RDS Custom for SQL Server 数据库实例为 `ACTIVE` 时停止底层 EC2 实例。

有关停止和启动数据库实例的更多详细信息，请参阅[暂时停止 Amazon RDS 数据库实例](USER_StopInstance.md)和[启动之前停止的 Amazon RDS 数据库实例](USER_StartInstance.md)。