2010-08-26 27 views
6

Estoy en el proceso de hacer una migración de servidor de gran escala, como tal tengo que mover más de 50 bases de datos SQL 2005 a una nueva instalación de SQL 2008 server.Cuál es la manera más eficiente de restaurar bases de datos múltiples en SQL 2008

Los chicos DB solo me han dado una copia de seguridad de cada base de datos, así que tengo un directorio con unos 50 archivos .bak en un directorio (es decir, c: \ db) que necesito restaurar.

Necesito restaurar cada base de datos al nuevo servidor.

Puedo hacerlo individualmente en Management Studio, pero eso llevaría mucho tiempo. ¿Hay una manera más eficiente de resolver este problema?

Así que mi pregunta es:

¿Cuál es la forma más eficiente de la restauración de todas estas bases de datos.

Máquina fondo: El servidor es Win 2k8, con SQL 2008 Workgroup Edition, .net 4 se instala junto con Powershell 2.

Gracias de antemano.

+0

Estoy tratando de obtener una respuesta aquí - https://stackoverflow.com/questions/22207519/need-help-to-restore-multiple-databases-bak-files-from-one-folder – Steam

Respuesta

6

Editado después de comentario: puedes restaura la escritura, como:

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 

Las dos líneas move mover los archivos a una ubicación en el nuevo servidor. Por lo general, los nombres son DatabaseName y DatabaseName_log, pero pueden variar.

Con recovery significa: poner la base de datos en línea sin esperar restauraciones de registro adicionales.

Para generar un script como este, haga clic en el botón Script (arriba a la izquierda) en la ventana del asistente Restaurar base de datos y haga clic en Script action to....

+0

Acabo de actualizó la pregunta para ser un poco más claro. –

+0

Eso es lo que estaba buscando .. Gracias. –

+0

me trataron su código como esto y no funcionó - 'DECLARE @path varchar (3000) DECLARE @file varchar (1000) DECLARE @loc varchar (7000) SET @path = 'C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL10_50.SS2008 \ MSSQL \ Backup \' SET @file = 'AdventureWorksDW.bak' SET @loc = @path + @file RESTORE FILELISTONLY desde el disco = @loc GO' – Steam

0

Escriba una aplicación/script personalizada? Puede extender SSMS o usar herramientas de SQL Server para escribir una aplicación que solo lea estos archivos y los restaure en la base de datos. Sé que es posible en .net, también es posible usar scripts de PowerShell.

Esto es eficiente si esta tarea se realiza en un corto período de tiempo durante la migración de producción, de lo contrario, la sobrecarga de escribir la aplicación es más que 50 restauraciones de forma manual. Pero si eres un desarrollador y eliges manualmente, ¡qué vergüenza! :).

Cuestiones relacionadas