Preciso fazer backup de 10 a 20 bancos de dados do SQL Server 2008 R2 com tamanhos entre 10 e 50 GB, enquanto estiverem online e usados simultaneamente por um único aplicativo corporativo. Também preciso restaurá-los para um estado que seja amplamente sincronizado em todos os bancos de dados (eu posso permitir alguns segundos de dessincronização entre os bancos de dados). O objetivo é capturar dados de produção para ambientes QA / DEV.
Eu gostaria muito de não exigir bancos de dados executados em recuperação total e criar um método de backup dedicado à captura de dados para ambientes de controle de qualidade e que permaneça independente de um processo de backup principal que não esteja sob meu controle.
Para meus clientes, levará de 1 a 2 horas para capturar 20 backups completos com ~ 30 GB cada. Isso faz com que os backups completos sequencialmente sejam inaceitáveis, pois os bancos de dados seriam dessincronizados demais ao serem executados em recuperação simples.
Estou procurando uma ideia melhor do que estas:
IDÉIA 1: Instantâneo no nível da SAN dos discos da VM. xcopy MDFs / LDFs do instantâneo.
Depois que os arquivos copiados são anexados a uma instância de servidor diferente, seu processo de recuperação deve produzir bancos de dados consistentes que são capturados instantaneamente praticamente ao mesmo tempo.
Pesquisando ao redor me convenceu de que é uma má idéia, pelo menos porque posso ter dessincronização versus master / msdb / etc.
IDEA 2: orquestrar um backup complexo e restaurar a sincronização em todos os bancos de dados
Isso exige que os bancos de dados exigentes sejam executados em recuperação completa, o que não desejo. Inicie backups paralelos para todos os bancos de dados bem antes do prazo final (T0). Quando T0 for alcançado, faça backup de todos os logs (deve levar no máximo alguns minutos). Faça a miríade de backups resultante e tente restaurá-los e rolar os logs para frente / trás para obter um estado um tanto consistente nos bancos de dados, em relação ao T0.
Isso requer muito planejamento e script para usá-lo de maneira confiável, para que eu me esforce ao máximo para evitá-lo.
Estou perdendo alguma outra solução?
PS1: Eu adoraria poder usar instantâneos de banco de dados . A idéia era iniciar um instantâneo em cada banco de dados (que deveria terminar em segundos) e fazer backup completo de cada um sequencialmente nos minutos / horas seguintes. Em seguida, restaure todos eles em um servidor diferente e reverta cada um para o instantâneo. AFAIK neste cenário não é possível porque não é possível fazer backup dos instantâneos junto com o banco de dados. Eles só podem ser revertidos no local, no servidor em que foram criados. Além disso, eles exigem o Enterprise Edition, que não tenho para todos os clientes.
PS2: Se você conhece uma solução de terceiros capaz de produzir backups sincronizados entre db, mencione-a.