在SQL 2008中还原多个数据库的最有效方法是什么

时间:2010-08-26 11:27:13

标签: sql sql-server-2008 migration data-migration

我正在进行大规模服务器迁移,因此我必须将50多个SQL 2005数据库移动到新的SQL 2008服务器安装。

数据库伙伴们只给了我一个每个数据库的备份,所以我有一个目录,其中有50个.bak文件位于我需要恢复的目录(即c:\ db)中。

我需要将每个数据库还原到新服务器。

我可以在Management Studio中单独执行此操作,但这会非常耗时。有没有更有效的方法来解决这个问题。

所以我的问题是:

恢复所有这些数据库的最有效方法是什么。

机器背景: 服务器是Win 2k8,带有SQL 2008 Workgroup Edition,.net 4与Powershell 2一起安装。

提前致谢。

2 个答案:

答案 0 :(得分:6)

评论后编辑:您可以编写脚本还原,例如:

restore database DatabaseName
from disk = N'c:\dir\BackupFileName.bak'
with file = 1,  
move N'DatabaseName' to N'c:\dir\DatabaseName.mdf',  
move N'DatabaseName_log' to N'c:\dir\DatabaseName.ldf',  
stats = 10, 
recovery 

两条move行将文件移动到新服务器上的某个位置。通常名称是DatabaseName和DatabaseName_log,但它们可以变化。

使用recovery表示:无需等待其他日志恢复即可使数据库联机。

要生成这样的脚本,请单击“还原数据库”向导窗口中的“脚本”按钮(左上角),然后单击Script action to...

答案 1 :(得分:0)

编写自定义应用程序/脚本?您可以扩展SSMS或使用SQL Server工具编写只读取这些文件并将其还原到数据库的应用程序。我知道在.net中可能也可以使用powershell脚本。

如果要在生产迁移期间在短时间内完成此任务,这是有效的,否则编写应用程序的开销不仅仅是手动执行50次还原!但如果你是一名开发人员并且你手动选择,那么你就会感到羞耻! :)