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

Escrito por Jorge Martínez Mauricio el viernes 01 de octubre, 2010 - 10:27 en Windows, SQL Server, Tips

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.

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í.


Este post ha sido 54650 veces visto.
comments powered by Disqus

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

#1 ZIRKAN escribió: 19/nov/2010

Esta buena la info, aunque algo extraño pasar de sql server a MySql pero bueno, al fin y al cabo como programadores debemos hacer 'lo que el cliente pida'. Yo también tuve ese error, pero estoy utilizando VWD2010 Express Edition y SQL Management Studio 2005; El problema fue que los archivos sql no los podia cargar en SQL M.S., pero lo solucioné desde el explorador de BD del VWD, dandole clic derecho a la BD que queria exportar>>Publish to provider.. y de ahi seguí las instrucciones para generar la secuencia sql. Después me fui al SQL M.S. y creé una nueva BD (clic derecho en la carpeta Bases de datos>>Crear nueva), después le dí 'hacer una nueva consulta a la BD y copié y pegué el script anterior. Eso fue suficiente. Quizá el error que pueda surgir en este metodo es que VWD2010 te permite anexar campos del tipo datetime2, que existen en SQL server 2008 y superiores pero no en sql server 2005, así que hay que cambiar cualquier campo de este tipo a datetime.

Espero que sea de ayuda.

#2 Martin Lugo escribió: 11/jun/2013

Este es la forma de hacerlo:

http://msdn.microsoft.com/en-us/library/ms190209.aspx


Si el comentario no está relacionado con el tema, podrá ser borrado o no ser publicado. Recuerda que al hacer un comentario en forma anónima, se registra la dirección de internet.
¿Tiene cuenta en El Siglo de Torreón? escriba los datos:
Usuario/correo: Contraseña:

Si usted se identifica podrá ver sus comentarios, borrarlos y si tiene fotografía establecida en "Mi Siglo" entonces aparecerá en sus comentarios.

De lo contrario sus comentarios serán enviados como anónimo.

Nombre: Correo:

Blog/página personal: | recordar datos. .
Suscribirme a esta entrada: (cuando alguien de una respuesta, me será notificado por correo)

Su comentario será publicado inmediatamente.
¿Cuál es el resultado de 5 menos 6?

Responda correctamente para que su comentario sea enviado.

Para mayor información sobre el tratamiento de sus datos personales ingrese a : Privacidad