Ripristini di database completi (modello di recupero con registrazione minima)
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.
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 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 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 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.
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 di base per RESTORE
La sintassi di base di Transact-SQL RESTORE per il ripristino di un backup di database completo è la seguente:
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)
Nell'esempio seguente viene innanzitutto illustrato come utilizzare l'istruzione BACKUP per creare un backup completo del database e un backup differenziale del database AdventureWorks2022
. 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 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 con registrazione minima (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)