Compartir a través de


Mover una base de datos mediante separar y adjuntar (Transact-SQL)

En este tema se describe cómo mover una base de datos desasociada a otra ubicación y volver a adjuntarla a la misma instancia de servidor o a otra en SQL Server 2014. Sin embargo, recomendamos mover las bases de datos utilizando el procedimiento de reubicación planificada de ALTER DATABASE, en lugar de usar desasociar y adjuntar. Para obtener más información, vea Mover bases de datos de usuario.

Importante

Se recomienda no adjuntar ni restaurar bases de datos de orígenes desconocidos o que no son de confianza. Es posible que dichas bases de datos contengan código malintencionado que podría ejecutar código de Transact-SQL no deseado o provocar errores al modificar el esquema o la estructura de la base de datos física. Antes de usar una base de datos de un origen desconocido o que no es de confianza, ejecute DBCC CHECKDB en la base de datos en un servidor que no sea de producción y examine también el código, como procedimientos almacenados u otro código definido por el usuario, en la base de datos.

Procedimiento

Para mover una base de datos mediante desasociación y asociación

  1. Separe la base de datos. Para obtener más información, vea Desconectar una base de datos.

  2. En una ventana del Explorador de Windows o del símbolo del sistema, mueva el archivo o archivos de base de datos desasociados y el archivo o archivos de registro a la nueva ubicación.

    Nota:

    Para mover una base de datos de un solo archivo, puede usar el correo electrónico si el tamaño del archivo es lo suficientemente pequeño como para que el correo electrónico se adapte.

    Debe mover los archivos de registro incluso si piensa crear nuevos archivos de registro. En algunos casos, volver a asociar una base de datos requiere sus archivos de registro existentes. Por lo tanto, mantenga siempre todos los archivos de registro desasociados hasta que la base de datos se haya adjuntado correctamente sin ellos.

    Nota:

    Si intenta adjuntar la base de datos sin especificar el archivo de registro, la operación de asociación buscará el archivo de registro en su ubicación original. Si todavía existe una copia del registro en la ubicación original, esa copia se adjunta. Para evitar usar el archivo de registro original, especifique la ruta de acceso del nuevo archivo de registro o quite la copia original del archivo de registro (después de copiarlo en la nueva ubicación).

  3. Adjunte los archivos copiados. Para obtener más información, consulte Attach a Database.

Ejemplo

En el siguiente ejemplo, se crea una copia de las instrucciones Transact-SQL, que se ejecutan en una ventana del Editor de consultas conectada a la instancia del servidor.

  1. Desasocie las instrucciones Transact-SQL:

    USE master;  
    GO  
    EXEC sp_detach_db @dbname = N'AdventureWorks2012';  
    GO  
    
  2. Con el método que prefiera, copie los archivos de base de datos (AdventureWorks208R2_Data.mdf y AdventureWorks208R2_log) en: C:\MySQLServer\AdventureWorks208R2_Data.mdf y C:\MySQLServer\AdventureWorks208R2_Log.ldf, respectivamente.

    Importante

    Para una base de datos de producción, coloque la base de datos y el registro de transacciones en discos independientes.

    Para copiar archivos a través de la red en un disco de un equipo remoto, use el nombre de la convención de nomenclatura universal (UNC) de la ubicación remota. Un nombre UNC toma el formato \\NombreServidor\NombreRecursoCompartido\Ruta\NombreDeArchivo. Al igual que con la escritura de archivos en el disco duro local, se deben conceder los permisos adecuados necesarios para leer o escribir en un archivo del disco remoto a la cuenta de usuario utilizada por la instancia de SQL Server.

  3. Adjunte la base de datos movida y, opcionalmente, su registro ejecutando las siguientes instrucciones Transact-SQL:

    USE master;  
    GO  
    CREATE DATABASE MyAdventureWorks   
        ON (FILENAME = 'C:\MySQLServer\AdventureWorks2012_Data.mdf'),  
        (FILENAME = 'C:\MySQLServer\AdventureWorks2012_Log.ldf')  
        FOR ATTACH;  
    GO  
    

    En SQL Server Management Studio, una base de datos recién adjunta no está visible inmediatamente en el Explorador de objetos. Para ver la base de datos, en el Explorador de objetos, haga clic en Ver y, a continuación, en Actualizar. Cuando el nodo Bases de datos se expande en el Explorador de objetos, la base de datos recién adjunta aparece ahora en la lista de bases de datos.

Véase también

Adjuntar y separar bases de datos (SQL Server)