¿Alguna vez has necesitado copiar o duplicar una base de datos en SQL Server? Hay varios métodos que puedes utilizar para lograr esto, y en este artículo exploraremos los conceptos de adjunción y desadjunción de bases de datos.
Antes de adentrarnos en los detalles, es importante tener en cuenta que este artículo se centrará en el enfoque de “línea de comandos” utilizando Query Analyzer, en lugar de la funcionalidad de la interfaz gráfica de usuario (GUI). Esto es para proporcionar a los administradores de bases de datos (DBAs) un punto de referencia al que acudir cuando la GUI no está disponible.
Adjuntar una base de datos
Un método para copiar una base de datos es apagar la instancia de SQL Server, copiar los archivos de la base de datos y luego adjuntarlos en el servidor de destino. Este enfoque garantiza una copia limpia de la base de datos sin problemas, siempre y cuando la copia y los procesos de destino hayan sido exitosos.
Si no es deseable apagar la instancia de SQL Server, también puedes optar por poner la base de datos sin conexión. Esto te permite copiar los archivos de la base de datos a un nuevo servidor y adjuntarlos nuevamente. Es importante tener en cuenta que las sesiones de usuario no se desconectarán durante este proceso.
Otra opción es desadjuntar la base de datos de la base de datos maestra y de la instancia de SQL Server. Esto elimina completamente la base de datos y requiere que todas las sesiones de usuario se desconecten y que la replicación se desactive antes de que se pueda iniciar el proceso de desadjunción.
Corrigiendo usuarios huérfanos
Cuando copias o desadjuntas una base de datos, es importante tener en cuenta que los inicios de sesión no se incluyen en el proceso. La información de inicio de sesión se almacena en la base de datos maestra. Por lo tanto, después de adjuntar o volver a adjuntar una base de datos, es posible que debas corregir los inicios de sesión huérfanos. Esto se puede hacer utilizando el comando sp_change_users_login.
Verificación de archivos antes de adjuntar
Antes de adjuntar una base de datos, es una buena práctica verificar los archivos asociados con la base de datos. Puedes utilizar el comando dbcc checkprimaryfile para obtener información sobre el archivo de datos del grupo de archivos primario, como el tipo de archivo, el nombre de la base de datos, la versión, la intercalación y una lista de todos los archivos asociados con la base de datos.
Adjuntar una base de datos
Para adjuntar una base de datos, puedes utilizar el comando sp_attach_db. Este comando te permite especificar el nombre de la base de datos y sus archivos de base de datos asociados. La base de datos que se adjunta no debe existir previamente y debe haberse cerrado correctamente antes del proceso de adjunción.
Si solo tienes el archivo de datos maestro inicial de la base de datos, puedes utilizar el comando sp_attach_single_file_db. Este comando adjunta automáticamente cualquier otro archivo de datos asociado con la base de datos. Sin embargo, no proporciona control sobre el destino de los archivos.
Conclusiones
En este artículo, hemos explorado los conceptos de adjunción y desadjunción de bases de datos en SQL Server. Hemos discutido diferentes métodos para copiar una base de datos y la importancia de corregir los inicios de sesión huérfanos después del proceso. Además, hemos cubierto los pasos para verificar los archivos antes de adjuntar una base de datos y los comandos a utilizar para adjuntar una base de datos.
Al comprender estos conceptos y comandos, los DBAs pueden realizar operaciones de copia de bases de datos y administrar las adjunciones y desadjunciones de bases de datos de manera eficiente.