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

Si applica a:SQL Server

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 è in 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 log_backup1 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup2 WITH NORECOVERY  
    RESTORE LOG adb FROM log_backup3 WITH NORECOVERY  
    RESTORE LOG adb FROM tailLogBackup WITH RECOVERY  
    

    In questa fase il filegroup primario è online. Il recupero dei file nei filegroup A, Be 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

Vedi anche

BACKUP (Transact-SQL)
Ripristino in linea (SQL Server)
Applicare backup di log delle transazioni (SQL Server)
RESTORE (Transact-SQL)
Ripristini a fasi (SQL Server)