none
Migrar .mdf .ldf de una instancia a otra en SQL Server RRS feed

  • Pregunta

  • Hola, que tal, buenas tardes a todos en este foro.

    Tengo una consulta, que posiblemente exista ya la solución sin embargo, buscando en diversas fuentes de información oficiales de SQL Server y Microsoft no he encontrado.

    Lo que pasa es que se presenta la situación, donde se cuenta con cerca de 50 bases de datos, con sus respectivos .ldf y .mdf sin embargo, la solución que se busca es aplicar una migración de base de datos masivamente a una nueva instancia, generada y creada con el fin de contar con compatibilidad hacia un aplicativo no comercial.

    He encontrado solamente ese proceso pero con los .bak sin embargo, se busca ver la manera si existe la posibilidad de hacerlo con los dos archivos .ldf y .mdf

    Desde ya, gracias.

    Saludos desde México!


    viernes, 6 de diciembre de 2019 18:17

Todas las respuestas

  • Sí, claro que existe la posibilidad de hacerlo con los ldf y mdf. Basta con que los copies a la carpeta de destino en la que los vaya a utilizar la nueva instancia, y entonces te conectas con SSMS a la nueva instancia y usas la opción de "Attach Database..." Cuando te pregunte por los ficheros de la base de datos, seleccionas el mdf y ldf que acabas de copiar a la carpeta de destino.

    Si tienes que repetirlo 50 veces y te resulta incómodo hacerlo a mano, también puedes escribir un script que lo haga. En versiones antiguas es una llamada a sp_attach_db y en las modernas se usa "create database ... for attach". Búscalo en el manual, que te explicará todos los parámetros que hay que pasarle (nombre de la base de datos y ubicación de los archivos). Puedes usar copiar y pegar para repetir la sentencia 50 veces y cambiarle los nombres, o incluso con un poco de habilidad puedes crear un script que lo haga automáticamente a partir de los ficheros que haya en disco. Pero con solo 50 bases de datos probablemente tardes menos en cambiar a mano los 50 nombres que en escribir el script.

    Hay otra opción más que puedes usar en caso de que las dos instancias sean accesibles simultáneamente desde un mismo SSMS: Utiliza el "asistente para copiar o mover bases de datos" (está por debajo de "tasks" en SSMS). El asistente te preguntará qué base(s) quieres mover, y puedes marcar los 50 checkboxes si quieres mover 50 bases de datos. También pregunta la forma de moverlas, y una de las opciones es usar detach/attach que lo que significa es precisamente copiar el mdf y ldf, que es lo que querías. La única dificultad a la hora de usar esta opción es que siempre te da error si falta algún permiso (permiso para hacer login como sysadmin en las dos instancias y permiso para la cuenta del servicio SQL -ojo, no basta con permiso para la cuenta del usuario que usa el Asistente- para que lea y grabe los ldf y mdf en sus respectivas carpetas).



    sábado, 14 de diciembre de 2019 16:23