移动SQL Server 2008 R2备份/还原以分离/重新连接

时间:2011-04-26 18:09:11

标签: sql-server-2008-r2 automated-tests database-backups database-restore

我正在努力更新框架以测试数据库驱动的代码。在对数据库进行每次写入测试之前,它正在进行RESTORE数据库备份,这需要15-20秒,所以我试图通过保留分离的mdf,ldf和“备份”来加快速度。 ndf文件,以便我可以在每次测试之前CREATE DATABASE...FOR ATTACH。问题是,当使用RESTORE时,您可以使用以下内容“移动”(或者更具体地说,选择将备份还原到哪里)mdf,ldf和ndf文件:

RESTORE DATABASE [testDB]
  FROM DISK = N'\\Path\To\Backup' WITH FILE = 1, RECOVERY,
  MOVE N'testDB' TO N'\\Path\To\MDF', 
  MOVE N'testDB_log' TO N'\\Path\To\LDF', 
  MOVE N'ftrow_testDB' TO N'\\Path\To\NDF', 
  NOUNLOAD, REPLACE, STATS = 1

但是,使用CREATE DATABASE FOR ATTACH,我似乎找不到任何方法来“移动”mdf,ldf和ndf文件。附加时,它只使用您指定的文件作为数据库文件:

CREATE DATABASE [testDB] ON
  (FILENAME = N'\\Path\To\MDF'),
  (FILENAME = N'\\Path\To\LDF'),
  (FILENAME = N'\\Path\To\NDF')
FOR ATTACH

这意味着每次都要保留这三个文件的“备份”,我需要将它们从备份目录中复制出来,这非常耗时,而不是取消任何速度增加。

任何人都对如何使其发挥作用有任何想法?

1 个答案:

答案 0 :(得分:0)

我无法找到任何方法让它工作,所以我尽可能地缩小了数据库并将它们置于简单的恢复模式 - 这加快了它的数量。