Buscar aquí

sábado, 23 de octubre de 2010

Restaurar base de datos a una con diferente SQL Server

Trabajando en SQL Server 2008 el otro día necesite tener una base de datos de prueba de una que manejo regularmete, hice un back up y me encontre al intentar restaurar con que no podia cambiar el nombre de la base de datos, y que ademas el proceso intentaba situar los archivos de la nueva bd donde estan los de la vieja y pues obviamente la vieja los esta usando. Así que decidi usar el siguiente script que soluciono mi problema:


USE master
GO

RESTORE FILELISTONLY
FROM disk ='C:\Archivos de programa\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup\Vacaciones.bak'

From disk es para poder restaurar nombrando la ubicacion del archivo de back up.

Este primero me muestra los nombre que tiene el back up para los archivos de la bd, me retorno lo siguiente entre otra informacion que ahora no es relevante:


Vacaciones_Data

c:\Archivos de programa\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQLDATA\Vacaciones backup.MDF

Vacaciones_Log

c:\Archivos de programa\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\Vacaciones backup_1.LDF


Vacaciones_idx

c:\Archivos de programa\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\Vacaciones backup_2.LDF

Ahora para restaurar la base de datos use lo siguiente, lo que pone los nuevos archivos donde uno quiera, importante las extensiones:


USE master
GO

RESTORE DATABASE Nintranet --Este es el nombre de la bd de destino, en mi caso no la cree antes de
--ejecutar el script
FROM disk ='C:\Archivos de programa\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup\Vacaciones.bak'
WITH RECOVERY,
MOVE 'Vacaciones_Data' TO 'C:\Vacaciones_Data.mdf',
MOVE 'Vacaciones_Log' TO 'C:\Vacaciones_Log.ldf',
MOVE 'Vacaciones_idx' TO 'C:\Vacaciones_Log_2.ldf'
GO

Gracias.

No hay comentarios: