Ripristini completi del database (modello di recupero semplice)

Si applica a:SQL Server

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.

Con il modello di recupero semplice, non è possibile ripristinare il database a un punto specifico nel tempo nell'ambito di un backup specifico.

Importante

È consigliabile evitare di collegare o ripristinare database provenienti da origini sconosciute o non attendibili. Questi database possono contenere codice dannoso che potrebbe eseguire codice Transact-SQL indesiderato o causare errori modificando lo schema o la struttura fisica del database. 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.

Contenuto dell'argomento

Nota

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

Panoramica del ripristino del database nel modello di recupero semplice

Un ripristino completo del database nel modello di recupero semplice richiede una o due istruzioni RESTORE, a seconda che si desideri 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

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

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 RESTORE di base

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

RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]

Nota

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

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

RESTORE DATABASE database_name FROM backup_device WITH RECOVERY

Esempio (Transact-SQL)

Nell'esempio seguente viene prima illustrato come utilizzare l'istruzione BACKUP per creare un backup completo del database e un backup differenziale del AdventureWorks2025 database. L'esempio ripristina quindi questi backup 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 AdventureWorks2022 SET RECOVERY SIMPLE;  
GO  
-- Back up the full AdventureWorks2022 database.  
BACKUP DATABASE AdventureWorks2022   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'   
  WITH FORMAT;  
GO  
--Create a differential database backup.  
BACKUP DATABASE AdventureWorks2022   
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'  
   WITH DIFFERENTIAL;  
GO  
--Restore the full database backup (from backup set 1).  
RESTORE DATABASE AdventureWorks2022   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'   
   WITH FILE=1, NORECOVERY;  
--Restore the differential backup (from backup set 2).  
RESTORE DATABASE AdventureWorks2022   
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.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)

Vedi anche

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