

# SQL Server 中对本机备份和还原的支持
<a name="Appendix.SQLServer.Options.BackupRestore"></a>

通过在 SQL Server 数据库中使用本机备份和还原，您可以创建本地数据库的差异备份或完整备份，并将备份文件存储在 Amazon S3 上。然后您可以将其恢复到运行 SQL Server 的现有 Amazon RDS 数据库实例。您也可以备份 RDS for SQL Server 数据库，将其存储在 Amazon S3 中，然后在其他位置恢复它。此外，您还可以将备份还原到本地服务器或运行 SQL Server 的不同 Amazon RDS 数据库实例。有关更多信息，请参阅“[使用本机备份和还原导入和导出 SQL Server 数据库](SQLServer.Procedural.Importing.md)”。

Amazon RDS 支持使用差异备份或完整备份文件（.bak 文件）对 Microsoft SQL Server 数据库进行本机备份和还原。

## 添加本机备份和还原选项
<a name="Appendix.SQLServer.Options.BackupRestore.Add"></a>

将本机备份和还原选项添加到数据库实例的一般过程如下所示：

1. 创建新的选项组，或者复制或修改现有选项组。

1. 将 `SQLSERVER_BACKUP_RESTORE` 选项添加到该选项组。

1. 将一个 AWS Identity and Access Management (IAM) 角色与该选项相关联。该 IAM 角色必须有权访问 S3 存储桶以存储数据库备份。

   也就是说，该选项必须将使用 `arn:aws:iam::account-id:role/role-name` 格式的有效 Amazon Resource Name (ARN) 作为其选项设置。有关更多信息，请参阅《AWS 一般参考》**中的 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam)。

   IAM 角色还必须有信任关系和附加的权限策略。信任关系允许 RDS 代入角色，权限策略定义了角色可以执行的操作。有关更多信息，请参阅“[为本机备份和还原手动创建 IAM 角色](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM)”。

1. 将选项组与数据库实例相关联。

在添加本机备份和还原选项后，您无需重新启动数据库实例。一旦激活此选项组，您就可以立即开始备份和还原。

### 控制台
<a name="Add.Native.Backup.Restore.Console"></a>

**添加本机备份和还原选项**

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

1. 在导航窗格中，选择**选项组**。

1. 创建新的选项组或使用现有的选项组。有关如何创建自定义数据库选项组的信息，请参阅[创建选项组](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)。

   要使用现有的选项组，请跳到下一步。

1. 将 **SQLSERVER\$1BACKUP\$1RESTORE** 选项添加到选项组中。有关添加选项的更多信息，请参阅 [将选项添加到选项组](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)。

1. 请执行下列操作之一：
   + 要使用现有的 IAM 角色和 Amazon S3 设置，请为 **IAM 角色**选择一个现有的 IAM 角色。如果使用现有的 IAM 角色，则 RDS 使用为该角色配置的 Amazon S3 设置。
   + 要创建新的角色并配置 Amazon S3 设置，请执行以下操作：

     1. 对于 **IAM Role (IAM 角色)**，选择 **Create a new role (创建新角色)**。

     1. 对于 **S3 bucket**（S3 存储桶），请从列表中选择一个 S3 存储桶。

     1. 对于 **S3 prefix (optional)**（S3 前缀（可选）），请指定要用于 Amazon S3 存储桶中存储的文件的前缀。

        该前缀可以包含文件路径，但不是必需的。如果提供一个前缀，则 RDS 将该前缀附加到所有备份文件。然后，RDS 在还原期间使用该前缀识别相关的文件，并忽略不相关的文件。例如，除了保存备份文件以外，您还可以将 S3 存储桶用于其他用途。在这种情况下，您可以使用前缀让 RDS 仅在特定文件夹及其子文件夹上执行本机备份和还原。

        如果将前缀保留空白，则 RDS 不会使用前缀标识备份文件或要还原的文件。因此，在多文件还原期间，RDS 尝试还原 S3 存储桶的每个文件夹中的每个文件。

     1. 选择 **Enable encryption**（启用加密）复选框以加密备份文件。保持清除该复选框（原定设置）以使备份文件保持不加密状态。

        如果你选择了 **Enable encryption**（启用加密），请为 **AWS KMS key** 选择一个加密密钥。有关加密密钥的更多信息，请参阅 *AWS Key Management Service 开发人员指南*中的[入门](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html)。

1. 选择**添加选项**。

1. 将选项组应用到新的或现有的数据库实例：
   + 对于新数据库实例，请在启动实例时应用选项组。有关更多信息，请参阅“[创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)”。
   + 对于现有数据库实例，请修改实例并附加新的选项组以应用选项组。有关更多信息，请参阅 [修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)。

### CLI
<a name="Add.Native.Backup.Restore.CLI"></a>

此过程作出以下假设：
+ 您正在将 SQLSERVER\$1BACKUP\$1RESTORE 选项添加到已存在的选项组。有关添加选项的更多信息，请参阅 [将选项添加到选项组](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)。
+ 您正在将选项与已存在且有权访问 S3 存储桶以存储备份的 IAM 角色关联。
+ 您正在将选项组应用于已存在的数据库实例。有关更多信息，请参阅“[修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)”。

**添加本机备份和还原选项**

1. 将 `SQLSERVER_BACKUP_RESTORE` 选项添加到该选项组。  
**Example**  

   对于 Linux、macOS 或 Unix：

   ```
   aws rds add-option-to-option-group \
   	--apply-immediately \
   	--option-group-name mybackupgroup \
   	--options "OptionName=SQLSERVER_BACKUP_RESTORE, \
   	  OptionSettings=[{Name=IAM_ROLE_ARN,Value=arn:aws:iam::account-id:role/role-name}]"
   ```

   对于 Windows：

   ```
   aws rds add-option-to-option-group ^
   	--option-group-name mybackupgroup ^
   	--options "[{\"OptionName\": \"SQLSERVER_BACKUP_RESTORE\", ^
   	\"OptionSettings\": [{\"Name\": \"IAM_ROLE_ARN\", ^
   	\"Value\": \"arn:aws:iam::account-id:role/role-name"}]}]" ^
   	--apply-immediately
   ```
**注意**  
使用 Windows 命令提示符时，必须在 JSON 代码中转义双引号 (")，方法是使用反斜杠 (\$1) 作为其前缀。

1. 将选项组应用于数据库实例。  
**Example**  

   对于 Linux、macOS 或 Unix：

   ```
   aws rds modify-db-instance \
   	--db-instance-identifier mydbinstance \
   	--option-group-name mybackupgroup \
   	--apply-immediately
   ```

   对于 Windows：

   ```
   aws rds modify-db-instance ^
   	--db-instance-identifier mydbinstance ^
   	--option-group-name mybackupgroup ^
   	--apply-immediately
   ```

## 修改本机备份和还原选项设置
<a name="Appendix.SQLServer.Options.BackupRestore.ModifySettings"></a>

在启用本机备份和还原选项后，您可以修改该选项的设置。有关如何修改选项设置的更多信息，请参阅 [修改选项设置](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption)。

## 删除本机备份和还原选项
<a name="Appendix.SQLServer.Options.BackupRestore.Remove"></a>

您可以从数据库实例中删除该选项以禁用本机备份和还原。在删除本机备份和还原选项后，您无需重新启动数据库实例。

要从数据库实例中删除本机备份和还原选项，请执行以下操作之一：
+ 从 选项所属的选项组中删除该选项。此更改会影响使用该选项组的所有数据库实例。有关更多信息，请参阅“[从选项组中删除选项](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)”。
+ 修改数据库实例，并指定不包含本机备份和还原选项的不同选项组。此更改会影响单个数据库实例。您可以指定默认 (空) 选项组，或指定其他自定义选项组。有关更多信息，请参阅“[修改 Amazon RDS 数据库实例](Overview.DBInstance.Modifying.md)”。