Condividi tramite


Ripristini di database completi (modello di recupero con registrazione minima)

L'obiettivo di un ripristino completo del database è il ripristino dell'intero database. L'intero database è offline per la tutta la durata del ripristino. Prima che sia possibile portare online una o più parti del database, tutti i dati vengono recuperati fino a un punto coerente in cui tutte le parti del database sono aggiornate allo stesso punto nel tempo e non sono presenti transazioni di cui non è stato eseguito il commit.

Il modello di recupero con registrazione minima non consente di ripristinare il database fino a uno specifico punto nel tempo all'interno di un determinato backup.

Importante

È consigliabile evitare di collegare o ripristinare database provenienti da origini sconosciute o non attendibili. Questi database possono contenere codice dannoso che potrebbero eseguire codice Transact-SQL non previsto o causare errori modificando lo schema o la struttura del database fisico. Prima di utilizzare un database da un'origine sconosciuta o non attendibile, eseguire DBCC CHECKDB sul database in un server non di produzione ed esaminare il codice contenuto nel database, ad esempio le stored procedure o altro codice definito dall'utente.

Nota

Per informazioni sul supporto per i backup delle versioni precedenti di SQL Server, vedere la sezione "Supporto compatibilità" di RESTORE (Transact-SQL).

Panoramica del ripristino del database nel modello di recupero con registrazione minima

Se si utilizza il modello di recupero con registrazione minima, il ripristino completo del database richiede solo una o due istruzioni RESTORE , a seconda che si desideri o meno ripristinare un backup differenziale del database. Se si utilizza solo un backup di database completo, ripristinare unicamente il backup più recente come illustrato nella figura seguente.

Ripristino solo di un backup completo del database Ripristina solo un backup completo

Se si utilizza anche un backup differenziale del database, ripristinare il backup completo del database più recente senza recuperare il database e quindi ripristinare il backup differenziale del database più recente e recuperare il database. Questo processo viene illustrato nella figura seguente.

Ripristino di backup completi e differenziali del database ripristinando backup

Nota

Se si prevede di ripristinare un backup del database in un'istanza del server diversa, vedere Copiare database tramite backup e ripristino.

Sintassi Transact-SQL di base per RESTORE

La sintassi di base di Transact-SQLRESTORE per il ripristino di un backup completo del database è:

RESTORE DATABASE nome_database FROM dispositivo_backup [ WITH NORECOVERY ]

Nota

Utilizzare WITH NORECOVERY se si desidera ripristinare anche un backup differenziale del database.

La sintassi di base di RESTORE per il ripristino di un backup del database è la seguente:

RESTORE DATABASE nome_database FROM dispositivo_backup WITH RECOVERY

Esempio (Transact-SQL)

L'esempio seguente illustra innanzitutto come usare l'istruzione BACKUP per creare un backup completo del database e un backup differenziale del database AdventureWorks2012 . Questi backup vengono quindi ripristinati in sequenza. Il database è ripristinato con lo stesso stato del momento in cui è stato completato il backup differenziale del database.

Nell'esempio seguente vengono illustrate le opzioni fondamentali di una sequenza di ripristino per lo scenario di ripristino completo del database. Una sequenza di ripristino è costituita da una o più operazioni di ripristino che gestiscono lo spostamento dei dati attraverso una o più fasi del ripristino. La sintassi e i dettagli non rilevanti sono stati omessi. Quando si recupera un database, è consigliabile specificare in modo esplicito l'opzione RECOVERY per maggiore chiarezza, anche se si tratta dell'opzione predefinita.

Nota

L'esempio inizia con un'istruzione ALTER DATABASE che imposta il modello di recupero su SIMPLE.

USE master;  
--Make sure the database is using the simple recovery model.  
ALTER DATABASE AdventureWorks2012 SET RECOVERY SIMPLE;  
GO  
-- Back up the full AdventureWorks2012 database.  
BACKUP DATABASE AdventureWorks2012   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'   
  WITH FORMAT;  
GO  
--Create a differential database backup.  
BACKUP DATABASE AdventureWorks2012   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'  
   WITH DIFFERENTIAL;  
GO  
--Restore the full database backup (from backup set 1).  
RESTORE DATABASE AdventureWorks2012   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'   
   WITH FILE=1, NORECOVERY;  
--Restore the differential backup (from backup set 2).  
RESTORE DATABASE AdventureWorks2012   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'   
   WITH FILE=2, RECOVERY;  
GO  

Attività correlate

Per ripristinare un backup completo del database

Per ripristinare un backup differenziale del database

Per ripristinare un backup utilizzando SMO (SQL Server Management Objects)

Vedere anche

RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
sp_addumpdevice (Transact-SQL)
Backup completo del database (SQL Server)
Backup differenziali [SQL Server]
Backup Overview (SQL Server)
Panoramica del ripristino e del recupero (SQL Server)