Adjuntar y separar bases de datos (SQL Server)

Los archivos de registro de datos y transacciones de una base de datos se pueden desasociar y volverse a adjuntar posteriormente a la misma instancia u otra instancia de SQL Server. Separar y adjuntar una base de datos es útil si desea cambiar la base de datos a otra instancia de SQL Server en el mismo equipo o si desea mover la base de datos.

El formato de almacenamiento en disco de SQL Server es el mismo en los entornos de 64 bits y 32 bits. Por lo tanto, la operación de adjuntar funciona en entornos de 32 bits y de 64 bits. Una base de datos desasociada de una instancia del servidor que se ejecute en un entorno puede adjuntarse a una instancia del servidor que se ejecute en otro entorno.

En este tema:

  • Seguridad

  • Separar una base de datos

  • Adjuntar una base de datos

  • Tareas relacionadas

Seguridad

Los permisos de acceso a archivos se establecen durante una serie de operaciones de base de datos, incluidas las operaciones de desasociar o adjuntar una base de datos.

Nota de seguridadNota de seguridad

Se recomienda no adjuntar ni restaurar bases de datos de orígenes desconocidos o que no sean de confianza. Es posible que dichas bases de datos contengan código malintencionado que podría ejecutar código Transact-SQL no deseado o provocar errores al modificar el esquema o la estructura de la base de datos física. Para usar una base de datos desde un origen desconocido o que no sea de confianza, ejecute DBCC CHECKDB en la base de datos de 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.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Separar una base de datos

Al separar una base de datos, la está quitando de la instancia de SQL Server, pero la deja intacta en sus archivos de datos y en los archivos de registro de transacciones. Estos archivos pueden utilizarse después para adjuntar la base de datos a cualquier instancia de SQL Server, incluido el servidor del que se separó.

No podrá separar una base de datos si se cumple cualquiera de las condiciones siguientes:

  • La base de datos está replicada y publicada. Si está replicada, la base de datos no debe estar publicada. Antes de separarla, debe deshabilitar la publicación ejecutando sp_replicationdboption.

    [!NOTA]

    Si no puede utilizar sp_replicationdboption, puede quitar la replicación ejecutando sp_removedbreplication.

  • Existe una instantánea de base de datos en la base de datos.

    Para poder separar la base de datos, debe quitar todas sus instantáneas. Para obtener más información, vea Eliminar una instantánea de base de datos (Transact-SQL).

    [!NOTA]

    No puede separar ni adjuntar una instantánea de base de datos.

  • Se va a reflejar la base de datos en una sesión de creación de reflejo de la base de datos.

    No se puede separar la base de datos a menos que se termine la sesión. Para obtener más información, vea Quitar la creación de reflejo de la base de datos (SQL Server).

  • La base de datos es sospechosa. En SQL Server 2005 y versiones posteriores, una base de datos sospechosa no puede ser separada. Antes de poder separarla, debe ponerla en modo de emergencia. Para obtener más información acerca de cómo poner una base de datos en modo de emergencia, vea ALTER DATABASE (Transact-SQL).

  • La base de datos es una base de datos del sistema.

Hacer copias de seguridad y restauración, y separar

Al separar una base de datos de solo lectura se pierde información acerca de las bases diferenciales de las copias de seguridad diferenciales. Para obtener más información, vea Copias de seguridad diferenciales (SQL Server).

Responder a errores de separación

Los errores generados durante la separación de una base de datos pueden impedir que la base de datos se cierre sin problemas y que se vuelva a generar el registro de transacciones. Si recibe un mensaje de error, realice las siguientes acciones correctoras:

  1. Vuelva a adjuntar todos los archivos asociados a la base de datos, no solo el archivo principal.

  2. Resuelva el problema que causó el mensaje de error.

  3. Vuelva a separar la base de datos.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Adjuntar una base de datos

Puede adjuntar una base de datos de SQL Server copiada o separada. Al adjuntar una base de datos de SQL Server 2005 que contiene los archivos de catálogo de texto completo a una instancia del servidor de SQL Server 2012, los archivos de catálogo se adjuntan de su ubicación anterior junto con los demás archivos de base de datos, igual que en SQL Server 2005. Para obtener más información, vea Actualizar la búsqueda de texto completo desde SQL Server 2005.

Al adjuntar una base de datos, todos los archivos de datos deben estar disponibles (archivos MDF y NDF). Si algún archivo de datos tiene una ruta de acceso diferente a la que tenía cuando se creó la base de datos o cuando ésta se adjuntó por última vez, debe especificar la ruta actual.

[!NOTA]

Si el archivo de datos principal que se va a adjuntar es de solo lectura, Motor de base de datos considera que la base de datos es de solo lectura.

Cuando se adjunta una base de datos cifrada a una instancia de SQL Server por primera vez, el propietario debe abrir la clave maestra de esa base de datos ejecutando la siguiente instrucción: OPEN MASTER KEY DECRYPTION BY PASSWORD = 'password'. Se recomienda habilitar el descifrado automático de la clave maestra mediante la ejecución de la siguiente instrucción: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY. Para obtener más información, vea CREATE MASTER KEY (Transact-SQL) y ALTER MASTER KEY (Transact-SQL).

Las condiciones para adjuntar archivos de registro dependen, en parte, de si la base de datos es de lectura y escritura o de solo lectura. Vea a continuación:

  • Para una base de datos de lectura y escritura, normalmente, podrá adjuntar un archivo de registro a una ubicación nueva. Sin embargo, en algunos casos, para volver a adjuntar una base de datos son necesarios sus archivos de registro. Por tanto, es importante mantener siempre todos los archivos de registro separados hasta que la base de datos se haya adjuntado correctamente sin ellos.

    Si una base de datos de lectura y escritura contiene solo un archivo de registro y no se especifica una ubicación nueva para el mismo, al adjuntar la base de datos se buscará el archivo en la ubicación antigua. Si se encuentra, se usará el archivo de registro antiguo, sin tener en cuenta si la base de datos se cerró correctamente. No obstante, si el archivo de registro antiguo no se encuentra, la base de datos se cerró correctamente y no hay ninguna cadena de registros activa, al adjuntar se intentará crear un archivo de registro nuevo para la base de datos.

  • Si el archivo de datos principal que se va a adjuntar es de solo lectura, Motor de base de datos considera que la base de datos es de solo lectura. Para una base de datos de solo lectura, los archivos de registro deben estar disponibles en la ubicación especificada en el archivo principal de la base de datos. No se puede compilar un archivo de registro nuevo porque SQL Server no puede actualizar la ubicación del registro almacenada en el archivo principal.

En esta sección:

  • Cambios en los metadatos al adjuntar una base de datos

  • Hacer copias de seguridad y restauración, y adjuntar

  • Adjuntar una base de datos a otra instancia de servidor

Cambios en los metadatos al adjuntar una base de datos

Cuando se separa y se vuelve a adjuntar una base de datos de solo lectura, se pierde la información de copia de seguridad acerca de la base diferencial. La base diferencial es la copia de seguridad más reciente de todos los datos de una base de datos o de un subconjunto de archivos o grupos de archivos de la misma. Sin la información de la copia de seguridad básica, la base de datos maestra deja de estar sincronizada con la base de datos de solo lectura, de modo que las copias de seguridad diferenciales tomadas después pueden proporcionar resultados inesperados. Por lo tanto, si utiliza copias de seguridad diferenciales con una base de datos de solo lectura, deberá establecer una nueva base diferencial actual realizando una copia de seguridad completa después de volver a adjuntar la base de datos. Para obtener información sobre las copias de seguridad diferenciales, vea Copias de seguridad diferenciales (SQL Server).

Al adjuntar, la base de datos se inicia. Normalmente, al adjuntar una base de datos, esta vuelve al mismo estado en el que estaba cuando fue separada o copiada. Sin embargo, las operaciones de adjuntar y separar deshabilitan el encadenamiento de propiedades entre bases de datos para la base de datos. Para obtener información acerca de cómo habilitar el encadenamiento, vea cross db ownership chaining (opción de configuración del servidor). Asimismo, TRUSTWORTHY se establece en OFF siempre que la base de datos se adjunta. Para obtener información acerca de cómo establecer TRUSTWORTHY en ON, vea ALTER DATABASE (Transact-SQL).

Hacer copias de seguridad y restauración, y adjuntar

Al igual que cualquier base de datos que esté total o parcialmente sin conexión, no es posible adjuntar una base de datos con archivos que se estén restaurando. Puede adjuntar la base de datos si detiene la secuencia de restauración. Posteriormente, puede reiniciar la secuencia de restauración.

Adjuntar una base de datos a otra instancia de servidor

Nota importanteImportante

Una base de datos creada por una versión más reciente de SQL Server no puede adjuntarse en versiones anteriores.

Al adjuntar una base de datos a otra instancia de servidor, es posible que tenga que volver a crear una parte o la totalidad de los metadatos de la base de datos, por ejemplo los inicios de sesión y los trabajos, en la otra instancia de servidor; de este modo se proporciona una experiencia coherente a usuarios y aplicaciones. Para obtener más información, vea Administrar los metadatos cuando una base de datos pasa a estar disponible en otra instancia de servidor (SQL Server).

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Tareas relacionadas

Para separar una base de datos

Para adjuntar una base de datos

Para actualizar una base de datos mediante el método de separar y adjuntar

Para mover una base de datos mediante el método de separar y adjuntar

Para eliminar una instantánea de base de datos

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Vea también

Conceptos

Archivos y grupos de archivos de base de datos