背景
亚马逊 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;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。