6

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

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

我需要将每个数据库恢复到新服务器。

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

所以我的问题是:

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

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

提前致谢。

4

2 回答 2

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,但它们可能会有所不同。

Withrecovery意味着:使数据库联机而不等待额外的日志恢复。

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

于 2010-08-26T11:34:54.350 回答
0

编写自定义应用程序/脚本?您可以扩展 SSMS 或使用 SQL 服务器工具编写一个应用程序,该应用程序只读取这些文件并将它们恢复到数据库。我知道在 .net 中是可能的,也可能使用 powershell 脚本。

如果要在生产迁移期间在短时间内完成此任务,这将是高效的,否则编写应用程序的开销超过手动执行 50 次恢复!但是,如果您是开发人员并且您手动选择,那么您会感到羞耻!:)。

于 2010-08-26T12:40:02.373 回答