none
Base De Datos: Clonar Una Base De Datos RRS feed

  • Pregunta

  • SQL Server 2008 R2

    Hola a todos

    Para hacer determinadas pruebas, se ha de utilizar una Copia "Clonada" (es decir idéntica en toda su estructura) de la Base De Datos de Gestión de una Empresa.

    Para tal propósito se utiliza la Opción Tareas / Exportar datos... que muestra un Asistente en el cual, luego de configurar el Origen y Destino de la Base De Datos "clonada" se selecciona la Opción Copiar los datos de una o varias tablas o vistas..., pero al terminar el Asistente se muestra en la Carpeta Tablas de la Base De Datos "clonada", las Tablas Originales, pero además las Vistas "transformadas" en Tablas Comunes.

    Por otra parte, también se pierde la Configuración de las Tablas Originales en el sentido de que no se mantienen las Claves Primarias como tales y queda desactivada la Identidad para la generación de las Claves Primarias.

    ¿Cómo corregir estos errores o cuál es el Procedimiento Correcto para realmente Clonar una Base De Datos en Otra con Idéntica Estructura y Configuración?

    Desde ya Muchísimas Gracias


    Skar.2007

    miércoles, 29 de julio de 2015 5:11

Respuestas

  • Que tal,

    Debo comentarte que una vez que hagas una Copia de Seguridad (Backup), la restaures en la nueva Base de Datos y te recomiendo uses la sentencia WITH REPLACE, esta reemplaza el Backup con toda la estructura en la nueva Base de datos sin importar el nombre o la estructura que tenga el destino.

    Prueba así:

    USE master
    GO

    DECLARE @SQL varchar(max)
    SET @SQL = ''
    SELECT @SQL = @SQL + 'Kill ' + Convert(varchar, SPId) + ';'
    FROM MASTER..SysProcesses
    WHERE DBId = DB_ID(TuBBDDTest) AND SPId <> @@SPId
    --Eliminamos posibles conexiones
    EXEC(@SQL)

    --Restauramos
    RESTORE DATABASE TuBBDDTest FROM DISK='\\Ruta\TuBBDD.bak' WITH REPLACE

    GO


    Saludos!


    Ayacucho - Perú
    Recuerda si mi solución atiende tu consulta por favor márcala como útil y como respuesta.

    http://litigiouslobo.blogspot.com/
    El Blog de Herbert Mendoza

    miércoles, 29 de julio de 2015 15:36

Todas las respuestas

  • Hola Skar.2007,

    Lo más fácil que puedes hacer es realizar una copia de seguridad o respaldo sobre la base de datos a copiar y luego en el servidor SQL Server destino restaurar la copia de seguridad. Con ese procedimiento obtendrás una copia de los objetos y de los datos de la base de datos.

    Para realizar una copia de seguridad debes seleccionar la base de datos origen, clic derecho y seleccionar Tareas > Copia de seguridad. Para restaurar la base de datos sobre el servidor destino, clic derecho sobre el nodo Bases de datos y seleccionar Restaurar base de datos.

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ


    miércoles, 29 de julio de 2015 5:32
  • Lo mejor es realizar una copia de seguridad y restaurarla en el destino, te evitaras de muchos problemas.
    miércoles, 29 de julio de 2015 14:42
  • Que tal,

    Debo comentarte que una vez que hagas una Copia de Seguridad (Backup), la restaures en la nueva Base de Datos y te recomiendo uses la sentencia WITH REPLACE, esta reemplaza el Backup con toda la estructura en la nueva Base de datos sin importar el nombre o la estructura que tenga el destino.

    Prueba así:

    USE master
    GO

    DECLARE @SQL varchar(max)
    SET @SQL = ''
    SELECT @SQL = @SQL + 'Kill ' + Convert(varchar, SPId) + ';'
    FROM MASTER..SysProcesses
    WHERE DBId = DB_ID(TuBBDDTest) AND SPId <> @@SPId
    --Eliminamos posibles conexiones
    EXEC(@SQL)

    --Restauramos
    RESTORE DATABASE TuBBDDTest FROM DISK='\\Ruta\TuBBDD.bak' WITH REPLACE

    GO


    Saludos!


    Ayacucho - Perú
    Recuerda si mi solución atiende tu consulta por favor márcala como útil y como respuesta.

    http://litigiouslobo.blogspot.com/
    El Blog de Herbert Mendoza

    miércoles, 29 de julio de 2015 15:36