Necesito hacer una copia de seguridad de 10-20 bases de datos SQL Server 2008 R2 con tamaños entre 10-50 GB, mientras están en línea y se usan simultáneamente por una sola aplicación empresarial. También necesito restaurarlos a un estado que esté sincronizado en gran medida en todas las bases de datos (puedo permitirme unos segundos de desincronización entre bases de datos). El propósito es capturar datos de producción para entornos QA / DEV.
Me gustaría no exigir que las bases de datos se ejecuten en recuperación total y proponer un método de respaldo que esté dedicado a capturar datos para entornos de control de calidad y que sea independiente de un proceso de respaldo principal que no esté bajo mi control.
Para mis clientes, tomará 1-2 horas capturar 20 copias de seguridad completas a ~ 30 GB cada una. Esto hace que la realización de copias de seguridad completas sea secuencialmente inaceptable, ya que las bases de datos estarían demasiado desincronizadas cuando se ejecuten en una recuperación simple.
Estoy buscando una idea mejor que estas:
IDEA 1: instantánea de nivel de SAN de discos VM. xcopy MDF / LDF de la instantánea.
Una vez que los archivos copiados se adjuntan a una instancia de servidor diferente, su proceso de recuperación debería producir bases de datos consistentes que son instantáneas casi simultáneamente.
Buscar en Google me convenció de que esta es una mala idea, al menos porque puedo obtener desincronización vs. master / msdb / etc.
IDEA 2: orquesta una copia de seguridad compleja y restauración de sincronización en todas las bases de datos
Esto requiere que las bases de datos exigentes se ejecuten en recuperación completa, lo que no quiero. Inicie copias de seguridad paralelas para todas las bases de datos mucho antes de la fecha límite (T0). Una vez que se alcanza T0, haga una copia de seguridad de todos los registros (debería tomar como máximo unos minutos). Tome la miríada de copias de seguridad resultantes e intente restaurarlas y avance los registros hacia adelante / atrás para obtener un estado algo consistente en las bases de datos, en relación con T0.
Esto requiere mucha planificación y secuencias de comandos para que se use de manera confiable, por lo que haría todo lo posible para evitarlo.
¿Me estoy perdiendo alguna otra solución?
PS1: Me hubiera encantado poder usar instantáneas db . La idea era iniciar una instantánea en cada base de datos (que debería terminar en segundos), luego hacer una copia de seguridad completa de cada secuencia secuencialmente durante los siguientes minutos / horas. Luego restaure todos en un servidor diferente y revierta cada uno a la instantánea. AFAIK este escenario no es posible porque no se pueden hacer copias de seguridad de las instantáneas junto con la base de datos. Solo se pueden revertir en su lugar, en el servidor donde se crearon. Además, requieren Enterprise Edition, que no tengo para todos los clientes.
PS2: si conoce una solución de terceros capaz de producir copias de seguridad sincronizadas cross-db, por favor menciónela.