2010-08-26 6 views
6

Je suis en train de faire une migration de serveur à grande échelle, en tant que tel, je dois déplacer plus de 50 bases de données SQL 2005 vers une nouvelle installation de serveur SQL 2008. Les gars DB m'ont seulement donné une sauvegarde de chaque base de données, donc j'ai un répertoire avec quelques 50 fichiers .bak dans un répertoire (ie c: \ db) que j'ai besoin de restaurer.Quel est le moyen le plus efficace pour restaurer plusieurs bases de données dans SQL 2008

J'ai besoin de restaurer chaque base de données sur le nouveau serveur.

Je peux le faire individuellement dans Management Studio, mais cela prendrait du temps. Existe-t-il un moyen plus efficace de résoudre ce problème?

Donc, ma question est:

Quelle est la façon la plus efficace de restaurer toutes ces bases de données.

fond de la machine: Le serveur est Win 2k8, avec SQL Server 2008 Workgroup Edition, .net 4 est installé avec Powershell 2.

Merci à l'avance.

+0

J'essaie d'obtenir une réponse ici - https://stackoverflow.com/questions/22207519/need-help-to-restore-multiple-databases-bak-files-from-one-folder – Steam

Répondre

6

Edité après un commentaire: vous pouvez le script reconstitue, comme:

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 

Les deux lignes move déplacer les fichiers vers un emplacement sur le nouveau serveur. Habituellement, les noms sont DatabaseName et DatabaseName_log, mais ils peuvent varier.

Avec recovery signifie: mettre la base de données en ligne sans attendre d'autres restaurations.

Pour générer un script comme celui-ci, cliquez sur le bouton Script (en haut à gauche) dans la fenêtre de l'assistant de restauration de la base de données, puis cliquez sur Script action to....

+0

J'ai juste mis à jour la question pour être un peu plus clair. –

+0

C'est ce que je cherchais .. Merci. –

+0

J'ai essayé votre code comme ça et ça ne fonctionne pas - '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 RESTORE FILELISTONLY DE DISK = @loc GO' – Steam

0

Écrire une application/un script personnalisé? Vous pouvez étendre SSMS ou utiliser des outils de serveur SQL pour écrire une application qui lit ces fichiers et les restaure dans la base de données. Je sais que c'est possible dans .net, peut-être aussi en utilisant des scripts PowerShell.

Ceci est efficace si cette tâche doit être effectuée dans un court laps de temps au cours de la migration de production, sinon le temps d'écriture de l'application est plus que de faire 50 restaurations manuellement! Mais si vous êtes un développeur et que vous choisissez manuellement, alors honte à vous! :)

Questions connexes