@@CLIMA@@

Restaurar base de datos (.mdf) en MS SQL Server

Jorge Martínez Mauricio

Por azares del destino tenía que abrir una base de datos en SQL Server, obtuve dos archivos. Uno con extensión .MDF y otro con extensión .LDF. No tenía ni idea (no manejo SQL Server) de que tipo de archivo era, de que versión, etc. Sin embargo investigando pude abrir los datos. Lo que describo a continuación puede sonar muy obvio para quienes manejan ms sql server, sin embargo en mi caso fue la primera vez.

Para lograr abrirla esto fue lo que hice (es posible reproducirlo).

Instalé VirtualBox (en una máquina con OS X) para poder ejecutar Windows XP como máquina virtual, este paso obviamente se puede saltar si se cuenta con una PC. Después de instalar VirtualBox le instalé una copia de Windows XP y luego le instalé SQL Server 2008 R2 Express. =mas=

Ingredientes

  • Windows XP Virtualizado (VirtualBox) - este paso es opcional.
  • Descargué SQL Server 2008 R2 Express - gratuito con una base de datos hasta 10 GB
  • El paquete anterior pide 3 requisitos: .NET Framework 3.5 SP1, Windows Installer 4 y Windows Powershell. Los tres productos se pueden descargar de forma gratuita desde la página de Microsoft, sin embargo te pide validar tu copia de Windows (powershell).

Instalación de SQL Server

En el primer paso (Setup Support Rules) te pide tener Windows PowerShell. Hay que descargarlo e instalarlo, una vez instalado elegimos la opción "re-run" para que vuelva a verificar que la instalación cumple con los requisitos.

De allí en adelante es ir dando click en Siguiente hasta el paso de "Server Configuration" donde hay que asignar el usuario que ejecutará la base de datos, en mi caso elegí "Use the same account for all SQL Server services", en este caso elegí un usuario que hice específicamente para esta opción. Aquí solo cabe mencionar que el usuario debe tener una contraseña (como usuario de windows), porque si no no deja continuar. Luego en "Database Engine Configuration" en el modo de autentificación (por conveniencia) elegí "Mixed mode". Después de eso en teoría debe terminarse la instalación y ejecutarse el servidor.

Carga de la DB

Ejecutamos SQL Management Studio, nos conectamos a la instancia de base de datos y elegimos DATABASES - System Databases - master. Dentro de master pulsamos botón derecho y elegimos "new query". Digamos que tenemos los archivos RESPALDO.mdf y RESPALDO.ldf. Lo que haremos es crear una base de datos con el mismo nombre (RESPALDO) y le indicaremos los archivos a almacenar, como sigue:

USE master
GO
CREATE DATABASE RESPALDO
ON 
( NAME = RESPALDO_dat,
   FILENAME = 'C:\tmp\RESPALDO.mdf',
   SIZE = 100,
   MAXSIZE = 500,
   FILEGROWTH = 5 )
LOG ON
( NAME = RESPALDO_log,
   FILENAME = 'C:\tmp\RESPALDO.ldf',
   SIZE = 50MB,
   MAXSIZE = 1500MB,
   FILEGROWTH = 5MB )
GO

En este caso, estamos creando la base de datos e indicándole donde almacenará que archivos. En el ejemplo estoy usando C:\tmp pero puede ser otra ubicación. Si todo sale bien nos dirá que fue completado y nos salimos de Management Studio. Entramos a Panel de Control - Herramientas administrativas - Servicios y buscamos "SQL Server (SQLEXPRESS)" y detenemos el servicio. Ahora, COPIAMOS nuestros archivos RESPALDO.mdf y RESPALDO.ldf en C:\tmp, sobreescribiendo los que creó la base de datos. Una vez reemplazados abrimos servicios de nuevo e iniciamos el servicio SQL Server.

¡Eso es todo! abrimos de nuevo el Management Studio y ya deberíamos tener la base de datos RESPALDO con sus tablas, vistas, etc. Ya teníendolo allí, hay muchas formas de que podemos extraer los datos como por ejemplo en mi caso, para migrarlos a MySQL.

Por supuesto cabe mencionar que esto funcionó para mi y desde un entorno "nuevo", no creo que sea recomendable hacerlo en un ambiente de producción y recuerda tener siempre respaldos.

El post original donde encontré como cargar la DB está aquí.

Fotos más vistas en 15 días