Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento è rilevante solo per i database che utilizzano i modelli di ripristino completo o ripristino parziale con operazioni di bulk-log.
È possibile usare un numero di sequenza di log (LSN) per definire il punto di ripristino per un'operazione di ripristino. Tuttavia, si tratta di una funzionalità specializzata destinata ai fornitori di strumenti ed è improbabile che sia generalmente utile.
Panoramica dei numeri di sequenza di log
I LSN vengono usati internamente durante una sequenza di ripristino per tracciare il momento preciso in cui i dati sono stati ripristinati. Quando viene ripristinato un backup, i dati vengono ripristinati nel LSN corrispondente al momento in cui è stato eseguito il backup. I backup differenziali e dei log spostano il database ripristinato in un secondo momento, che corrisponde a un LSN superiore.
Ogni record nel log delle transazioni viene identificato in modo univoco da un numero di sequenza del log (LSN). I LSN vengono ordinati in modo che, se LSN2 è maggiore di LSN1, la modifica descritta dal record di log a cui fa riferimento LSN2 si è verificata dopo la modifica descritta dal record di log LSN.
LSN di un record di log in cui si è verificato un evento significativo può essere utile per costruire sequenze di ripristino corrette. Poiché gli LSN sono ordinati, possono essere confrontati per verificarne l'uguaglianza e la disuguaglianza, ovvero <, >, =, <=, >=. Tali confronti sono utili quando si creano sequenze di ripristino.
Annotazioni
I LSN sono valori di tipo di dati numeric(25,0). Le operazioni aritmetiche (ad esempio, addizione o sottrazione) non sono significative e non devono essere usate con LSN.
Visualizzazione degli LSN utilizzati per il backup e il ripristino
Il numero LSN di un record di log in cui si è verificato un determinato evento di backup e ripristino è visualizzabile usando uno o più degli elementi seguenti:
Annotazioni
I LSN compaiono anche in alcuni testi dei messaggi.
Transact-SQL Sintassi per il ripristino a un LSN
Usando un'istruzione RESTORE , è possibile arrestarsi in corrispondenza o immediatamente prima dell'LSN, come indicato di seguito:
Utilizzare la clausola WITH STOPATMARK ='lsn:<lsn_number>' , dove lsn:<lsnNumber> è una stringa che specifica che il record di log contenente l'LSN specificato è il punto di ripristino.
STOPATMARK avanza fino all'LSN e include quel record di log nell'avanzamento.
Utilizzare la clausola WITH STOPBEFOREMARK ='lsn:<lsn_number>' , dove lsn:<lsnNumber> è una stringa che specifica che il record di log immediatamente prima del record di log contenente il numero LSN specificato è il punto di ripristino.
STOPBEFOREMARK esegue il roll forward al numero LSN ed esclude il record di log dal roll forward.
In genere, viene selezionata una transazione specifica da includere o escludere. Sebbene non sia necessario, in pratica, il record di log specificato è un record di commit della transazione.
Esempi
Nell'esempio seguente si presume che il database AdventureWorks sia stato modificato per utilizzare il modello di recupero completo.
RESTORE LOG AdventureWorks FROM DISK = 'c:\adventureworks_log.bak'
WITH STOPATMARK = 'lsn:15000000040000037'
GO
Attività correlate
Ripristinare un backup del database (SQL Server Management Studio)
Ripristinare un backup del log delle transazioni (SQL Server)
Ripristinare un database al punto di guasto nel modello di recupero completo (Transact-SQL)
Ripristino di un database a partire da una transazione contrassegnata (SQL Server Management Studio)
Ripristinare un database di SQL Server a un punto specifico nel tempo (modello di recupero completo)
Vedere anche
Applicare backup di log delle transazioni (SQL Server)
Log delle transazioni (SQL Server)
RESTORE (Transact-SQL)