Ripristinare un database fino al punto di errore - Recupero con registrazione completaRestore Database to Point of Failure - Full Recovery

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2016)noDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

In questo argomento vengono fornite informazioni su come eseguire il ripristino fino al punto di errore.This topic explains how to restore to the point of failure. L'argomento è rilevante solo per i database che utilizzano i modelli di recupero con registrazione completa o con registrazione minima delle operazioni bulk.The topic is relevant only for databases that are using the full or bulk-logged recovery models.

Per eseguire il ripristino fino al punto di erroreTo restore to the point of failure

  1. Eseguire il backup della parte finale del log eseguendo l'istruzione BACKUP di base seguente:Back up the tail of the log by running the following basic BACKUP statement:

    BACKUP LOG <database_name> TO <backup_device>   
       WITH NORECOVERY, NO_TRUNCATE;  
    
  2. Eseguire il ripristino di un backup completo del database eseguendo l'istruzione RESTORE DATABASE di base seguente:Restore a full database backup by running the following basic RESTORE DATABASE statement:

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  3. Facoltativamente, ripristinare un backup differenziale del database eseguendo l'istruzione RESTORE DATABASE di base seguente:Optionally, restore a differential database backup by running the following basic RESTORE DATABASE statement:

    RESTORE DATABASE <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  4. Applicare tutti i log delle transazioni, incluso il backup della parte finale del log creato nel passaggio 1, specificando WITH NORECOVERY nell'istruzione RESTORE LOG:Apply each transaction log, including the tail-log backup you created in step 1, by specifying WITH NORECOVERY in the RESTORE LOG statement:

    RESTORE LOG <database_name> FROM <backup_device>   
       WITH NORECOVERY;  
    
  5. Recuperare il database eseguendo l'istruzione RESTORE DATABASE seguente:Recover the database by running the following RESTORE DATABASE statement:

    RESTORE DATABASE <database_name>   
       WITH RECOVERY;  
    

EsempioExample

Prima che sia possibile eseguire l'esempio, è necessario completare le operazioni preliminari seguenti:Before you can run the example, you must complete the following preparations:

  1. Il modello di recupero predefinito del database AdventureWorks2012AdventureWorks2012 è il modello di recupero con registrazione minima.The default recovery model of the AdventureWorks2012AdventureWorks2012 database is the simple recovery model. Dato che questo modello di recupero non supporta il ripristino in corrispondenza del punto in cui si è verificato un errore, impostare AdventureWorks2012AdventureWorks2012 per usare il modello di recupero con registrazione completa eseguendo l'istruzione ALTER DATABASE seguente:Because this recovery model does not support restoring to the point of a failure, set AdventureWorks2012AdventureWorks2012 to use the full recovery model by running the following ALTER DATABASE statement:

    USE master;  
    GO  
    ALTER DATABASE AdventureWorks2012 SET RECOVERY FULL;  
    
  2. Creare un backup completo del database utilizzando l'istruzione BACKUP seguente:Create a full database back of the database by using the following BACKUP statement:

    BACKUP DATABASE AdventureWorks2012 TO DISK = 'C:\AdventureWorks2012_Data.bck';  
    
  3. Creare un backup del log di routine:Create a routine log backup:

    BACKUP LOG AdventureWorks2012 TO DISK = 'C:\AdventureWorks2012_Log.bck';  
    

    Nell'esempio seguente vengono ripristinati i backup creati in precedenza, dopo la creazione di un backup della parte finale del log del database AdventureWorks2012AdventureWorks2012 .The following example restores the backups that are created previously, after creating a tail-log backup of the AdventureWorks2012AdventureWorks2012 database. In questo passaggio si suppone che il disco del log sia accessibile.(This step assumes that the log disk can be accessed.)

    Innanzitutto, nell'esempio viene creato un backup della parte finale del log del database che acquisisce il log attivo e lascia il database nello stato di ripristino.First, the example creates a tail-log backup of the database that captures the active log and leaves the database in the Restoring state. Quindi, nell'esempio viene ripristinato il backup del database e vengono applicati il backup del log di routine creato in precedenza e il backup della parte finale del log.Then, the example restores the database backup, applies the routine log backup created previously, and applies the tail-log backup. Infine viene recuperato il database in un passaggio separato.Finally, the example recovers the database in a separate step.

Nota

Il comportamento predefinito consiste nel recuperare un database come parte dell'istruzione che ripristina il backup finale.The default behavior is to recover a database as part of the statement that restores the final backup.

/* Example of restoring a to the point of failure */  
-- Step 1: Create a tail-log backup by using WITH NORECOVERY.  
BACKUP LOG AdventureWorks2012  
   TO DISK = 'C:\AdventureWorks2012_Log.bck'  
   WITH NORECOVERY;  
GO  
-- Step 2: Restore the full database backup.  
RESTORE DATABASE AdventureWorks2012  
   FROM DISK = 'C:\AdventureWorks2012_Data.bck'  
   WITH NORECOVERY;  
GO  
-- Step 3: Restore the first transaction log backup.  
RESTORE LOG AdventureWorks2012  
   FROM DISK = 'C:\AdventureWorks2012_Log.bck'  
   WITH NORECOVERY;  
GO  
-- Step 4: Restore the tail-log backup.  
RESTORE LOG AdventureWorks2012  
   FROM  DISK = 'C:\AdventureWorks2012_Log.bck'  
   WITH NORECOVERY;  
GO  
-- Step 5: Recover the database.  
RESTORE DATABASE AdventureWorks2012  
   WITH RECOVERY;  
GO  

Vedere ancheSee Also

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