Devo eseguire il backup di 10-20 database di SQL Server 2008 R2 con dimensioni comprese tra 10-50 GB, mentre sono online e utilizzati contemporaneamente da un'unica app aziendale. Devo anche ripristinarli a uno stato ampiamente sincronizzato tra tutti i database (posso permettermi fino a qualche secondo di desincronizzazione tra i database). Lo scopo è acquisire dati di produzione per ambienti QA / DEV.
Vorrei fortemente non richiedere che i database funzionassero nel pieno recupero e trovare un metodo di backup dedicato alla cattura dei dati per gli ambienti di controllo qualità e che rimanga indipendente da un processo di backup principale che non è sotto il mio controllo.
Per i miei clienti, ci vorranno 1-2 ore per acquisire 20 backup completi a ~ 30 GB ciascuno. Ciò rende inaccettabile l'esecuzione di backup completi sequenzialmente, poiché i database sarebbero troppo desincronizzati durante l'esecuzione in un semplice ripristino.
Sto cercando un'idea migliore di queste:
IDEA 1: istantanea a livello SAN dei dischi VM. xcopy MDF / LDF dall'istantanea.
Una volta che i file copiati sono collegati a un'istanza del server diversa, il suo processo di recupero dovrebbe produrre database coerenti che sono istantaneamente quasi istantaneamente.
Googling around mi ha convinto che questa è una cattiva idea, almeno perché potrei ottenere desincronizzazione contro master / msdb / ecc.
IDEA 2: orchestra un backup complesso e sincronizza-ripristina su tutti i database
Ciò richiede che i database esigenti vengano eseguiti in pieno recupero, cosa che non desidero. Avviare backup paralleli per tutti i database ben prima della scadenza (T0). Una volta raggiunto T0, eseguire il backup di tutti i registri (dovrebbe richiedere al massimo alcuni minuti). Prendi la miriade di backup risultante e prova a ripristinarli e sposta i log in avanti / indietro per ottenere uno stato piuttosto coerente tra i database, rispetto a T0.
Ciò richiede molta pianificazione e scripting per utilizzarlo in modo affidabile, quindi farei di tutto per evitarlo.
Mi manca qualche altra soluzione?
PS1: Mi sarebbe piaciuto poter usare le istantanee di db . L'idea era di avviare un'istantanea su ciascun db (che dovrebbe essere finita in pochi secondi), quindi eseguire il backup completo di ciascuno in sequenza nei minuti / ore seguenti. Quindi ripristinali tutti su un altro server e ripristina ciascuno sull'istantanea. AFAIK questo scenario non è possibile perché non è possibile eseguire il backup degli snapshot insieme al database. Possono essere ripristinati solo sul posto, sul server in cui sono stati creati. Inoltre, richiedono Enterprise Edition che non ho per tutti i clienti.
PS2: se conosci una soluzione di terze parti in grado di produrre backup sincronizzati cross-db, menzionalo.