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:
Creare un backup della parte finale del log per il database
adb
. Questo passaggio è fondamentale per fare in modo che i filegroup integriA
eC
vengano aggiornati rispetto al punto di recupero del database.BACKUP LOG adb TO tailLogBackup WITH NORECOVERY
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
eC
è in sospeso e questi filegroup non sono in linea.Eseguire un ripristino in linea dei filegroup
A
eC
.
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 recuperaA
eC
immediatamente.RESTORE DATABASE adb FILEGROUP='A', FILEGROUP='C' WITH RECOVERY
A questo punto il filegroup primario e i filegroup
A
eC
sono in linea. Il recupero dei file nel filegroupB
è ancora in sospeso e questo filegroup non è in linea.Eseguire un ripristino in linea del filegroup
B
.
I file nel filegroupB
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.
Vedere anche
Concetti
Applicazione dei backup del log delle transazioni
Esecuzione di ripristini a fasi
Altre risorse
BACKUP (Transact-SQL)
Esempi di sequenze di ripristino in scenari diversi
RESTORE (Transact-SQL)