如何为运行 SQL Server 的 Amazon RDS 数据库实例执行本机备份?

2 分钟阅读
0

我想为运行 SQL Server 的 Amazon Relational Database Service(Amazon RDS)数据库实例中的用户数据库执行本机备份。我需要将备份文件存储在 Amazon Simple Storage Service(Amazon S3)中,或者使用数据库备份文件还原到相同或不同的 Amazon RDS for SQL Server 数据库实例。

简短描述

Amazon RDS 支持 Microsoft SQL Server 数据库的本机备份和还原。您可以创建本地数据库的完整备份并将文件存储在 Amazon S3 中。然后,您可以将备份文件还原到运行 SQL Server 的现有 Amazon RDS 数据库实例。您还可以将此备份文件还原到本地服务器或运行 SQL Server 的其他 Amazon RDS 数据库实例。

解决方法

要设置 SQL Server 数据库的本机备份,需要以下组件:

  1. 打开 Amazon RDS 控制台,然后在导航窗格中选择选项组。选择创建组,然后输入服务器的名称、描述、引擎和引擎版本。然后,选择创建
  2. 选择您创建的选项组,然后选择添加选项。选择 SQLSERVER_BACKUP_RESTORE。最佳做法是,创建一个新的 IAM 角色,然后选择添加选项,从而使您的 IAM 角色具有所需权限。选择您的 Amazon S3 存储桶或创建新的 Amazon S3 存储桶。然后,选择立即应用添加选项
  3. 在导航窗格中选择数据库,将选项组与数据库实例关联,然后选择要备份的实例。选择操作,然后选择修改
  4. 数据库选项下,选择您创建的选项组,然后选择立即应用继续。查看信息,然后选择修改数据库实例。此选项组修改没有停机时间,因为不需要重启实例。
  5. 当状态从正在修改更改为可用时,使用 RDS 实例的主用户通过 SQL Server Management Studio 连接到数据库实例。然后,选择新建查询并输入以下任一 SQL 语句以启动所需数据库的备份:

启动未加密数据库的备份

exec msdb.dbo.rds_backup_database
@source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',
@overwrite_S3_backup_file=1;

启动加密数据库的备份

exec msdb.dbo.rds_backup_database
@source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',   
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id',
@overwrite_S3_backup_file=1;

**注意:**根据您的使用场景,将这些示例中列出的 database_name、bucket_name、file_name_and_extension、region、account-idkey-id 替换为您的相应内容。您可以使用在 Amazon S3 存储桶中生成的备份文件将用户数据库还原到新的 RDS 数据库实例。调用 rds_backup_databaserds_restore_database 存储过程时,任务启动并输出有关该任务的信息。

当任务的生命周期状态为 SUCCESS 时,说明任务已完成。然后,您可以打开 Amazon S3 控制台,选择您在其中创建用户数据库备份的存储桶并查看备份文件。您可以下载此文件,也可以使用用户数据库备份文件还原到相同的 Amazon RDS for SQL Server 数据库实例或新的 RDS 数据库实例。

使用以下 SQL 语句之一从 Amazon S3 存储桶中可用的备份文件中恢复

还原未加密的数据库

exec msdb.dbo.rds_restore_database
@restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension';

还原加密的数据库

exec msdb.dbo.rds_restore_database
@restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3::: bucket_name/file_name_and_extension',
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id';

执行备份或还原语句后,即可获得任务 ID。或者,您可以使用以下脚本来识别特定数据库的所有已完成任务和待处理的任务:

exec msdb.dbo.rds_task_status @db_name='database_name'

要跟踪作业的状态,请使用以下 SQL 语句:

exec msdb..rds_task_status @task_id= 5

有关潜在错误和解决方案的列表,请参阅 Migrating Microsoft SQL Server Enterprise workloads to Amazon RDS


相关信息

处理备份

备份和还原 Amazon RDS 数据库实例

使用本机备份和还原导入和导出 SQL Server 数据库

AWS 官方
AWS 官方已更新 2 年前