Sql-Server

將 .BAK 還原到同一實例後,SQL Server 數據庫卡在恢復中

  • March 2, 2016

我們遇到過幾次問題——也許我們沒有使用“最佳實踐”來恢復,但感謝任何建議。我們使用 SQL Server 數據庫執行 IIS 應用程序,有時我們在同一伺服器/SQL Server 實例上執行兩個以上的實例(多站點)。

假設我們有一個數據庫“site1”,我們創建了一個site1.bak該站點。然後我們需要設置另一個,所以我們恢復site1.bak到一個新的數據庫site2

但是,在恢復該數據庫(並確保文件名不同)時,原始網站說它是IN RECOVERY. “修復”很簡單——我們執行:

RESTORE DATABASE NameofDatabase
WITH RECOVERY

…但恐懼是正在發生的其他可能有害的事情。.bak為什麼在將原始數據庫還原到具有不同文件名的新數據庫時會進入還原?

在恢復該數據庫(並確保文件名不同)時,原始站點說它正在恢復中。‘修復’很容易……

您正在同一數據庫上還原並norecovery在腳本中使用。你應該使用(虛擬碼)..

restore database dbname
from disk = 'path to your backup'
with recovery, stats =10,
move 'logicalName' to 'physical_path\new_dbname.mdf',
move 'logicalLogFileName' to 'physical_path\new_dbname_log.ldf'

“您正在同一數據庫上恢復並在腳本中使用 ’norecovery’”

沒有使用腳本來恢復 - 右鍵點擊數據庫並點擊恢復,然後使用原始站點中的 .bak。也許當一個人這樣做時,它正在使用 norecovery?

恢復數據庫時,我們將命名一個新的數據庫名稱並確保文件名不同。還原完成後,實例中有兩個數據庫,但 ORIGINAL 進入恢復狀態。第二個是可用的。

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