Recupero di database correlati che contengono transazioni contrassegnateRecovery of Related Databases That Contain Marked Transaction

Le informazioni contenute in questo argomento sono rilevanti solo per i database che includono transazioni contrassegnate e utilizzano il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk.This topic is relevant only for databases that contain marked transactions and that use the full or bulk-logged recovery models.

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).For information about the requirements for restoring to a specific recovery point, see Restore a SQL Server Database to a Point in Time (Full Recovery Model).

SQL ServerSQL Server supporta l'inserimento di contrassegni denominati nel log delle transazioni per il recupero fino a un punto specifico. supports inserting named marks into the transaction log to allow recovery to that specific mark. I contrassegni del log sono specifici della transazione e vengono inseriti solo se viene eseguito il commit della transazione associata.Log marks are transaction specific and are inserted only if their associated transaction commits. 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.As a result, marks can be tied to specific work, and you can recover to a point that includes or excludes this work.

Prima di inserire contrassegni denominati nel log delle transazioni, tenere presente quanto segue:Before you insert named marks into the transaction log, consider the following:

Sintassi Transact-SQL per l'inserimento di contrassegni denominati in un log delle transazioniTransact-SQL Syntax for Inserting Named Marks into a Transaction Log

Per inserire contrassegni nei log delle transazioni, usare l'istruzione BEGIN TRANSACTION e la clausola WITH MARK [description].To insert marks into the transaction logs, use the BEGIN TRANSACTION statement and the WITH MARK [description] clause. Al contrassegno viene assegnato lo stesso nome della transazione.The mark is named the same as the transaction. L'argomento description facoltativo è una descrizione testuale del contrassegno e non corrisponde al nome del contrassegno.The optional description is a textual description of the mark, not the mark name. Il nome sia della transazione sia del contrassegno creato nella seguente istruzione BEGIN TRANSACTION è ad esempio Tx1:For example, the name of both the transaction and the mark that is created in the following BEGIN TRANSACTION statement is 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).The transaction log records the mark name (transaction name), description, database, user, datetime information, and the log sequence number (LSN). Le informazioni di tipo datetime vengono usate con il nome del contrassegno per identificare in modo univoco il contrassegno.The datetime information is used with the mark name to uniquely identify the mark.

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).For information about how to insert a mark into a transaction that spans multiple databases, see Use Marked Transactions to Recover Related Databases Consistently (Full Recovery Model).

Sintassi Transact-SQL per il recupero fino a un contrassegnoTransact-SQL Syntax for Recovering to a Mark

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:When you target a marked transaction by using aRESTORE LOGstatement, you can use one the following clauses to stop at or immediately before the mark:

  • Usare la clausola WITH STOPATMARK = '<nome_contrassegno>' per specificare che il punto di recupero corrisponde alla transazione contrassegnata.Use the WITH STOPATMARK = '<mark_name>' clause to specify that the marked transaction is the recovery point.

    STOPATMARK esegue il rollforward fino al contrassegno, includendovi la transazione contrassegnata.STOPATMARK rolls forward to the mark and includes the marked transaction in the roll forward.

  • Usare la clausola WITH STOPBEFOREMARK = '<nome_contrassegno>' per specificare che il punto di recupero corrisponde al record del log immediatamente precedente al contrassegno.Use the WITH STOPBEFOREMARK = '<mark_name>' clause to specify that the log record that is immediately before the mark is the recovery point.

    STOPBEFOREMARK esegue il rollforward fino al contrassegno, escludendo la transazione contrassegnata.STOPBEFOREMARK rolls forward to the mark and excludes marked the transaction from the roll forward.

    Entrambe le opzioni STOPATMARK e STOPBEFOREMARK supportano una clausola AFTER datetime facoltativa.The STOPATMARK and STOPBEFOREMARK options both support an optional AFTER datetime clause. Quando si usa datetime , non è necessario che i nomi dei contrassegni siano univoci.When datetime is used, mark names do not have to be unique.

    Se AFTER datetime viene omesso, il rollforward viene arrestato in corrispondenza del primo contrassegno con il nome specificato.If AFTER datetime is omitted, roll forward stops at the first mark that has the specified name. Se AFTER datetime viene specificato, il rollforward viene arrestato in corrispondenza del primo contrassegno con il nome specificato, nella data e ora indicate in datetimeo in un momento successivo.If AFTER datetime is specified, roll forward stops at the first mark that has the specified name, exactly at or after datetime.

Nota

Come per tutte le operazioni di ripristino temporizzato, il recupero fino a un contrassegno è disattivato quando nel database sono in corso operazioni con registrazione minima delle operazioni bulk.As in all point-in-time restore operations, recovering to a mark is disallowed when the database is undergoing operations that are bulk-logged.

Per ripristinare una transazione contrassegnataTo restore to a marked transaction

Ripristinare un database fino a una transazione contrassegnata (SQL Server Management Studio)Restore a Database to a Marked Transaction (SQL Server Management Studio)

RESTORE (Transact-SQL)RESTORE (Transact-SQL)

Preparazione dei backup del logPreparing the Log Backups

In questo esempio, una strategia di backup appropriata per i database correlati potrebbe essere la seguente:For this example, an appropriate backup strategy for these related databases would be the following:

  1. Utilizzare il modello di recupero con registrazione completa per entrambi i database.Use the full recovery model for both databases.

  2. Creare un backup completo di ogni database.Create a full backup of each database.

    È possibile eseguire il backup dei database in sequenza o simultaneamente.The databases can be backed up sequentially or simultaneously.

  3. Prima di eseguire il backup del log delle transazioni, contrassegnare una transazione che viene eseguita in tutti i database.Before backing up the transaction log, mark a transaction that executes in all databases. Per informazioni sulla creazione di transazioni contrassegnate, vedere Usare transazioni contrassegnate per recuperare coerentemente i database correlati (modello di recupero con registrazione completa).For information about how to create the marked transactions, see Use Marked Transactions to Recover Related Databases Consistently (Full Recovery Model).

  4. Eseguire il backup del log delle transazioni in ogni database.Back up the transaction log on each database.

Recupero del database fino a una transazione contrassegnataRecovering the Database to a Marked Transaction

Per ripristinare il backupTo restore the backup

  1. Se possibile, creare backup della parte finale del log per i database non danneggiati.Create tail-log backups of the undamaged databases, if possible.

  2. Ripristinare il backup completo più recente di ogni database.Restore the most recent full database backup of each database.

  3. Individuare la transazione contrassegnata più recente disponibile in tutti i backup del log delle transazioni.Identify the most recent marked transaction that is available in all of the transaction log backups. Questa informazione è archiviata nella tabella logmarkhistory del database msdb in ogni server.This information is stored in the logmarkhistory table in the msdb database on each server.

  4. Individuare i backup del log di tutti i database correlati che contengono questo contrassegno.Identify the log backups for all related databases that contain this mark.

  5. Ripristinare ogni backup del log fino alla transazione contrassegnata.Restore each log backup, stopping at the marked transaction.

  6. Recuperare ogni database.Recover each database.

Vedere ancheSee Also

BEGIN TRANSACTION (Transact-SQL) BEGIN TRANSACTION (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Applicare backup del log delle transazioni (SQL Server) Apply Transaction Log Backups (SQL Server)
Usare transazioni contrassegnate per recuperare coerentemente i database correlati (modello di recupero con registrazione completa) Use Marked Transactions to Recover Related Databases Consistently (Full Recovery Model)
Panoramica del ripristino e del recupero (SQL Server) Restore and Recovery Overview (SQL Server)
Ripristinare un database di SQL Server fino a un punto specifico (modello di recupero con registrazione completa) Restore a SQL Server Database to a Point in Time (Full Recovery Model)
Pianificare ed eseguire sequenze di ripristino (modello di recupero con registrazione completa) Plan and Perform Restore Sequences (Full Recovery Model)