2013-08-21 58 views
3

,我們有我們在夜間備份分成4個獨立的BAK文件,所以它可以更容易地發送到場外的大型SQL數據庫。我們使用這個語句(DB名稱變更)尋求從多個BAK文件恢復到測試SQL數據庫

BACKUP DATABASE [Data] TO 
DISK = 'd:\back\data1.bak', 
DISK = 'd:\back\data2.bak', 
DISK = 'd:\back\data3.bak', 
DISK = 'd:\back\data4.bak' 
WITH INIT, NOUNLOAD, NAME = 'Data backup', NOSKIP , STATS = 10, NOFORMAT 

備份的四位都爲MDF和LDF文件在李明博同一個邏輯名稱。

我希望能夠到這四個備份恢復到服務器進行測試在不同的數據庫。我在this post中發現了一個t-sql腳本,我認爲它會這樣做,但我不確定。有人可以幫忙嗎?

我想我能適應並運行該腳本如下:

RESTORE DATABASE Data_test FROM 
DISK = 'd:\back\data1.bak', 
DISK = 'd:\back\data2.bak', 
DISK = 'd:\back\data3.bak', 
DISK = 'd:\back\data4.bak' 
WITH MOVE 'Prod_Data' TO 'D:\SQLDb\Data_Test1.mdf', 
MOVE 'Prod_Data' TO 'D:\SQLDb\Data_Test2.ndf', 
MOVE 'Prod_Data' TO 'D:\SQLDb\Data_Test3.ndf', 
MOVE 'Prod_Data' TO 'D:\SQLDb\Data_Test4.ndf', 
MOVE 'Prod_Log' TO 'C:\SQLtlogs\Data_test1.ldf' 

你認爲這會工作?這個測試數據庫不會與它恢復的prod數據庫相沖突嗎?任何幫助將是偉大的,謝謝。

回答

3

好的,我真的得到這個與SSMS的GUI工作。您只需選擇任務,恢復數據庫,從設備中選擇,然後添加單獨bak文件的所有四個文件,然後單擊確定,然後使用覆蓋進行恢復,根據需要修改mdf和ldf的文件名,以便它們可以爲測試數據庫而不是生產。 SSMS知道這四個文件是同一個媒體集的一部分,並將它們重新組合到mdf和ldf文件中。看起來我畢竟不需要腳本。

+0

如果有人可以發佈命令來執行此操作,它將有所幫助。 – CleanBold

1

我用這個TRANSACT-SQL命令來完成你所要求的幾乎相同的事情。唯一的區別是我只將每個邏輯文件移動到一個物理文件中。我的命令(修改爲使用您的示例)如下所示:

RESTORE DATABASE Data_test FROM 
DISK = 'd:\back\data1.bak', 
DISK = 'd:\back\data2.bak', 
DISK = 'd:\back\data3.bak', 
DISK = 'd:\back\data4.bak' 
WITH MOVE 'Prod_Data' TO 'D:\SQLDb\Data_Test1.mdf', 
MOVE 'Prod_Log' TO 'C:\SQLtlogs\Data_test1.ldf' 
相關問題