Compartir a través de


Adjuntar y separar bases de datos (SQL Server)

Los archivos de datos y de registro de transacciones de una base de datos se pueden desasociar y, a continuación, volver a asociarse a la misma instancia de SQL Server. La desasociación y asociación de una base de datos es útil si desea cambiar la base de datos a una instancia diferente de SQL Server en el mismo equipo o para mover la base de datos.

El formato de almacenamiento en disco SQL Server es el mismo en los entornos de 64 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.

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.

Importante

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 de 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.

Separar una base de datos

Al separar una base de datos, se quita de la instancia de SQL Server pero queda intacta en sus archivos de datos y en los archivos de registro de transacciones. Estos archivos se pueden usar para adjuntar la base de datos a cualquier instancia de SQL Server, incluido el servidor del que se desasocia la base de datos.

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 usar 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 Quitar 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. 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 sobre cómo colocar 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.

Adjuntar una base de datos

Puede adjuntar una base de datos SQL Server copiada o desasociada. Al adjuntar una instancia de servidor de SQL Server 2014, los archivos de catálogo se adjuntan desde 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.

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 adjunta es de solo lectura, el motor de base de datos asume que la base de datos es de solo lectura.

Cuando una base de datos cifrada se adjunta por primera vez a una instancia de SQL Server, el propietario de la base de datos debe abrir la clave maestra de la 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 adjunta es de solo lectura, el SQL Server no puede actualizar la ubicación del registro almacenada en el archivo principal.

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 más información sobre 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 sobre 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

Importante

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, consulte Administración de los metadatos cuando una base de datos pasa a estar disponible en otro servidor (SQL Server).

Related Tasks

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

Consulte también

Archivos y grupos de archivos de base de datos