Estoy trabajando en la configuración de una copia de desarrollo de una base de datos de producción en SQL Server 2008 R2 SP1. Actualmente, dos desarrolladores utilizan ligeramente la base de datos en vivo para consultas de solo lectura, pero la nueva base de datos también tendrá actualizaciones.
Dado que la base de datos es de 2.1TB y tardó un total de 3 días en restaurar y actualizar a la última compilación que necesitamos para probar, mi plan original era crear un nuevo conjunto de archivos de respaldo y luego restaurar desde esos archivos. Esto me permitiría crear la copia de desarrollo de la base de datos en la misma instancia y máquina SQL, sin tener que desconectar la base de datos actual.
Sin embargo, para ahorrar un par de esos días, estaba pensando que podría ser una buena idea copiar los archivos de la base de datos física y adjuntar la nueva copia de la base de datos. Lamentablemente, cuando intento copiar, aparece un error que hace referencia al bloqueo que SQL Server pone en esos archivos.
Dado que no puedo desconectar la base de datos para nada más que transferir los archivos de registro (puedo terminar esto antes de que la gente entre por la mañana), ¿hay alguna forma de copiar los archivos de la base de datos en vivo sin poner la base de datos en un estado fuera de línea? ¿O debería esperar hasta que la gente se vaya a casa para hacer eso?
fuente
No, tendrá que desconectarlo para copiar los archivos. Si tiene su base de datos dividida en archivos / grupos de archivos más pequeños, podría ayudar a hacer que la restauración de la copia de seguridad sea más rápida después de haberla hecho una vez (dependiendo de qué datos están cambiando y qué datos se necesitan para la copia de desarrollo).
fuente
He visto las otras respuestas y tienen mucho sentido. Sin embargo, solo para responder a su pregunta, ciertamente puede copiar archivos de base de datos sin desconectar la base de datos. Deberá usar la programación SMO para este propósito. Mira esto: http://technet.microsoft.com/en-us/library/ms162175(v=sql.100).aspx
Tenga en cuenta que el enlace proporcionado es a objetos de programación SMO generales y no una respuesta específica a esta pregunta. Todavía no lo he hecho, pero pronto voy a intentarlo y les haré saber a todos (si recuerdo) lo que descubrí.
fuente
Si.
Todo lo que tiene que hacer es configurar la base de datos en solo lectura:
Correr:
Copie los archivos de la base de datos: MDF, LDF, etc. a su nuevo destino
Una vez que se realiza la copia, puede separar y volver a adjuntar en la nueva ubicación. Solo asegúrese de restablecer la opción de solo lectura y de que está utilizando la misma cuenta de usuario al manipular estos archivos. Además, es posible que desee eliminar los archivos antiguos después del traslado.
Otro método
Una vez que los archivos se hayan copiado correctamente (paso 2 anterior):
Puede configurar la base de datos en:
Single_User
modo y luego:Correr:
D:\
siendo la nueva ubicaciónAsegúrese de que los archivos de datos en la nueva ubicación (
D:\
) tengan acceso completo a la cuenta de servicio que ejecuta SQL Server.Reiniciar los servicios SQL
Correr:
¡Hecho!
fuente