Sql-Server

從 S3 恢復的 SQL Server RDS 數據庫卡在恢復模式

  • May 12, 2021

摘要:我們正在 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 有關。

以下是我所看到的一些螢幕截圖。

SQL 命令和結果 SSMS 中的錯誤

它沒有卡住,它仍然處於恢復模式,因為您使用了@with_norecovery = 1。您需要通過恢復來恢復數據庫才能完成該過程。

對於 RDS:

exec msdb.dbo.rds_finish_restore @db_name='database_name';

引用自:https://dba.stackexchange.com/questions/278467