2010-08-26 2 views
6

Я занимаюсь миграцией большого масштаба сервера, поэтому мне нужно переместить 50+ баз данных SQL 2005 на новую установку сервера SQL 2008.Что является наиболее эффективным способом восстановления нескольких баз данных в SQL 2008

Ребята из DB предоставили мне резервную копию каждой базы данных, поэтому у меня есть каталог с 50 файлами .bak, которые находятся в каталоге (т.е. c: \ db), который мне нужно восстановить.

Мне нужно восстановить каждую базу данных на новый сервер.

Я могу сделать это индивидуально в Management Studio, но это потребует много времени. Существует ли более эффективный способ решения этой проблемы.

Так что мой вопрос:

Что является наиболее эффективным способом восстановления всех этих баз данных.

машина фон: Сервер Win 2k8, с SQL 2008 Workgroup Edition, .net 4 устанавливается вместе с Powershell 2.

Спасибо заранее.

+0

Я пытаюсь получить здесь ответ - https://stackoverflow.com/questions/22207519/need-help-to-restore-multiple-databases-bak-files-from-one-folder – Steam

ответ

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....

+0

Я просто обновил вопрос, чтобы быть немного более ясным. –

+0

Вот что я искал .. Спасибо. –

+0

Я попробовал ваш код, как это и это не сработало - 'DECLARE @Path VARCHAR (3000) DECLARE @file VARCHAR (1000) DECLARE @loc VARCHAR (7000) SET @path =«C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.SS2008 \ MSSQL \ Backup \» SET @file = '' AdventureWorksDW.bak SET @loc = @path + @file ВОССТАНОВЛЕНИЕ FILELISTONLY ОТ DISK = @loc GO' – Steam

0

Написать собственное приложение/скрипт? Вы можете расширить SSMS или использовать инструменты SQL Server для написания приложения, которое просто считывает эти файлы и восстанавливает их в базе данных. Я знаю, что это возможно в .net, возможно, с помощью сценариев powershell.

Это эффективно, если эта задача должна быть выполнена за короткий промежуток времени во время производственной миграции, в противном случае накладные расходы на создание приложения более чем на 50 восстановлений вручную! Но если вы разработчик, и вы выбираете вручную, то вам стыдно! :).