Share via


Procedura: Applicazione del backup di un log delle transazioni (Transact-SQL)

Per applicare un backup del log delle transazioni a un database, è necessario che vengano soddisfatti i requisiti seguenti:

  • Prima della creazione del backup completo o differenziale del database più recente, è necessario che il database utilizzi il modello di recupero con registrazione completa o il modello di recupero con registrazione minima delle transazioni di massa.

  • La sequenza di ripristino per il ripristino dei backup precedenti deve includere l'opzione WITH NORECOVERY.

  • I backup del log devono essere applicati nella sequenza in cui sono stati creati, senza gap nella catena di log. Fatta eccezione per l'ultimo backup del log, è necessario utilizzare l'opzione WITH NORECOVERY, come illustrato di seguito:

    RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
    
  • Quando viene applicato l'ultimo backup del log, è possibile eseguire una delle operazioni seguenti:

    • Recuperare il database nell'ambito dell'ultima istruzione BACKUP LOG:

      RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;
      GO
      
    • Posticipare il recupero del database utilizzando un'istruzione RESTORE DATABASE separata:

      RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY; 
      RESTORE DATABASE <database_name> WITH RECOVERY;
      GO
      

      Il posticipo del recupero del database consente di verificare di avere ripristinato tutti i backup del log necessari. Questo approccio è spesso consigliato quando si esegue un ripristino temporizzato.

ms187607.note(it-it,SQL.90).gifImportante:
È consigliabile specificare sempre in modo esplicito WITH NORECOVERY oppure WITH RECOVERY in ogni istruzione RESTORE per evitare ambiguità. Questa precauzione è particolarmente importante durante la scrittura di script.

Per applicare un backup del log delle transazioni

  1. Eseguire l'istruzione RESTORE LOG specificando:

    • Il nome del database a cui verrà applicato il log delle transazioni.
    • La periferica di backup da cui verrà ripristinato il backup del log delle transazioni.
    • La clausola NORECOVERY.

    La sintassi di base per questa istruzione è la seguente:

    RESTORE LOG database_name FROM <backup_device> WITH NORECOVERY

    dove database_name è il nome del database e <backup_device>**è il nome della periferica che contiene il backup del log in fase di ripristino.

  2. Ripetere il passaggio 1 per ogni backup del log delle transazioni che si desidera applicare.

  3. Dopo aver ripristinato l'ultimo backup della sequenza di ripristino, per ripristinare il database utilizzare l'istruzione seguente:

    RESTORE database_name WITH RECOVERY

    ms187607.note(it-it,SQL.90).gifImportante:
    Se si sta creando un database mirror, omettere il passaggio di recupero. Un database mirror deve rimanere nello stato RESTORING.

Esempio

Per impostazione predefinita, il database AdventureWorks utilizza il modello di recupero con registrazione minima. Per gli esempi seguenti è necessario modificare questo database in modo da utilizzare il modello di recupero con registrazione completa, come illustrato di seguito:

ALTER DATABASE AdventureWorks SET RECOVERY FULL
A. Applicazione di un singolo backup del log delle transazioni

Nell'esempio seguente viene innanzitutto ripristinato il database AdventureWorks da un backup completo del database che risiede in una periferica di backup denominata AdventureWorks_1. Viene quindi applicato il primo backup del log delle transazioni che risiede nella periferica di backup denominata AdventureWorks_log e infine viene recuperato il database.

RESTORE DATABASE AdventureWorks
   FROM AdventureWorks_1
   WITH NORECOVERY
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorks_log
   WITH FILE = 1,
   WITH NORECOVERY
GO
RESTORE DATABASE AdventureWorks
   WITH RECOVERY
GO
B. Applicazione di più backup del log delle transazioni

Nell'esempio seguente viene innanzitutto ripristinato il database AdventureWorks da un backup completo del database che risiede in una periferica di backup denominata AdventureWorks_1. Vengono quindi applicati in successione i primi tre backup del log delle transazioni che risiedono in una periferica di backup denominata AdventureWorks_log e infine viene recuperato il database.

RESTORE DATABASE AdventureWorks
   FROM AdventureWorks_1
   WITH NORECOVERY
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorks_log
   WITH FILE = 1,
   NORECOVERY
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorks_log
   WITH FILE = 2,
   WITH NORECOVERY
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorks_log
   WITH FILE = 3,
   WITH NORECOVERY
GO
RESTORE DATABASE AdventureWorks
   WITH RECOVERY
GO

Vedere anche

Attività

Procedura: Ripristino di un backup del log delle transazioni (SQL Server Management Studio)
Procedura: Esecuzione di un ripristino temporizzato (SQL Server Management Studio)
Procedura: Creazione di un backup del log delle transazioni (Transact-SQL)
Procedura: Ripristino di un database fino a una transazione contrassegnata (SQL Server Management Studio)
Procedura: Ripristino fino al punto di errore (Transact-SQL)
Procedura: Ripristino temporizzato (Transact-SQL)

Concetti

Utilizzo dei backup del log delle transazioni

Altre risorse

RESTORE (Transact-SQL)
Esercitazione su SQL Server Management Studio

Guida in linea e informazioni

Assistenza su SQL Server 2005