【发布时间】:2017-05-19 19:49:19
【问题描述】:
我能够使用以下命令从 AWS 上的 SQL Server 实例成功获取数据库备份到 S3 存储桶:
-- Backup databases - MyDB
exec msdb.dbo.rds_backup_database
@source_db_name='MyDB',
@s3_arn_to_backup_to='arn:aws:s3:::mybucket/MyDB.bak',
@overwrite_S3_backup_file=1;
使用以下命令将同一备份还原到同一区域内的不同 SQL Server 实例时,它不起作用:
-- restore databases - MyDB
EXEC msdb.dbo.rds_restore_database
@restore_db_name='MyDB',
@s3_arn_to_restore_from='arn:aws:s3:::mybucket/MyDB.bak';
使用exec msdb.dbo.rds_task_status @db_name='MyDB'检查任务状态时出现以下错误
[2017-05-19 19:22:22.127] Aborted the task because of a task failure or a concurrent RESTORE_DB request.
[2017-05-19 19:22:22.150] Error making the request with Error Code Forbidden and Http Status Code Forbidden. No further error information was returned by the service.
到目前为止,我已经在多个数据库实例上完成了此备份和还原,从未见过这种错误。 S3 存储桶和需要恢复 .bak 文件的 SQL Server 实例位于同一区域,分配的选项组角色也具有在 S3 存储桶上设置的所有必需权限。以下是选项组角色策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::mybucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObjectMetaData",
"s3:GetObject",
"s3:PutObject",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": [
"arn:aws:s3:::mybucket/*"
]
}
]
}
【问题讨论】:
标签: sql-server amazon-web-services amazon-s3