none
Hacer una copia de una Base de Datos

    Question

  •  

    Hola Amigos. Veréis. Tengo Sql Server 2005 y tengo una base de datos con datos reales, y necesito hacer una copia de esa base de datos a una de "pruebas" para poder hacer pruebas y cambios en ella sin afectar a los datos reales.

     

    En primer lugar, he itentado ejecutar la una sentencia que hace un backup de la base de datos en producción e inmediatamente restaura esa copia en una base de datos nueva. Esa es la única forma que conozco, ya que desconozco si hay algún asistente o algo similar.

     

    El código era el siguiente

     

    Bloque de código

    BACKUP DATABASE BaseDatosReal TO DISK = N'C:\BackupBBDD\PRODUCCION.bak' WITH NOFORMAT, NOINIT, NAME = N'PRODUCCION_Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

    GO

     

    RESTORE DATABASE PRUEBAS FROM DISK = N'C:\BackupBBDD\PRODUCCION.bak' WITH  FILE = 1, NOUNLOAD, STATS = 10

    GO

     

     

    El problema que tengo es que el Backup lo hace bien, pero el segundo Script falla, y textualmente me dice:

     

    Mens. 1834, Nivel 16, Estado 1, Línea 3

    No se puede sobrescribir el archivo 'E:\SQL\Realv1.1.mdf'. Lo está utilizando la base de datos 'BaseDatosReal'.

    Mens. 3156, Nivel 16, Estado 1, Línea 3

    El archivo 'RealSQL_dat' no se puede restaurar en 'E:\SQL\Realv1.1.mdf'. Utilice WITH MOVE para identificar una ubicación válida para el archivo.

    Mens. 1834, Nivel 16, Estado 1, Línea 3

    No se puede sobrescribir el archivo 'E:\SQL\BaseDatosReal_log.LDF'. Lo está utilizando la base de datos 'BaseDatosReal'.

    Mens. 3156, Nivel 16, Estado 1, Línea 3

    El archivo 'RealSQL_log' no se puede restaurar en 'E:\SQL\BaseDatosReal_log.LDF'. Utilice WITH MOVE para identificar una ubicación válida para el archivo.

    Mens. 3013, Nivel 16, Estado 1, Línea 3

    Fin anómalo de RESTORE DATABASE.

     

    Sabéis la causa???

    Wednesday, October 10, 2007 7:42 AM

Answers

All replies

  • Hola,

     

    Desde el management studio te puedes hacer una copia de seguridad y si te funciona, puedes generar el script que te crea el asistente de este. Así puedes probrar que es lo que te fallaba.

     

    PD: ¿me he explicado bien?

     

    Un Saludo

     

     

     

     

     

    Wednesday, October 10, 2007 8:05 AM
  • Si, si así lo hago del mismo modo. Pero tengo el mismo problema. A la hora de restaurar me dice que el .mdf de la base de datos principal no se puede sobreescribir porque está siendo usado. Ayer probé a parar el servicio y tal ,pero nada.

     

    Wednesday, October 10, 2007 8:23 AM
  • El problema es que queda registrado el mismo nombre de base de datos. Yo lo hago un pelo más a saco.

     

     

    Paro motores, y hago un duplicado de los dos archivos de la base de datos que me interesa. Les pongo un nombre con alguna coletilla en plan "_pruebas" y tiro de la opción de adjuntar BBDD, mirando bien que las opciones de los nombres no se me hayan vuelto al nombre original.

     

    Yo asñi no tengo problemas.

     

    Salud y suerte!

     

    Wednesday, October 10, 2007 8:50 AM
  •  Toni Recio Escribió:

    El problema es que queda registrado el mismo nombre de base de datos. Yo lo hago un pelo más a saco.

     

     

    Paro motores, y hago un duplicado de los dos archivos de la base de datos que me interesa. Les pongo un nombre con alguna coletilla en plan "_pruebas" y tiro de la opción de adjuntar BBDD, mirando bien que las opciones de los nombres no se me hayan vuelto al nombre original.

     

    Yo asñi no tengo problemas.

     

    Salud y suerte!

     

     

    Y no habrá alguna forma de en el script especificarle otro nombre para que no intente pisarlo?

    Tu opción me parece un poco arriesgada y liosa para arriesgarse a meter la pata con algo tan importante como los datos reales de clientes. Hay mucho miedito... Big Smile

    Wednesday, October 10, 2007 9:44 AM
  • okis... a ver si conseguimos no pasar miedo pues...

     

    Mira en la ayuda de MSDN:

    http://msdn2.microsoft.com/en-us/library/aa238405(SQL.80).aspx

     

    Fíjate en el ejemplo "E". No te serviria?

     

    Salud y suerte!

     

    Wednesday, October 10, 2007 9:52 AM
  • Bueno, vamos a ver si lo solucionamos todo.

     

    Si te da el error es porque estás accediendo a la base de datos con el mismo usuario al que esta está asignado, con lo cual la conexión está abierta.

    Puedes darle permisos a otro usuario para que pueda hacer copias de seguridad y hacerlo con este o si no hay una opción(que ahora no recuerdo ) que cierra la conexión despues de consultar.

     

    En fin, ya nos cuentas a ver que tal.

     

    Un Saludo

     

    Wednesday, October 10, 2007 9:59 AM
  • Finalmente lo he hecho como dice Toni. Es un poco enfarragoso pero funciona. No debía ser problema de lo del usuario porque copiando el Mdf y el otoro, renombrando, y luego en la restauración especificando que ataque a los "sobreEscritos" funciona perféctamente. Eso si, es un rollo tener que estar parando el servicio renombrando, etc etc.

     

    Tiene que haber alguna forma distinta y más sencilla.

     

    Wednesday, October 10, 2007 10:23 AM
  •  

    Me alegro de que vaya entonces .

     

    Un Saludo

    Wednesday, October 10, 2007 10:29 AM
  • Si es que a grandes males...

     

     

    Pero oye, el script ese del ejemplo "E" no te ha funcionado? Parecía que te iba venir ni que pintado.

    Que problema te ha dado?

     

    Salud y suerte!

    Wednesday, October 10, 2007 10:45 AM