Ripristino di un backup differenziale di database (SQL Server)
Questo argomento descrive come ripristinare un backup differenziale del database in SQL Server 2014 usando SQL Server Management Studio o Transact-SQL.
Contenuto dell'articolo
Prima di iniziare:
Per ripristinare un backup differenziale di database utilizzando:
Prima di iniziare
Limitazioni e restrizioni
Non è possibile utilizzare RESTORE in una transazione esplicita o implicita.
I backup creati nella versione più recente di SQL Server non possono essere ripristinati nelle versioni precedenti di SQL Server.
In SQL Server 2014 è possibile ripristinare un database utente da un backup del database creato usando SQL Server 2005 o una versione successiva.
Prerequisiti
- Nel modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, prima di poter ripristinare un database, è necessario effettuare il backup del log delle transazioni attivo, noto come parte finale del log. Per altre informazioni, vedere Backup di un log delle transazioni (SQL Server).
Sicurezza
Autorizzazioni
Se il database da ripristinare non esiste, per eseguire un'operazione RESTORE l'utente deve disporre delle autorizzazioni CREATE DATABASE. Se il database esiste, le autorizzazioni per l'istruzione RESTORE vengono assegnate per impostazione predefinita ai membri dei ruoli predefiniti del server sysadmin e dbcreator e al proprietario (dbo) del database. Per l'opzione FROM DATABASE_SNAPSHOT, il database esiste sempre.
Le autorizzazioni per l'istruzione RESTORE vengono assegnate ai ruoli in cui le informazioni sull'appartenenza sono sempre disponibili per il server. Poiché è possibile controllare l'appartenenza ai ruoli predefiniti del database solo quando il database è accessibile e non è danneggiato, condizioni che non risultano sempre vere quando si esegue un'operazione RESTORE, i membri del ruolo predefinito del database db_owner non dispongono delle autorizzazioni per l'istruzione RESTORE.
Uso di SQL Server Management Studio
Per ripristinare un backup differenziale del database
Dopo aver stabilito la connessione all'istanza appropriata del motore di database di Microsoft SQL Server, in Esplora oggetti fare clic sul nome del server per espandere l'albero del server.
Espandere Database. A seconda del database, selezionare un database utente oppure espandere Database di sistemae selezionare un database di sistema.
Fare clic con il pulsante destro del mouse sul database, scegliere Attività, selezionare Ripristina, quindi fare clic su Database.
Per specificare l'origine e il percorso dei set di backup da ripristinare, nella pagina Generale , utilizzare la sezione Origine . Selezionare una delle opzioni seguenti:
Database
Selezionare il database da ripristinare dall'elenco a discesa. Nell'elenco sono inclusi solo i database di cui è stato eseguito il backup in base alla cronologia dei backup di msdb .
Nota
Se il backup viene eseguito da un server diverso, il server di destinazione non disporrà delle informazioni della cronologia di backup per il database specificato. In questo caso, selezionare Dispositivo per specificare manualmente il file o il dispositivo da ripristinare.
Dispositivo
Fare clic sul pulsante Sfoglia ( ... ) per aprire la finestra di dialogo Seleziona dispositivi di backup . Nella casella Tipi di supporti di backup selezionare uno dei tipi di dispositivi elencati. Per selezionare uno o più dispositivi per la casella Supporti di backup , fare clic su Aggiungi.
Dopo avere aggiunto i dispositivi desiderati nella casella di riepilogo Dispositivi di backup , fare clic su OK per tornare alla pagina Generale .
Nella casella di riepilogo Origine: Dispositivo: Database selezionare il nome del database da ripristinare.
Nota Questo elenco è disponibile solo se si seleziona Dispositivo . Saranno disponibili solo i database che dispongono di backup sul dispositivo selezionato.
Nella sezione Destinazione , la casella Database viene popolata automaticamente con il nome del database da ripristinare. Per modificare il nome del database, immettere il nome nuovo nella casella Database .
Nota
Per arrestare il ripristino in una data e un'ora diverse, fare clic su Sequenza temporale per accedere alla finestra di dialogo Cronologia di backup . Per informazioni su come arrestare un ripristino del database in un momento specifico, vedere Ripristinare un database SQL Server a un punto nel tempo (modello di recupero con registrazione completa).
Nella griglia Selezionare i set di backup da ripristinare selezionare i backup che si desidera ripristinare dal backup differenziale.
Per informazioni sulle colonne nella griglia Set di backup da ripristinare, vedere Restore Database (Pagina Generale) .
Nella pagina Opzioni del pannello Opzioni di ripristino è possibile selezionare una qualsiasi delle opzioni seguenti, in base alla situazione:
Sovrascrivi il database esistente (WITH REPLACE)
Mantieni le impostazioni di replica (WITH KEEP_REPLICATION)
Chiedi conferma prima del ripristino di ogni backup
Limita accesso al database ripristinato (WITH RESTRICTED_USER)
Per altre informazioni su queste opzioni, vedere Ripristina database (pagina Opzioni).For more information about these options, see Restore Database (Options Page).
Selezionare un'opzione per la casella Stato di recupero . Questa casella determina lo stato del database al termine dell'operazione di ripristino.
RESTORE WITH RECOVERY è il comportamento predefinito che lascia il database pronto per l'utilizzo mediante il rollback delle transazioni di cui non è stato eseguito il commit. I log delle transazioni aggiuntivi non possono essere ripristinati. Selezionare questa opzione se si desidera ripristinare subito tutti i backup necessari.
RESTORE WITH NORECOVERY lascia il database non operativo e non esegue il rollback delle transazioni di cui non è stato eseguito il commit. I log delle transazioni aggiuntivi possono essere ripristinati. Non è possibile utilizzare il database fino al completamento del recupero.
RESTORE WITH STANDBY lascia il database in modalità di sola lettura. Annulla le transazioni di cui non è stato eseguito il commit, ma salva le azioni di rollback in un file standby in modo che gli effetti del recupero possano essere annullati.
Per le descrizioni delle opzioni, vedere Ripristina database (pagina Opzioni).For description of the options, see Restore Database (Options Page).
Le operazioni di ripristino non riescono in presenza di connessioni attive al database. Selezionare l'opzione Chiudi connessioni esistenti per assicurarsi che tutte le connessioni attive tra Management Studio e il database siano chiuse.
Selezionare Chiedi conferma prima del ripristino di ogni backup se si desidera ricevere una richiesta di conferma prima di ciascuna operazione di ripristino. L'operazione non è normalmente necessaria, a meno che le dimensioni del database siano elevate e si desideri monitorare lo stato dell'operazione di ripristino.
Facoltativamente, utilizzare la pagina File per ripristinare il database in un nuovo percorso. Per informazioni sullo spostamento di un database, vedere Ripristinare un database in un nuovo percorso (SQL Server).For help with moving a database, see Restore a Database to a New Location (SQL Server).
Fare clic su OK.
Uso di Transact-SQL
Per ripristinare un backup differenziale del database
Eseguire l'istruzione RESTORE DATABASE, specificando la clausola NORECOVERY, per ripristinare il backup completo del database precedente al backup differenziale del database. Per altre informazioni, vedere Procedura: Ripristinare un backup completo.
Eseguire l'istruzione RESTORE DATABASE per ripristinare il backup differenziale del database, specificando:
Il nome del database a cui si riferisce il backup differenziale del database.
Il dispositivo di backup da cui viene ripristinato il backup differenziale del database.
La clausola NORECOVERY, se sono presenti backup del log delle transazioni da applicare dopo il ripristino del backup differenziale del database. In caso contrario, specificare la clausola RECOVERY.
Con il modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, tramite il ripristino di un backup differenziale del database viene ripristinato il database fino al punto in cui è stato completato il backup differenziale del database. Per eseguire il recupero fino al momento dell'errore, applicare tutti i backup del log delle transazioni creati dopo la creazione dell'ultimo backup differenziale del database. Per altre informazioni, vedere Applicazione dei backup di log delle transazioni (SQL Server).
Esempi (Transact-SQL)
R. Ripristino di un backup differenziale del database
Nell'esempio seguente vengono ripristinati un backup del database e un backup differenziale del database MyAdvWorks
.
-- Assume the database is lost, and restore full database,
-- specifying the original full database backup and NORECOVERY,
-- which allows subsequent restore operations to proceed.
RESTORE DATABASE MyAdvWorks
FROM MyAdvWorks_1
WITH NORECOVERY;
GO
-- Now restore the differential database backup, the second backup on
-- the MyAdvWorks_1 backup device.
RESTORE DATABASE MyAdvWorks
FROM MyAdvWorks_1
WITH FILE = 2,
RECOVERY;
GO
B. Ripristino di un backup del database, di un backup differenziale del database e di un backup del log delle transazioni
In questo esempio vengono ripristinati un backup, un backup differenziale e un backup del log delle transazioni del database MyAdvWorks
.
-- Assume the database is lost at this point. Now restore the full
-- database. Specify the original full database backup and NORECOVERY.
-- NORECOVERY allows subsequent restore operations to proceed.
RESTORE DATABASE MyAdvWorks
FROM MyAdvWorks_1
WITH NORECOVERY;
GO
-- Now restore the differential database backup, the second backup on
-- the MyAdvWorks_1 backup device.
RESTORE DATABASE MyAdvWorks
FROM MyAdvWorks_1
WITH FILE = 2,
NORECOVERY;
GO
-- Now restore each transaction log backup created after
-- the differential database backup.
RESTORE LOG MyAdvWorks
FROM MyAdvWorks_log1
WITH NORECOVERY;
GO
RESTORE LOG MyAdvWorks
FROM MyAdvWorks_log2
WITH RECOVERY;
GO
Attività correlate
Creazione di un backup differenziale del database (SQL Server)
Ripristinare un backup del log delle transazioni (SQL Server)