摘要:我们正在 RDS 实例上从 S3 还原 SQL Server 数据库。尽管当我们访问数据库时工作会说恢复已完成,但它仍处于“恢复”模式,我们无法对其进行任何操作。
详细信息:我们已经启动了一个新的 SQL Server RDS 实例,并且我们正在尝试从存储在 S3 中的备份中恢复数据库。这很简单,我们必须在过去一年左右之前这样做。我们从AWS 文档运行命令
EXEC msdb.dbo.rds_restore_database
@restore_db_name = 'OurDB'
, @s3_arn_to_restore_from = 'arn:aws:s3:::bucket/SQLBackUp.bak'
, @with_norecovery = 1
而且我们知道,如果未设置选项组和 IAM 角色,该命令将不起作用,因此我们已确保它们已设置。当我们运行命令时,它需要几分钟,但似乎运行良好。
我们运行命令来检查状态
EXEC msdb.dbo.rds_task_status
@db_name='OurDB'
在接下来的几分钟内完成百分比增长到 100%,生命周期值显示“成功”。但是,当我尝试访问数据库时,我无法访问,它说它无法恢复,我得到的确切错误消息是“无法访问数据库 OurDB。(ObjectExplorer)”
每当我搜索 RESTORE DATABASE Stuck RDS SQL SERVER 或其变体时,我发现的所有内容都是关于还原整个 RDS 实例而不是单个数据库。或者,如果我能够找到有关恢复卡住的数据库的信息,那么这与 RDS 无关,而是与常规 SQL Server 有关。
以下是我所看到的一些屏幕截图。
它没有卡住,它仍然处于恢复模式,因为您使用了@with_norecovery = 1。您需要通过恢复来恢复数据库才能完成该过程。
对于 RDS:
...除非 RDS 环境有什么特别之处,否则您可以执行
让你摆脱那种恢复状态。