AWS RDS SQL Server 备份/下载

RDS 实例必须备份到同区域 S3 桶,再从 S3 下载到本地

步骤 1:创建权限策略

  1. 打开 IAM 控制台 → 策略 → 创建策略 → 切换到 JSON 视图
  2. 粘贴下面 JSON,替换 S3 桶名
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::bucketname"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::bucketname/dbfolder/*"
        }
    ]
}

IAM策略

  1. 下一步,命名后保存,如RDS_S3_Backup_Policy。

步骤 2:创建 IAM 角色

  1. IAM 控制台 → 角色 → 创建角色
  2. 信任实体类型:AWS 服务
  3. 使用案例:选择 RDS → 再选 RDS – Add Role to Database → 下一步
  4. 权限页面:搜索并勾选刚才新建的 RDS_S3_Backup_Policy,下一步
  5. 角色名称:RDS_S3_Backup_Role,填写描述,创建角色

信任策略已自动生成:允许rds.amazonaws.com调用 sts:AssumeRole。
如果你手动建角色,信任策略 JSON 如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

IAMRole1
IAMRole2
IAMRole3

步骤 3:RDS选项组设置

1.进入 RDS 控制台 → 左侧【选项组】→ 编辑/创建选项组

  • 引擎:sqlserver-se/sqlserver-ee 按实例引擎选
  • 主引擎版本:和 RDS 实例版本保持一致
    RDSGroup1
  1. 前一步的选项组 → 添加选项

    • 选项名称:SQLSERVER_BACKUP_RESTORE
    • IAM 角色:选择刚才创建的 RDS_S3_Backup_Role
    • 立即应用 → 添加选项
      RDSGroup2
  2. 修改 RDS 实例,绑定这个选项组

    • RDS → 数据库 → 选中你的 SQL 实例 → 修改
    • 附加配置 → 数据库选项:选择上面新建的选项组
    • 继续,选择立即应用,保存修改
      RDSGroup3

步骤 4:执行备份

# https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.Native.Using.html

# RDS 主账号执行`rds_backup_database`
exec msdb.dbo.rds_backup_database
	@source_db_name='database_name',
	@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name.extension',
	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],	
	[@overwrite_s3_backup_file=0|1],
	[@block_size=512|1024|2048|4096|8192|16384|32768|65536],
        [@max_transfer_size=n],
        [@buffer_count=n],
	[@type='DIFFERENTIAL|FULL'],
	[@number_of_files=n],
	[@enable_bucket_default_encryption=0|1];

# 查看执行状态
EXEC msdb.dbo.rds_task_status;

bak

步骤 5:下载备份

从桶里下载
dl

posted on 2026-10-21 18:16  鱼歌  阅读(3)  评论(0)    收藏  举报

导航