Esempio: Ripristino a fasi di un numero limitato di filegroup (modello di recupero con registrazione completa)

 Le informazioni contenute in questo argomento sono rilevanti per i database di SQL Server basati sul modello di recupero con registrazione completa che includono più file o filegroup.

Una sequenza di ripristino a fasi consente di ripristinare e recuperare un database in varie fasi a livello di filegroup, a partire dal filegroup primario e tutti i filegroup secondari di lettura/scrittura.

In questo esempio un database denominato adb, che utilizza il modello di recupero con registrazione completa, contiene tre filegroup. Il filegroup A è di lettura/scrittura, mentre i filegroup B e C sono di sola lettura. Inizialmente, tutti i filegroup sono in linea.

Il filegroup primario e il filegroup B del database adb risultano danneggiati. Il filegroup primario è di dimensioni limitate ed è possibile ripristinarlo rapidamente. L'amministratore del database decide di ripristinare i filegroup utilizzando una sequenza di ripristino a fasi. Innanzitutto, il filegroup primario e i log delle transazioni successivi vengono ripristinati e il database recuperato.

I filegroup integri A e C includono dati di importanza critica. Verranno pertanto recuperati e resi disponibili in linea il più rapidamente possibile. Infine, viene ripristinato e recuperato il filegroup secondario danneggiato B.

Sequenze di ripristino:

  1. Creare un backup della parte finale del log per il database adb. Questo passaggio è fondamentale per fare in modo che i filegroup integri A e C vengano aggiornati rispetto al punto di recupero del database.

    BACKUP LOG adb TO tailLogBackup WITH NORECOVERY
    
  2. Eseguire un ripristino parziale del filegroup primario.

    RESTORE DATABASE adb FILEGROUP='Primary' FROM backup 
    WITH PARTIAL, NORECOVERY
    RESTORE LOG adb FROM backup1 WITH NORECOVERY
    RESTORE LOG adb FROM backup2 WITH NORECOVERY
    RESTORE LOG adb FROM backup3 WITH NORECOVERY
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY
    

    In questa fase il filegroup primario è in linea. Il recupero dei file nei filegroup A, B e C è in sospeso e questi filegroup non sono in linea.

  3. Eseguire un ripristino in linea dei filegroup A e C.

    Non è necessario ripristinare questi filegroup da un backup poiché i dati in essi contenuti non sono danneggiati, ma è necessario recuperarli per attivare la modalità in linea.

    L'amministratore del database recupera A e C immediatamente.

    RESTORE DATABASE adb FILEGROUP='A', FILEGROUP='C' WITH RECOVERY
    

    A questo punto il filegroup primario e i filegroup A e C sono in linea. Il recupero dei file nel filegroup B è ancora in sospeso e questo filegroup non è in linea.

  4. Eseguire un ripristino in linea del filegroup B.

    I file nel filegroup B vengono ripristinati in un qualsiasi momento successivo.

    Nota

    Il backup del filegroup B è stato eseguito dopo che il filegroup è diventato di sola lettura, quindi non è necessario eseguire il rollforward di questi file.

    RESTORE DATABASE adb FILEGROUP='B' FROM backup WITH RECOVERY
    

    In questa fase tutti i filegroup sono in linea.