恢復無法啟動數據庫
伺服器“servername”的還原失敗。(Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError:RESTORE 無法啟動數據庫“ECP”。(Microsoft.SqlServer.Smo)
數據庫已創建,但無法使用對象資源管理器訪問:
無法訪問數據庫 ECP。(對象瀏覽器)
感謝您提供有關如何使數據庫正常工作的任何建議。
編輯:這個查詢
select state_desc from sys.databases where name = 'ECP';
返回
RECOVERY_PENDING
。我再次刪除了數據庫並重新嘗試了
restore verifyonly from disk = 'path\file';
這返回
嘗試還原此備份可能會遇到儲存空間問題。後續消息將提供詳細資訊。
“F:\ECPDATA1\ECPDATA1.mdf”指定的路徑不在有效目錄中。
文件“F:\ECPDATA2\ECPDATA2.ndf”的目錄查找失敗,出現作業系統錯誤 3(無法檢索此錯誤的文本。原因:15100)。
文件“F:\ECPDATA3\ECPDATA3.ndf”的目錄查找失敗,出現作業系統錯誤 3(無法檢索此錯誤的文本。原因:15105)。
文件“F:\ECPDATA4\ECPDATA4.ndf”的目錄查找失敗,出現作業系統錯誤 3(無法檢索此錯誤的文本。原因:15105)。
文件“E:\ECPLOG1\ECPLOG1.ldf”的目錄查找失敗,出現作業系統錯誤 21(無法檢索此錯誤的文本。原因:15105)。
文件 1 上的備份集有效。
既然它說備份集是有效的,我只需要指定文件,讓它工作,對吧?但是在這台伺服器上我沒有驅動器
E:
或F:
. 如何在備份文件中進行調整?還是有可能(我對 windows-server-2008-r2 不太熟悉)在 linux 上擁有某種符號連結?
您的還原失敗,因為您的電腦上沒有 E:\ 或 F:\。
- 執行
RESTORE FILELISTONLY FROM DISK = 'path\file';
- 這將告訴您數據和日誌文件的邏輯名稱。RESTORE DATABASE
基於此構造一個命令。例如(假設數據文件名為ECP_Data
,ECP_Data_2
等):RESTORE DATABASE ECO FROM DISK = 'path\file' WITH REPLACE, RECOVERY, MOVE 'ECP_Data' TO 'C:\...path to MSSQL\Data\ECP_Data.mdf', MOVE 'ECP_Data_2' TO 'C:\...path to MSSQL\Data\ECP_Data2.ndf', MOVE 'ECP_Data_3' TO 'C:\...path to MSSQL\Data\ECP_Data3.ndf', MOVE 'ECP_Data_4' TO 'C:\...path to MSSQL\Data\ECP_Data4.ndf', MOVE 'ECP_Log' TO 'C:\...path to MSSQL\Data\ECP_Log.ldf';
除了更正邏輯文件名之外,請替換為您想要用於儲存數據/日誌文件的
C:\...path to MSSQL\Data\
任何路徑。您不需要每個文件都有一個單獨的文件夾,但您可能仍希望將數據和日誌文件分開到不同的磁碟上。請注意,如果您選擇的任何驅動器都沒有足夠的空間來執行還原,它仍然可能會失敗。