Sidebar

Restaurar una base de datos en SQL Server es muy sencillo, sólo debemos tomar en cuenta la ubicación del respaldo y si estamos restaurando una base de datos de otro servidor revisar la ruta física en la que debe quedar la base de datos.

Si nos entregan un respaldo del que desconocemos su contenido, podemos revisarlo mediante el siguiente comando

RESTORE FILELISTONLY FROM 
DISK = 'R:\MSSQL10_50\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\MyDB.bak'

La salida de este comando nos va a dar la información necesaria para poderlo restaurar.

Las columnas importantes son LogicalName,  y Size.

El restore quedaría de la siguiente forma

RESTORE DATABASE  FROM disk = 'PhysicalName'
WITH
MOVE 'LogicalName' to 'PhysicalName',
MOVE 'LogicalName' to 'PhysicalName',
REPLACE, STATS = 10

database_name: El nombre de la base de datos a donde vamos a restaurar.

LogicalName: Aquí colocamos la información que nos muestra al ejecutar el comando RESTORE FILELISTONLY.

PhysicalName: Aquí colocamos la ruta física de la base de datos a donde vamos a restaurar. Esto lo podemos verificar ejecutando el comando sp_helpfile sobre la base de datos destino en la columna filename.

MOVE: Para mapear el nombre lógico al físico de la base de datos, uno para el archivo mdf (datos) y otro para el ldf (log).

REPLACE: Para remplazar los archivos actuales de la base de datos por la que contiene el respaldo STATS: Para poder ver el progreso del restore, en este caso me muestra el progreso cada 10%.

RESTORE DATABASE MyDB 
FROM DISK = 'r:\MSSQL10_50\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\MyDB.bak'
WITH
MOVE 'Mydb' to 'S:\MSSQL10_50\MSSQL10_50.MSSQLSERVER\MSSQL\Data\MyDB.mdf',
MOVE 'MyDB_log' to 'T:\MSSQL10_50\MSSQL10_50.MSSQLSERVER\MSSQL\TLog\MyDB_log.ldf',
replace,STATS = 10

Si el respaldo que queremos restaurar pertenece a la misma base de datos, solo es necesario ejecutar el comando de la siguiente manera.

RESTORE DATABASE MyDB 
FROM DISK = 'r:\MSSQL10_50\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\MyDB.bak'
WITH STATS = 10

Compresión en SQL Server 2008

SQL Server 2008 Enterprise Edition nos permite realizar respaldos con compresión.

Cualquier versión de SQL Server 2008 puede restaurar un respaldo con compresión

Existen algunas restricciones con el uso de la compresión en SQL Server 2008

-Los respaldos con compresión y sin compresión no pueden estar en el mismo conjunto de medios.
-Las versiones anteriores a SQL Server 2008 no pueden leer respaldos con compresión.
-Los respaldos con compresión no pueden almacenarse en la misma cinta que los Ntbackups.

Si tienen alguna duda, no duden en preguntar.


Tips BD