最簡單的方法實際上是一個腳本。
運行此生產:
USE MASTER;
BACKUP DATABASE [MyDatabase]
TO DISK = 'C:\temp\MyDatabase1.bak' -- some writeable folder.
WITH COPY_ONLY
這一個命令使數據庫的完整備份到一個單一的文件,而與生產可用性或備份計劃等干擾
要恢復,只是你的開發或測試SQL服務器上運行此:
USE MASTER;
RESTORE DATABASE [MyDatabase]
FROM DISK = 'C:\temp\MyDatabase1.bak'
WITH
MOVE 'MyDatabase' TO 'C:\Sql\MyDatabase.mdf', -- or wherever these live on target
MOVE 'MyDatabase_log' TO 'C:\Sql\MyDatabase_log.ldf',
REPLACE, RECOVERY
然後保存在每個服務器上運行這些腳本。一鍵式方便。
編輯:
如果恢復的邏輯名稱不匹配時出現錯誤,你可以讓他們像這樣:
RESTORE FILELISTONLY
FROM disk = 'C:\temp\MyDatabaseName1.bak'
如果使用SQL Server登錄(而不是Windows身份驗證)您可以在每個時間(恢復開發/測試機器上運行後,此):
use MyDatabaseName;
sp_change_users_login 'Auto_Fix', 'userloginname', null, 'userpassword';
另請參見[this question](http://stackoverflow.com/questions/1360529/how-do-you-backup-and-restore-a-database-as-a-copy-on-the-同一服務器)如何恢復到不同的名稱。 – John 2014-03-07 13:25:54
@MGOwen,嘗試用多個文件組備份和恢復500Gb數據庫,然後分離並附加。哪一個更快? – 2014-06-19 17:51:13
@Jose您說得對,這比大型數據庫的僅複製備份花費的時間少。但是僅複製備份**不會將生產數據庫關閉**,而這通常會以高於速度的速度運行。 – MGOwen 2014-07-18 12:04:32