none
Restaurar una base de datos RRS feed

  • Pregunta

  • VOy a hacer simple la consulta tengo una base de datos a la cual con tsql ya pude generar un backup llamado base1.bak. 

    quiero restaurarla pero aplicando tsql de manera que cambie de nombre y pase a llamarse base2 ya que debo programar un job. Tengo que ejercutar el job mientras esta corriendo la base de datos base1

    si alguien me puede ayudar gracias sofi

    Yo uso:

    Restore Database  base2

    from disk = 'c:base1.bak'

    with file = 1, recovery, replace

    y me sale un error

    Mens 1834, Nivel 16, Estado 1, Procedimiento Restaurar, Línea 7
    No se puede sobrescribir el archivo 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Ejercicios.mdf'. Lo está utilizando la base de datos 'base1'.

    Mens 3156, Nivel 16, Estado 4, Procedimiento Restaurar, Línea 7
    El archivo 'Ejercicios' no se puede restaurar en 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Ejercicios.mdf'. Utilice WITH MOVE para identificar una ubicación válida para el archivo.

    Mens 1834, Nivel 16, Estado 1, Procedimiento Restaurar, Línea 7
    No se puede sobrescribir el archivo 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Ejercicios_log.ldf'. Lo está utilizando la base de datos 'base1'.

    Mens 3156, Nivel 16, Estado 4, Procedimiento Restaurar, Línea 7
    El archivo 'Ejercicios_log' no se puede restaurar en 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Ejercicios_log.ldf'. Utilice WITH MOVE para identificar una ubicación válida para el archivo.

    Mens 3119, Nivel 16, Estado 1, Procedimiento Restaurar, Línea 7
    Se identificaron problemas al planear la instrucción RESTORE. Los mensajes anteriores proporcionan detalles.

    Mens 3013, Nivel 16, Estado 1, Procedimiento Restaurar, Línea 7
    Fin anómalo de RESTORE DATABASE.


    Sofia


    • Editado Daniela_23 martes, 22 de diciembre de 2015 6:26
    martes, 22 de diciembre de 2015 5:39

Respuestas

  • El problema es que cuando haces un restore de un .bak, de manera predeterminada y mientras no digas lo contrario, te intenta restaurar los archivos a la misma ruta en disco y con el mismo nombre que tenían los ficheros cuando hiciste el backup. Pero claro, en esa ruta están los archivos de base1, que todavía está en uso, por lo que no puede poner ahí los archivos de base2.

    El remedio es añadir una cláusula "MOVE" al final del comando de backup, para decirle que lo restaure en una ruta distinta. Tendrás que leer el manual para ver la sintaxis exacta del MOVE, ya que no es algo sencillo de escribir a ojo y de memoria puesto que requiere escribir los nombres lógicos de los ficheros y las rutas físicas en las que quieres ubicarlos, acompañados de toda la puntuación correcta (paréntesis, comas y comillas) en los lugares adecuados. Te recomendaría hacerlo primero una vez desde Management Studio, rellenando en pantalla todas las opciones oportunas. Después pulsas el botón de "Script" para que te escriba la sentencia completa, y entonces ya te guardas la sentencia para usarla en el futuro.

    • Marcado como respuesta Daniela_23 martes, 22 de diciembre de 2015 8:18
    martes, 22 de diciembre de 2015 7:01