如何将 SQL Server RDS 备份到 S3 存储桶

管理 SQL Server RDS 实例的备份对于确保数据可用性和灾难恢复至关重要。AWS 提供了工具来简化这个过程,包括命令可直接将 SQL Server RDS 数据库备份到 Amazon S3。本文将指导您完成执行备份和恢复所需的命令和配置。

将 SQL Server RDS 备份到 S3

用于创建备份的主要存储过程是 msdb.dbo.rds_backup_database。此命令允许您指定要备份的数据库以及备份将存储在的 S3 位置

包参数

该存储过程支持几个参数,这些参数分为 必需可选

必需参数

  • @source_db_name:要备份的数据库名称。
  • @s3_arn_to_backup_to:指示用于备份的 Amazon S3 存储桶的 ARN,包括备份文件名。
    • 文件可以使用任何扩展名,但通常使用 .bak

可选参数

  • @kms_master_key_arn

    • 用于加密备份的对称加密KMS密钥的ARN。
    • 您不能使用默认的加密密钥。使用默认密钥将导致备份失败。
    • 如果您不指定KMS密钥,备份文件将不会被加密。
    • 仅支持对称KMS密钥。
  • @overwrite_s3_backup_file

    • 确定是否覆盖现有文件。
    • 0(默认):不覆盖现有文件。如果文件已存在,则返回错误。
    • 1:覆盖现有文件,即使它不是备份文件。
  • @type

    • 指定备份类型。
    • FULL(默认):执行完全备份。
    • DIFFERENTIAL:基于最后一次完全备份创建差异备份。
    • 重要提示:为了使差异备份正常工作,在最后一次完全备份和差异备份之间不应存在快照。如果存在快照,请在差异备份之前执行另一次完全备份。以下是一个检查最后一次完全备份的示例查询:

      MS SQL

       

  • @number_of_files

    • 指定备份将被分成的文件(块)数量。最大值:10。
    • 如果设置为1或省略,则创建单个备份文件。
    • 多文件备份必须在文件名中使用一个*,在生成过程中将被字母数字字符串替换。例如:
      • 输入:backup*.bak@number_of_files = 4
      • 输出:backup1-of-4.bakbackup2-of-4.bakbackup3-of-4.bakbackup4-of-4.bak
  • @block_size

    • 指定备份操作的物理块大小(以字节为单位)。
    • 有效值:5121024204840968192163843276865536
  • @max_transfer_size

    • 表示每个I/O操作传输的最大数据量(以字节为单位)。
    • 有效值:以65536字节的倍数为单位,最大可达4194304字节(4 MB)。
  • @buffer_count

    • 备份过程中使用的I/O缓冲区总数。

命令语法

MS SQL

示例:将完整备份保存到S3

MS SQL

配置备份压缩

为节省空间并减少传输时间,您可以使用rdsadmin命令为SQL Server RDS备份启用压缩。

启用压缩

MS SQL

 

禁用压缩

MS SQL

注意: SQL Express不支持备份压缩;在这种情况下启用压缩将导致备份失败。

执行本地 SQL Server 备份

Amazon RDS也支持本地 SQL Server 备份功能。以下是备份和恢复操作的命令。

备份命令

完全备份命令

MS SQL

差异备份命令

MS SQL

 

恢复命令

差异恢复命令

MS SQL

差异恢复命令

MS SQL

 

监控和管理备份任务

检查任务状态:

MS SQL

取消备份任务:

MS SQL

注意事项

  • 确保命令中使用的 S3 存储桶具有允许 RDS 实例访问的必要权限。
  • 对于敏感数据,您可以使用 AWS KMS 主密钥在将备份存储到 S3 之前进行加密,方法是指定 @kms_master_key_arn

其他资源

有关更详细的示例和信息,请参阅官方 AWS SQL Server 备份文档

本指南为使用 Amazon S3 管理 SQL Server RDS 备份提供了坚实的基础。有关更高级的配置,请查阅 AWS 文档或尝试提供的参数,以根据您的环境微调备份过程。

Source:
https://dzone.com/articles/how-to-backup-sql-server-rds-to-an-s3-bucket