Recupero fino a un numero di sequenza del file di log (SQL Server)
Le informazioni contenute in questo argomento sono rilevanti solo per i database che utilizzano il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk.
È possibile utilizzare un numero di sequenza del file di log (LSN) per definire il punto di recupero per un'operazione di ripristino. Si tratta tuttavia di una funzionalità specializzata progettata per i fornitori di strumenti e viene utilizzata solo in rari casi.
Panoramica dei numeri di sequenza del file di log
Gli LSN sono utilizzati internamente durante una sequenza RESTORE per tenere traccia del momento specifico rispetto al quale i dati sono stati ripristinati. Quando un backup viene ripristinato, i dati vengono ripristinati sull'LSN corrispondente al momento specifico di esecuzione del backup. Backup dei log e differenziali spostano il database ripristinato a un momento successivo, corrispondente a un LSN maggiore.
Ogni record presente nel log delle transazioni è identificato in modo univoco da un numero di sequenza dei file di log (LSN). Gli LSN sono ordinati in modo tale che se LSN è maggiore di LSN1, la modifica descritta dal record di log cui fa riferimento LSN2 si verifica dopo la modifica descritta dall'LSN del record di log.
L'LSN di un record di log in corrispondenza del quale si è verificato un evento significativo può essere utile per creare sequenze di ripristino corrette. Essendo ordinati, gli LSN possono essere confrontati in termini di uguaglianza e disuguaglianza, ovvero <, >, =, <=, >=. Questi confronti sono utili nella creazione di sequenze di ripristino.
[!NOTA]
Gli LSN sono valori di tipo di dati numeric(25,0). Gli operatori matematici, ad esempio addizione o sottrazione, non sono significativi e non devono essere utilizzati con gli LSN.
[Torna all'inizio]
Visualizzazione degli LSN utilizzati tramite backup e ripristino
L'LSN di un record di log in corrispondenza del quale si è verificato un determinato evento di backup e di ripristino è visibile utilizzando una o più delle istruzioni seguenti:
[!NOTA]
Gli LSN sono inoltre visualizzati nel testo di alcuni messaggi.
Sintassi Transact-SQL per il ripristino fino a un numero di sequenza del file di log (LSN)
Utilizzando un'istruzione RESTORE è possibile arrestare il processo esattamente in corrispondenza dell'LSN o immediatamente prima, come illustrato di seguito:
Utilizzare la clausola WITH STOPATMARK = 'lsn:<lsn_number>' dove lsn:<lsnNumber> è una stringa indicante che il record del log contenente l'LSN specificato corrisponde al punto di recupero.
STOPATMARK esegue il rollforward al numero di sequenza del file di log (LSN) includendo anche tale record del log.
Utilizzare la clausola WITH STOPBEFOREMARK = 'lsn:<lsn_number>', dove lsn:<lsnNumber> è una stringa che specifica che il punto di recupero corrisponde al record di log immediatamente precedente a quello contenente l'LSN specificato.
Tramite STOPBEFOREMARK viene eseguito il rollforward fino all'LSN escludendo tale record di log.
In genere, viene selezionata una transazione specifica da includere o escludere. Sebbene non sia necessario, il record di log specificato è in pratica un record di commit delle transazioni.
Esempi
Nell'esempio seguente si presuppone che il database AdventureWorks sia stato modificato in modo da utilizzare il modello di recupero con registrazione completa.
RESTORE LOG AdventureWorks FROM DISK = 'c:\adventureworks_log.bak'
WITH STOPATMARK = 'lsn:15000000040000037'
GO
Attività correlate
Ripristino di un backup del database (SQL Server Management Studio)
Ripristinare un backup del log delle transazioni (SQL Server)
Ripristino di un database fino a una transazione contrassegnata (SQL Server Management Studio)
Vedere anche
Riferimento
Concetti
Applicazione dei backup di log delle transazioni (SQL Server)