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.
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.
Nel modello di recupero semplice, il database non può essere ripristinato in un momento specifico all'interno 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.
Annotazioni
Per informazioni sul supporto dei backup di versioni precedenti di SQL Server, vedere la sezione "Supporto della 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 prevede una o due istruzioni RESTORE, a seconda che si voglia ripristinare un backup differenziale del database. Se si usa solo un backup completo del database, è sufficiente ripristinare il backup più recente, come illustrato nella figura seguente.
del
Se si usa anche un backup differenziale del database, ripristinare il backup completo più recente del database senza recuperare il database e quindi ripristinare il backup differenziale più recente e ripristinare il database. Questo processo viene illustrato nella figura seguente.
Annotazioni
Se si prevede di ripristinare un backup del database in un'istanza del server diversa, vedere Copiare database con backup e ripristino.
Sintassi Transact-SQL di base per RESTORE
La sintassi Transact-SQLRESTORE di base per il ripristino di un backup completo del database è:
RIPRISTINA DATABASE database_name DA backup_device [ CON NESSUN RIPRISTINO ]
Annotazioni
Usare WITH NORECOVERY se si prevede di ripristinare anche un backup differenziale del database.
La sintassi RESTORE di base per il ripristino di un backup del database è la seguente:
RIPRISTINA DATABASE database_name DA backup_device CON RECUPERO
Esempio (Transact-SQL)
Nell'esempio seguente viene prima illustrato come usare l'istruzione BACKUP per creare un backup completo del database e un backup differenziale del database AdventureWorks2012 . Nell'esempio vengono quindi ripristinati questi backup in sequenza. Il database viene ripristinato allo stato al termine del backup differenziale del database.
L'esempio mostra le opzioni critiche in 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 ripristina un database, è consigliabile specificare in modo esplicito l'opzione RECOVERY per maggiore chiarezza, anche se è l'impostazione predefinita.
Annotazioni
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
Ripristinare un backup del database nel Modello di Recupero Semplice (Transact-SQL)
Ripristinare un backup del database (SQL Server Management Studio)
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)
Vedere 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)