Backup della parte finale del log
Le informazioni contenute in questo argomento sono rilevanti solo per i database in cui viene utilizzato il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk.
Nella maggioranza dei casi, nel modello di recupero con registrazione completa o nel modello di recupero con registrazione minima delle operazioni bulk, SQL Server 2005 e le versioni successive richiedono l'esecuzione di un backup della parte finale del log per acquisire i record del log di cui non è stato ancora eseguito il backup. Un backup del log eseguito sulla parte finale del log stesso appena prima di un'operazione di ripristino è detto backup della parte finale del log.
In SQL Server 2005 e nelle versioni successive è in genere necessario eseguire il backup della parte finale del log prima di avviare il ripristino di un database. Il backup della parte finale del log impedisce la perdita di dati e mantiene intatta la catena di log. Quando si recupera un database fino al punto di un errore, il backup della parte finale del log è l'ultimo backup di interesse nel piano di recupero. Se non è possibile eseguire un backup della parte finale del log, è possibile recuperare un database solo fino alla fine dell'ultimo backup creato prima dell'errore.
Non in tutti gli scenari di ripristino è necessario un backup della parte finale del log. Non è necessario eseguire il backup della parte finale del log se il punto di recupero è incluso in un backup del log precedente o se si sta spostando o sostituendo (sovrascrivendo) il database e non è necessario ripristinarlo fino a un punto nel tempo dopo l'ultimo backup. Inoltre, se i file di log sono danneggiati e non è possibile creare un backup della parte finale del log, è necessario ripristinare il database senza utilizzare un backup della parte finale del log. Qualsiasi transazione di cui sia stato eseguito il commit dopo l'ultimo backup del log andrà persa. Per ulteriori informazioni, vedere "Ripristino senza utilizzare un backup della parte finale del log" di seguito in questo argomento.
Esecuzione del backup della parte finale del log
Analogamente a qualsiasi backup del log, un backup della parte finale del log viene eseguito utilizzando l'istruzione BACKUP LOG. È consigliabile eseguire un backup della parte finale del log nelle situazioni seguenti:
Se il database è online e si intende effettuare un'operazione di ripristino sul database, prima di avviarla, eseguire il backup della parte finale del log utilizzando WITH NORECOVERY:
BACKUP LOG nome_database TO <dispositivo_backup> WITH NORECOVERY
[!NOTA]
Per evitare errori, l'opzione NORECOVERY è necessaria.
Se il database non è in linea e non si avvia.
Tentare di eseguire un backup della parte finale del log. Dato che in questo momento non può avvenire alcuna transazione, l'utilizzo di WITH NORECOVERY è facoltativo. Se il database è danneggiato, utilizzare WITH CONTINUE_AFTER_ERROR nel modo seguente:
BACKUP LOG nome_database TO <dispositivo_backup> WITH CONTINUE_AFTER_ERROR
Se il database è danneggiato, ad esempio, se non si avvia, un backup della parte finale del log riuscirà solo se i file di log non sono danneggiati, il database è in uno stato che supporta il backup della parte finale del log e non include modifiche con registrazione minima delle operazioni bulk.
Nella tabella seguente è incluso un riepilogo di queste opzioni.
Opzione BACKUP LOG |
Commenti |
---|---|
NORECOVERY |
Utilizzare NORECOVERY ogni volta che si intende procedere con un'operazione di ripristino sul database. NORECOVERY porta il database nello stato di ripristino. Questo assicura che il database non si modifichi dopo il backup della parte finale del log. Il log viene troncato a meno che non venga specificata anche l'opzione NO_TRUNCATE o COPY_ONLY.
Importante
È consigliabile evitare di utilizzare NO_TRUNCATE, a eccezione del caso in cui il database sia danneggiato.
|
CONTINUE_AFTER_ERROR |
Utilizzare CONTINUE_AFTER_ERROR solo se si sta eseguendo il backup della parte finale di un database danneggiato.
Nota
Quando si utilizza il backup della parte finale di un database danneggiato, alcuni dei metadati normalmente acquisiti nei backup dei log potrebbero essere non disponibili. Per ulteriori informazioni, vedere "Backup della parte finale del log con metadati di backup incompleti" di seguito in questo argomento.
|
Per creare un backup del log delle transazioni quando il database è danneggiato
Backup della parte finale del log con metadati di backup incompleti
I backup della parte finale del log consentono di acquisire la parte finale del log anche quando il database non è in linea, è danneggiato oppure è privo di alcuni file di dati. Questo può causare metadati incompleti nei comandi di ripristino delle informazioni e in msdb. Tuttavia, solo i metadati sono incompleti. Il log acquisito è completo e utilizzabile.
Se un backup della parte finale del log include metadati incompleti, nella tabella backupsethas_incomplete_metadata è impostato su 1. Inoltre, nell'output di RESTORE HEADERONLY, HasIncompleteMetadata è impostato su 1.
Se i metadati in un backup della parte finale del log sono incompleti, nella tabella backupfilegroup mancheranno la maggioranza delle informazioni sui filegroup al momento dell'esecuzione del backup della parte finale del log. La maggioranza delle colonne della tabella backupfilegroup sono NULL. Le uniche colonne significative sono le seguenti:
backup_set_id
filegroup_id
type
type_desc
is_readonly
Ripristino senza utilizzare un backup della parte finale del log
Tra gli scenari di ripristino in cui un backup della parte finale del log non è necessario sono inclusi i seguenti:
Ripristino di un database fino a un punto nel tempo incluso in un backup del log precedente.
Un backup della parte finale del log non è necessario se si ripristina un database e si specifica l'opzione STOPAT, STOPATMARK o STOPBEFOREMARK in ogni istruzione RESTORE nella sequenza di ripristino.
Per ripristinare un database fino a un punto nel tempo precedente
Per utilizzare Transact-SQL per il ripristino a un punto nel tempo specifico, vedere Procedura: Ripristino temporizzato (Transact-SQL), Recupero fino a una transazione contrassegnata o Recupero fino a un numero di sequenza del file di log (LSN).
Per utilizzare SQL Server Management Studio, vedere Procedura: Esecuzione di un ripristino temporizzato (SQL Server Management Studio) oppure Procedura: Ripristino di un database fino a una transazione contrassegnata (SQL Server Management Studio).
Ripristino di una copia di un database in una nuova posizione.
Quando si ripristina un database, è possibile utilizzare lo stesso nome del database solo se si ripristina il database su una diversa istanza del server, ad esempio quando si crea un database mirror per il mirroring del database o un database secondario per il log shipping. Se si sposta un database sulla stessa istanza del server, è necessario specificare un nuovo nome per il database.
Per ripristinare un database in una nuova posizione
Utilizzando Transact-SQL, in ogni istruzione RESTORE nella sequenza di ripristino, specificare l'opzione MOVE. Per ulteriori informazioni, vedere Procedura: Ripristino di un database con un nuovo nome e una nuova posizione (Transact-SQL) o Procedura: Ripristino dei file in una nuova posizione (Transact-SQL).
Utilizzando SQL Server Management Studio, specificare la nuova posizione di ogni file nel campo Ripristina come in Ripristina database (pagina Opzioni). Per ulteriori informazioni, vedere Procedura: Ripristino di un backup del database (SQL Server Management Studio).
Sostituzione completa (sovrascrittura) del database.
Attenzione È consigliabile utilizzare il ripristino tramite l'opzione REPLACE solo raramente e a opera di amministratori di database esperti, dopo attenta considerazione. Per ulteriori informazioni, vedere Utilizzo dell'opzione REPLACE.
Per sostituire un database
Utilizzando Transact-SQL, specificare l'opzione REPLACE nell'istruzione RESTORE.
Utilizzando SQL Server Management Studio, specificare la nuova posizione di ogni file nel campo Ripristina come in Ripristina database (pagina Opzioni). Per ulteriori informazioni, vedere Procedura: Ripristino di un backup del database (SQL Server Management Studio).
Vedere anche
Riferimento
Concetti
Cronologia modifiche
Contenuto aggiornato |
---|
La sezione "Esecuzione del backup della parte finale del log" è stata aggiornata per correggere le informazioni sull'esecuzione di questa operazione quando il database è offline e non può essere avviato. |