背景
亚马逊 AWS RDS SQLServer 数据库无法通过直接修改的方式减小磁盘存储大小,需要使用备份还原新数据库的方式完成。

目标
对旧数据库 DB_1 进行备份,对新数据库 DB_2 进行还原。

1. 创建 IAM 角色

进入 IAM -> 角色 -> 创建角色:

选择受信任实体的类型:
亚马逊云科技产品

选择案例:
RDS
RDS - Add Role to Database

权限:
AWSBackupServiceRolePolicyForRestores
AWSBackupServiceRolePolicyForBackup
AmazonS3FullAccess

角色名称:
如:rds-temp

2. 创建 S3 Bucket

创建一个新的 Bucket,如:rds-bak

3. 备份 DB_1

这一步最好切断外部与 DB_1 的所有连接,保证数据的完整性。

修改 DB_1 的选项组
进入 RDS -> DB_1 -> 修改:
旧数据库 DB_1 的选项组改为 rds-temp

连接 DB_1 执行备份任务:

exec msdb.dbo.rds_backup_database
  @source_db_name='DB_1',
  @s3_arn_to_backup_to='arn:aws:s3:::rds-bak/DB_1.bak';

4. 还原 DB_2

修改 DB_1 的选项组
进入 RDS -> DB_2 -> 修改:
新数据库 DB_2 的选项组改为 rds-temp

连接 DB_2,执行还原任务:

exec msdb.dbo.rds_restore_database 
  @restore_db_name=DB_2', 
  @s3_arn_to_restore_from='arn:aws:s3:::rds-bak/DB_1.bak'

5. 结束

其它命令

-- 查看任务状态
exec msdb.dbo.rds_task_status;

-- 取消任务
exec msdb.dbo.rds_cancel_task @task_id=1234;

参考:
https://docs.aws.amazon.com/z...


秦浩然
3 声望0 粉丝