Viqash 向您演示如何
执行 RDS SQL Server 实例的
本机备份

native-backup-rds-sql-server-Viqash

我想执行 Amazon Relational Database Service (Amazon RDS) SQL Server 数据库实例的本机备份,以便在 Amazon Simple Storage Service (Amazon S3) 中存储备份文件,或之后利用备份文件还原 RDS 实例。

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

要设置 SQL Server 数据库的本机备份,请使用以下服务:

  • 用于存储备份文件的 Amazon S3 存储桶
  • 用于访问存储桶的 AWS Identity and Access Management (IAM) 角色
  • 在数据库实例上的选项组中添加的 SQLSERVER_BACKUP_RESTORE 选项

注意:在 RDS 数据库实例所在的区域创建 S3 存储桶。

  1. 打开 Amazon RDS 控制台,然后在导航窗格中选择 Option Groups (选项组)。选择创建组并键入服务器的名称、描述、引擎和引擎版本。然后,选择创建
  2. 选中您创建的选项组,然后选择 Add Option (添加选项)。选择“SQLSERVER_BACKUP_RESTORE”。我们建议您创建新的 IAM 角色并选择 Add Option (添加选项),以使您的 IAM 角色拥有所需特权。选择 S3 存储桶或创建新的 S3 存储桶。然后,选择 Apply Immediately (立即应用) 和 Add Option (添加选项)。
  3. 在导航窗格中选择 Instances (实例),以将选项组与 RDS 实例相关联,然后选择要备份的实例。对于实例操作,请选择修改
  4. 在“Database Options”(数据库选项) 下,选择您创建的 Option Group (选项组),然后选择 Apply Immediately (立即应用) 和 Continue (继续)。查看信息,然后选择 Modify DB Instance (修改数据库实例)。由于不必重启实例,因此该选项组修改无需停机
  5. 在状态从正在修改变为可用后,请通过 SQL Server Management Studio 连接到 RDS 实例,然后选择 New Query (新建查询)。请输入以下 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_namebucket_namefile_name_and_extensionregionaccount-idkey-id。在 S3 存储桶中生成的备份文件可在稍后用于还原到新的 RDS 数据库实例。调用 rds_backup_database/rds_restore_database 存储过程时,系统会启动任务并输出任务信息。

当任务生命周期结束时,任务即告完成。然后,您可以打开 Amazon S3 控制台,选择在其中创建备份的存储桶并查看备份文件。您可以下载该文件,或将其用于还原新的 RDS 实例。

使用以下任一 SQL 语句可从 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


此页面对您有帮助吗? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS 支持中心

发布时间:2017 年 5 月 17 日

更新时间:2018 年 4 月 11 日