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.
Si applica a:SQL Server
Le informazioni contenute in questo argomento sono rilevanti solo per i database che includono transazioni contrassegnate e utilizzano i modelli di recupero completo o con registrazione delle operazioni bulk.
Per informazioni sui requisiti per il ripristino fino a un punto di recupero specifico, vedere Ripristinare un database di SQL Server fino a un punto specifico (modello di recupero con registrazione completa).
SQL Server supporta l'inserimento di contrassegni denominati nel log delle transazioni per il recupero fino a un punto specifico. I contrassegni del log sono specifici della transazione e vengono inseriti solo se viene effettuato il commit della transazione associata. In questo modo, i contrassegni risultano legati a serie di operazioni specifiche ed è possibile eseguire il recupero includendo o escludendo le serie di operazioni desiderate.
Prima di inserire contrassegni denominati nel log delle transazioni, tenere presente quanto segue:
I contrassegni di transazione occupano spazio nei log e pertanto è consigliabile utilizzarli esclusivamente per transazioni importanti ai fini della strategia di recupero dei database.
Dopo il commit di una transazione contrassegnata, viene inserita una riga nella tabella logmarkhistory del database msdb.
Se una transazione contrassegnata si estende su più database dello stesso server di database o di server diversi, i contrassegni devono essere registrati nei log di tutti i database interessati. Per altre informazioni, vedere Usare transazioni contrassegnate per recuperare coerentemente i database correlati (modello di recupero con registrazione completa).
Nota
Per informazioni sul contrassegno delle transazioni, vedere Usare transazioni contrassegnate per recuperare coerentemente i database correlati (modello di recupero con registrazione completa).
Sintassi Transact-SQL per l'inserimento di contrassegni denominati in un log delle transazioni
Per inserire contrassegni nei log delle transazioni, usare l'istruzione BEGIN TRANSACTION e la clausola WITH MARK [description]. Al marchio viene assegnato lo stesso nome della transazione. La description facoltativa è una descrizione testuale del contrassegno, non è il nome del contrassegno. Il nome sia della transazione sia del contrassegno creato nella seguente istruzione BEGIN TRANSACTION
è ad esempio Tx1
:
BEGIN TRANSACTION Tx1 WITH MARK 'not the mark name, just a description'
Nel log delle transazioni vengono registrati il nome del contrassegno (nome della transazione), la descrizione, il database, l'utente, le informazioni di tipo datetime e il numero di sequenza del file di log (LSN). Le informazioni di tipo datetime vengono usate con il nome del contrassegno per identificare in modo univoco il contrassegno.
Per informazioni sull'inserimento di un contrassegno in una transazione che si estende su più database, vedere Usare transazioni contrassegnate per recuperare coerentemente i database correlati (modello di recupero con registrazione completa).
Sintassi Transact-SQL per il recupero fino a un contrassegno
Quando si specifica una transazione contrassegnata come destinazione usando un'istruzione RESTORE LOG, è possibile usare una delle clausole seguenti per arrestare l'operazione in corrispondenza del contrassegno o immediatamente prima di esso:
Usare la clausola WITH STOPATMARK = '<nome_contrassegno>' per specificare che il punto di recupero corrisponde alla transazione contrassegnata.
STOPATMARK esegue il rollforward fino al contrassegno, includendovi la transazione contrassegnata.
Usare la clausola WITH STOPBEFOREMARK = '<nome_contrassegno>' per specificare che il punto di recupero corrisponde al record del log immediatamente precedente al contrassegno.
STOPBEFOREMARK esegue il rollforward fino al contrassegno, escludendo la transazione contrassegnata.
Entrambe le opzioni STOPATMARK e STOPBEFOREMARK supportano una clausola AFTER datetime facoltativa. Quando si usa datetime , non è necessario che i nomi dei contrassegni siano univoci.
Se AFTER datetime viene omesso, l'avanzamento viene arrestato al primo contrassegno con il nome specificato. Se viene specificato AFTER datetime, il rollforward si arresta esattamente al primo contrassegno con il nome specificato, esattamente a o dopo datetime.
Nota
Come in tutte le operazioni di ripristino a un punto temporale, il recupero fino a un contrassegno è disattivato quando nel database sono in corso operazioni con registrazione minima delle operazioni di tipo bulk.
Per ripristinare una transazione contrassegnata
Ripristinare un database fino a una transazione contrassegnata (SQL Server Management Studio)
Preparazione dei backup del log
In questo esempio, una strategia di backup appropriata per i database correlati potrebbe essere la seguente:
Utilizzare il modello di recupero completo per entrambi i database.
Creare un backup completo di ogni database.
È possibile eseguire il backup dei database in sequenza o simultaneamente.
Prima di eseguire il backup del log delle transazioni, contrassegnare una transazione che viene eseguita in tutti i database. Per informazioni sulla creazione di transazioni contrassegnate, vedere Usare transazioni contrassegnate per recuperare coerentemente i database correlati (modello di recupero con registrazione completa).
Eseguire il backup del log delle transazioni in ogni database.
Recupero del database fino a una transazione contrassegnata
Per ripristinare il backup
Se possibile, creare backup della parte finale del log per i database non danneggiati.
Ripristinare il backup completo più recente di ogni database.
Individuare la transazione contrassegnata più recente disponibile in tutti i backup del log delle transazioni. Questa informazione è archiviata nella tabella logmarkhistory del database msdb in ogni server.
Individuare i backup del log di tutti i database correlati che contengono questo contrassegno.
Ripristina ogni backup del log, fermandosi alla transazione contrassegnata.
Ripristinare ciascun database.
Vedi anche
BEGIN TRANSACTION (Transact-SQL)
RESTORE (Transact-SQL)
Applicare backup di log delle transazioni (SQL Server)
Usare transazioni contrassegnate per recuperare coerentemente i database correlati (modello di recupero con registrazione completa)
Panoramica del ripristino e del recupero (SQL Server)
Ripristinare un database di SQL Server a un punto specifico nel tempo (modello di recupero completo)
Pianificare ed eseguire sequenze di ripristino (modello di recupero completo)