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

Le informazioni contenute in questo argomento interessano 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 online.

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 online il più rapidamente possibile. Infine, viene ripristinato e recuperato il filegroup secondario danneggiato B.

Sequenze di ripristino:

[!NOTA]

La sintassi di una sequenza di ripristino online è la stessa di una sequenza di ripristino offline.

  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 è online. Il recupero dei file nei filegroup A, B e C è in sospeso e questi filegroup sono offline.

  3. Eseguire un ripristino online 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à online.

    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 online. Il recupero dei file nel filegroup B è ancora in sospeso e questo filegroup è offline.

  4. Eseguire un ripristino online 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 roll forward di questi file.

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

    In questa fase tutti i filegroup sono online.

Esempi aggiuntivi

Vedere anche

Riferimento

BACKUP (Transact-SQL)

RESTORE (Transact-SQL)

Concetti

Ripristino in linea (SQL Server)

Applicazione dei backup di log delle transazioni (SQL Server)

Ripristini a fasi (SQL Server)