Recupero fino a un numero di sequenza del file di log (LSN)

Le informazioni contenute in questo argomento sono rilevanti solo per i database che utilizzano i modelli di recupero con registrazione completa o con registrazione minima delle operazioni bulk.

In SQL Server 2005 e versioni successive è possibile utilizzare un numero di sequenza del file di log (LSN) per definire il punto di recupero per un'operazione di ripristino. Questa è una funzionalità specializzata progettata per i fornitori di strumenti e viene utilizzata solo in rari casi.

[!NOTA]

Per informazioni sui requisiti per il ripristino fino a un punto di recupero specifico, vedere Ripristino di un database fino a un punto all'interno di un backup.

Sintassi Transact-SQL per il ripristino fino a un numero di sequenza del file di log (LSN)

Utilizzando un'istruzione RESTORE è possibile interrompere 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 che specifica che il punto di recupero corrisponde al record di log contenente l'LSN specificato.

    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.

Per ulteriori informazioni sull'utilizzo di LSN, vedere Numeri di sequenza del file di log e pianificazione del ripristino.

Per ulteriori informazioni sul ripristino temporizzato, vedere Ripristino di un database fino a un punto all'interno di un backup.

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