2010-05-26 9 views
6

I backup sql vengono copiati dal server A al server B ogni notte.Difficoltà nel ripristino di un backup differenziale in SQL Server, sono previste 2 famiglie di supporti o nessun file pronto per il rollforward

Vogliamo spostare il server sql dal server A al server B senza tempi di inattività, ma i file sono molto grandi.

Supponevo che l'esecuzione di un backup differenziale e il ripristino avrebbero risolto il problema con i database.

  1. copia di backup completa dal server A per copiare al server B (10 + GB)
  2. Aprire SQL Server Management Studio nel server B
  3. destro del mouse sul database
  4. ripristinare database
  5. Digitare il nuovo nome DB
  6. Scegliere "Da dispositivo" e accedere al file di backup
  7. Fare clic su OK. Questo ora sta facendo ricorso al backup "completo" originale.
  8. testare nuovi db con l'applicazione dev - tutto funziona :)
  9. Su destromouse database originale sul DB> le attività> Backup ...
  10. Backup Type = differenziale, Backup su disco, aggiungere un nuovo file, e rimuovere la vecchio (ha bisogno di essere un piccolo file da trasferire per il più piccolo ammontare di interruzione)
  11. copiare il backup diff sul nuovo db
  12. destro del mouse sul dB> le attività> Ripristina> Database

Questo è dove mi blocco. Se aggiungo sia il nuovo file differenziale e il backup originale per il processo di ripristino ottengo un errore

The media loaded on "M:\path\to\backup\full.bak" is formatted to support 1 media families, but 2 media families are expected according to the backup device specification. 
RESTORE HEADERONLY is terminating abnormally. 

Ma se provo a ripristinare utilizzando solo il file differenziale ottengo

System.Data.SqlClient.SqlError: The log or differential backup cannot be restored because no files are ready to rollforward. (Microsoft.SqlServer.Smo) 

Qualsiasi idea come farlo? Esiste un modo migliore per ripristinare i backup con tempi di inattività limitati?

+0

serverfault.com –

+0

BTW, 10 GB non è molto grande ... –

risposta

5

Vedi 2008 documentazione in linea Esecuzione di un ripristino completo del database per i dettagli e il codice.

Probabilmente l'errore è causato da backup sia completi che differenziali che tentano di essere ripristinati contemporaneamente dalle specifiche del dispositivo di backup (potrebbe essere necessario modificarlo).

fare loro uno alla volta (idea di base):

Crea backup tail_log.

Ripristino completo prima, con NORECOVERY.

Ripristino differenziale, con NORECOVERY.

Registro di ripristino, con NORECOVERY.

Ripristina tail_log, con NORECOVERY.

Quindi, al termine, Ripristina con RECUPERO.