Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.
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.
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
Ripristinare un backup del database nel modello di recupero semplice (Transact-SQL)
Ripristino di un database in una nuova posizione (SQL Server)
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)