Condividi tramite


Ripristinare un backup del database con SSMS

Si applica a: SQL Server

Questo articolo illustra come ripristinare un backup completo del database tramite SQL Server Management Studio.

Limitazioni e restrizioni

Prima di poter ripristinare un database nel modello di recupero con registrazione completa o con registrazione minima delle operazioni bulk, è necessario eseguire 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).

Quando si ripristina un database da un'altra istanza, vedere le informazioni in Gestione dei metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server).

Per ripristinare un database crittografato, è necessario accedere al certificato o alla chiave asimmetrica usata per crittografare il database in questione. Non è possibile effettuare l'operazione di ripristino del database senza almeno uno di questi due elementi. Salvare il certificato usato per crittografare la chiave di crittografia del database fino al salvataggio del backup. Per altre informazioni, vedere SQL Server Certificates and Asymmetric Keys.

Se si ripristina un database di una versione precedente in una versione più recente di SQL Server, il database viene aggiornato automaticamente alla nuova versione. Questo impedisce l'uso del database con una versione precedente del motore di database. Tuttavia, ciò interessa solo l'aggiornamento dei metadati e non influisce sul livello di compatibilità del database. Se il livello di compatibilità di un database utente è 100 o superiore prima dell'aggiornamento, rimane invariato dopo l'aggiornamento. Se il livello di compatibilità è 90 prima dell'aggiornamento, nel database aggiornato viene impostato su 100, ovvero sul livello di compatibilità supportato più basso in SQL Server 2016 (13.x) e versione successiva. Per altre informazioni, vedere Livello di compatibilità ALTER DATABASE (Transact-SQL).

In genere, il database diventa subito disponibile. Tuttavia, se in un database di SQL Server 2005 (9.x) sono inclusi indici full-text, questi vengono importati, reimpostati o ricompilati dal processo di aggiornamento, a seconda dell'impostazione della proprietà del server Opzione di aggiornamento full-text. Se l'opzione di aggiornamento è impostata su Importa o Ricompila, gli indici full-text non saranno disponibili durante l'aggiornamento. A seconda della quantità di dati indicizzati, l'importazione può richiedere diverse ore, mentre la ricompilazione può risultare 10 volte più lunga.

Quando l'opzione di aggiornamento è impostata su Importae un catalogo full-text non è disponibile, gli indici full-text associati vengono ricompilati. Per informazioni sulla visualizzazione o sulla modifica dell'impostazione della proprietà Opzione di aggiornamento full-text , vedere Gestione e monitoraggio della ricerca full-text per un'istanza del server.

Per informazioni sul ripristino di SQL Server da Archiviazione BLOB di Azure, vedere Backup e ripristino di SQL Server con Archiviazione BLOB di Microsoft Azure.

Esempi

R. Ripristinare un backup del database completo

  1. In Esplora oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.

  2. Fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database...

  3. Per specificare l'origine e il percorso dei set di backup da ripristinare, nella pagina Generale , utilizzare la sezione Origine . Selezionare una delle seguenti opzioni:

    • 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

      Selezionare il pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup.

      • Finestra di dialogoSeleziona dispositivi di backup

        Tipo di supporto di backup
        Selezionare un tipo di supporto dall'elenco a discesa Tipo di supporti di backup . Nota: l'opzione Nastro viene visualizzata solo se nel computer è montata un'unità nastro, mentre l'opzione Dispositivo di backup viene visualizzata solo se è disponibile almeno un dispositivo di backup.

        Aggiunta
        In base al tipo di supporto selezionato nell'elenco a discesa Tipo di supporti di backup , facendo clic su Aggiungi , si apre una delle finestre di dialogo seguenti. Se l'elenco nella casella di riepilogo Supporti di backup è pieno, il pulsante Aggiungi non è disponibile.

        Tipo file multimediale Finestra di dialogo Descrizione
        file Individua file di backup In questa finestra di dialogo è possibile selezionare un file locale nell'albero o specificare un file remoto utilizzandone il nome completo in formato UNC (Universal Naming Convention). Per altre informazioni, vedere Dispositivi di backup (SQL Server).
        Dispositivo Selezionare il dispositivo di backup In questa finestra di dialogo è possibile eseguire una selezione da un elenco di dispositivi di backup logici definiti sull'istanza del server.
        Nastro Seleziona unità nastro In questa finestra di dialogo è possibile eseguire una selezione da un elenco di unità nastro fisicamente collegate al computer che esegue l'istanza di SQL Server.
        URL Selezionare un percorso del file di backup In questa finestra di dialogo è possibile selezionare un contenitore di archiviazione esistente con credenziali di SQL Server o di Azure, aggiungere un nuovo contenitore di archiviazione di Azure con firma di accesso condiviso oppure creare una firma di accesso condiviso e credenziali di SQL Server per un contenitore di archiviazione esistente. Vedere anche Connect to a Microsoft Azure Subscription(Connettersi a una sottoscrizione di Microsoft Azure)
        URL S3 Selezionare il percorso del file di backup S3 In questa finestra di dialogo immettere l'URL dell’host virtuale, l'ID chiave privata e l'ID chiave di accesso per l'archiviazione oggetti compatibile con S3. Per altre informazioni, vedere Backup e ripristino di SQL Server con l'archiviazione di oggetti compatibile con S3.

        Rimuovere Consente di rimuovere uno o più file, nastri o dispositivi di backup logici selezionati.

        Contenuti Consente di visualizzare il contenuto del supporto di un file, un nastro o un dispositivo di backup logico selezionato. Questo pulsante potrebbe non funzionare se il tipo di supporto è URL.

        Supporti di backup Elenca i supporti selezionati.

        Dopo avere aggiunto i dispositivi desiderati nella casella di riepilogo Supporti di backup, selezionare 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 quando l'opzione Dispositivo è selezionata. Saranno disponibili solo i database che dispongono di backup sul dispositivo selezionato.

  4. 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 .

  5. Nella casella Ripristina fino a mantenere l'impostazione predefinita Ultimo backup eseguito oppure selezionare Cronologia per accedere alla finestra di dialogo Cronologia di backup e selezionare manualmente un momento specifico per arrestare l'azione di recupero. Per altre informazioni sulla selezione di un momento specifico, vedere Sequenza temporale di backup.

  6. Nella griglia Selezionare i set di backup da ripristinare selezionare i set di backup che si desidera ripristinare. In questa griglia vengono visualizzati i backup disponibili per il percorso specificato. Per impostazione predefinita, viene suggerito un piano di recupero. Per ignorare il piano di recupero suggerito, è possibile modificare le impostazioni selezionate nella griglia. I backup che dipendono dal ripristino di un backup precedente vengono automaticamente deselezionati quando il backup precedente è deselezionato. Per informazioni sulle colonne nella griglia Selezionare i set di backup da ripristinare, vedere Ripristina database (pagina Generale).

  7. Facoltativamente, selezionare File nel riquadro Seleziona una pagina per accedere alla finestra di dialogo File. In questa finestra è possibile ripristinare il database in un nuovo percorso specificando una destinazione di ripristino nuova per ogni file nella griglia Ripristina file di database come. Per altre informazioni su questa griglia, vedere Ripristina database (pagina File).

  8. Per visualizzare o selezionare le opzioni avanzate, nella pagina Opzioni del pannello Opzioni di ripristino è possibile selezionare una delle opzioni seguenti, in base alla situazione:

    1. OpzioniWITH (non obbligatorie):

      • Sovrascrivi il database esistente (WITH REPLACE)

      • Mantieni le impostazioni di replica (WITH KEEP_REPLICATION)

      • Limita accesso al database ripristinato (WITH RESTRICTED_USER)

    2. 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.

    3. Eseguire il backup della parte finale del log prima del ripristino. Non in tutti gli scenari di ripristino è necessario un backup della parte finale del log. Per altre informazioni, vedere Scenari in cui è necessario un backup della parte finale del log in Backup della parte finale del log (SQL Server).

    4. Le operazioni di ripristino potrebbero non riuscire in presenza di connessioni attive al database. Selezionare l'opzione Chiudi connessioni esistenti per garantire che tutte le connessioni attive tra Management Studio e il database vengano chiuse. Questa casella di controllo imposta il database sulla modalità utente singolo prima di qualsiasi operazione di ripristino e imposta il database sulla modalità multiutente al termine.

    5. 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 è necessaria, a meno che le dimensioni del database siano elevate e si desideri monitorare lo stato dell'operazione di ripristino.

    Per altre informazioni su queste opzioni di ripristino, vedere Ripristina database (pagina Opzioni).

  9. Seleziona OK.

B. Ripristinare un backup su disco precedente su un database esistente

Nell'esempio seguente viene ripristinato un backup del disco precedente di Sales e viene sovrascritto il database Sales esistente.

  1. In Esplora oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.

  2. Fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database...

  3. Nella pagina Generale selezionare Dispositivo nella sezione Origine .

  4. Selezionare il pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup. Selezionare Aggiungi e passare al backup. Selezionare OK dopo aver selezionato i file di backup su disco.

  5. Selezionare OK per tornare alla pagina Generale.

  6. Selezionare Opzioni nel riquadro Seleziona una pagina.

  7. Nella sezione Opzioni di ripristino selezionare Sovrascrivi il database esistente (WITH REPLACE).

    Nota

    Se non si seleziona questa opzione è possibile che sia visualizzato il messaggio di errore seguente: "System.Data.SqlClient.SqlError: Il set di backup include il backup di un database diverso dal database 'Sales' esistente. (Microsoft.SqlServer.SmoExtended)"

  8. Nella sezione Backup della parte finale del log deselezionare Esegui il backup della parte finale del log prima del ripristino.

    Nota

    Non in tutti gli scenari di ripristino è necessario un backup della parte finale del log. Se il punto di recupero è contenuto in un backup del log precedente, non è necessario un backup della parte finale del log. Non è inoltre necessario eseguire il backup della parte finale del log se il punto di recupero è incluso in un backup del log precedente o se si sta spostando o sostituendo (sovrascrivendo) il database e non è necessario ripristinarlo fino a un punto nel tempo dopo l'ultimo backup. Per altre informazioni, vedere Backup della parte finale del log (SQL Server).

    Questa opzione non è disponibile per i database nel modello di recupero con registrazione minima.

  9. Nella sezione Connessioni server selezionare Chiudi connessioni esistenti ai database di destinazione.

    Nota

    Se non si seleziona questa opzione è possibile che sia visualizzato il messaggio di errore seguente: "System.Data.SqlClient.SqlError: Impossibile ottenere accesso esclusivo al database perché è in uso. (Microsoft.SqlServer.SmoExtended)"

  10. Seleziona OK.

C. Ripristinare un backup su disco precedente con un nome di database nuovo nella posizione in cui esiste già il database originale

Nell'esempio seguente viene ripristinato un backup del disco precedente di Sales e viene creato un database nuovo con il nome SalesTest. Il database originale Salesè già esistente nel server.

  1. In Esplora oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.

  2. Fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database...

  3. Nella pagina Generale selezionare Dispositivo nella sezione Origine .

  4. Selezionare il pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup. Selezionare Aggiungi e passare al backup. Selezionare OK dopo aver selezionato i file di backup su disco.

  5. Selezionare OK per tornare alla pagina Generale.

  6. 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 .

  7. Selezionare Opzioni nel riquadro Seleziona una pagina.

  8. Nella sezione Backup della parte finale del log deselezionare "Esegui il backup della parte finale del log prima del ripristino".

    Importante

    Se non si deseleziona questa opzione, il database esistente Salespasserà allo stato di ripristino.

  9. Seleziona OK.

    Nota

    Se si riceve il messaggio di errore seguente: "System.Data.SqlClient.SqlError: La parte finale del log per il database "Sales" non è stata inclusa nel backup. Se il log contiene informazioni che non si desidera perdere, utilizzare BACKUP LOG WITH NORECOVERY per eseguire il backup del log. Se si desidera semplicemente sovrascrivere il contenuto del log, utilizzare la clausola WITH REPLACEo WITH STOPAT dell'istruzione RESTORE. (Microsoft.SqlServer.SmoExtended)". Probabilmente non è stato immesso il nuovo nome del database come descritto nel passo 6 precedente. In genere, il ripristino impedisce la sovrascrittura accidentale di un database con un altro. Se il database specificato in un'istruzione RESTORE esiste già nel server corrente e il GUID del gruppo di database specificato è diverso da quello registrato nel set di backup, il database non verrà ripristinato. Questa misura di sicurezza è importante.

D. Eseguire un ripristino temporizzato

Nell'esempio seguente viene ripristinato lo stato del database corrispondente alle ore 1:23:17 PM del giorno May 30, 2016 e viene illustrata un'operazione di ripristino di più backup del log. Il database attualmente non esiste nel server.

  1. In Esplora oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.
  2. Fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database...
  3. Nella pagina Generale selezionare Dispositivo nella sezione Origine .
  4. Selezionare il pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup. Selezionare Aggiungi e passare al backup completo e a tutti i backup del log delle transazioni rilevanti. Selezionare OK dopo aver selezionato i file di backup su disco.
  5. Selezionare OK per tornare alla pagina Generale.
  6. Nella sezione Destinazione selezionare Sequenza temporale per accedere alla finestra di dialogo Sequenza temporale di backup e selezionare manualmente un momento in cui arrestare l'azione di recupero.
  7. Selezionare Data e ora specifiche.
  8. Modificare l'Intervallo sequenza temporale nella casella di riepilogo a discesa Ora (facoltativo).
  9. Spostare il dispositivo di scorrimento sul tempo desiderato.
  10. Selezionare OK per tornare alla pagina Generale.
  11. Seleziona OK.

E. Ripristinare un backup dal servizio di archiviazione di Microsoft Azure

Passaggi comuni

Nei due esempi seguenti viene eseguito un ripristino di Sales da un backup che si trova nel servizio di archiviazione di Microsoft Azure. Il nome dell'account di archiviazione è mystorageaccount, mentre il nome del contenitore è myfirstcontainer. Per essere più concisi, i primi sei passaggi sono elencati di seguito una volta sola e tutti gli esempi verranno avviati con il passaggio 7.

  1. In Esplora oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.
  2. Fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database.....
  3. Nella pagina Generale selezionare Dispositivo nella sezione Origine .
  4. Selezionare il pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup.
  5. Selezionare URL dall'elenco a discesa Tipo di supporti di backup: .
  6. Selezionare Aggiungi e si aprirà la finestra di dialogo Selezionare un percorso del file di backup.

E1. Ripristinare un backup con striping in un database esistente con firma di accesso condiviso esistente

Sono stati creati criteri di accesso archiviati con diritti di lettura, scrittura ed elenco. Per il contenitore https://mystorageaccount.blob.core.windows.net/myfirstcontainerè stata creata una firma di accesso condiviso associata ai criteri di accesso archiviati. I passaggi sono essenzialmente gli stessi se sono già esistenti credenziali di SQL Server. Il database Sales non esiste attualmente nel server. I file di backup sono Sales_stripe1of2_20160601.bak e Sales_stripe2of2_20160601.bak.

  1. Selezionare https://mystorageaccount.blob.core.windows.net/myfirstcontainer dall'elenco a discesa Contenitore di archiviazione di Azure: se esistono già credenziali di SQL Server, altrimenti immettere manualmente il nome del contenitore, vale a dire https://mystorageaccount.blob.core.windows.net/myfirstcontainer.
  2. Digitare la firma di accesso condiviso nella casella di testo con formattazione Firma di accesso condiviso: .
  3. Selezionare OK. Si aprirà la finestra di dialogo Trova file di backup in Microsoft Azure.
  4. Espandere Contenitori e scegliere https://mystorageaccount.blob.core.windows.net/myfirstcontainer.
  5. Tenendo premuto CTRL e selezionare i file Sales_stripe1of2_20160601.bak e Sales_stripe2of2_20160601.bak.
  6. Seleziona OK.
  7. Selezionare OK per tornare alla pagina Generale.
  8. Selezionare Opzioni nel riquadro Seleziona una pagina.
  9. Nella sezione Opzioni di ripristino selezionare Sovrascrivi il database esistente (WITH REPLACE).
  10. Nella sezione Backup della parte finale del log deselezionare Esegui il backup della parte finale del log prima del ripristino.
  11. Nella sezione Connessioni server selezionare Chiudi connessioni esistenti ai database di destinazione.
  12. Seleziona OK.

E2. Non esiste una firma di accesso condiviso

In questo esempio, il database Sales non esiste attualmente nel server.

  1. Selezionare Aggiungi. Si aprirà la finestra di dialogo Connetti a una sottoscrizione Microsoft.
  2. Completare la finestra di dialogo Connetti a una sottoscrizione Microsoft e selezionare OK per tornare alla finestra di dialogo Selezionare un percorso del file di backup. Per altre informazioni, vedere Connect to a Microsoft Azure Subscription (Connettersi a una sottoscrizione di Microsoft Azure).
  3. Selezionare OK nella finestra di dialogo Selezionare un percorso del file di backup. Si aprirà la finestra di dialogo Trova file di backup in Microsoft Azure.
  4. Espandere Contenitori e scegliere https://mystorageaccount.blob.core.windows.net/myfirstcontainer.
  5. Selezionare il file di backup e quindi OK.
  6. Selezionare OK per tornare alla pagina Generale.
  7. Seleziona OK.

F. Ripristinare un backup locale nell'archiviazione di Microsoft Azure (URL)

Il database Sales sarà ripristinato nel contenitore di archiviazione di Microsoft Azure https://mystorageaccount.blob.core.windows.net/myfirstcontainer da un backup che si trova nel percorso E:\MSSQL\BAK. Le credenziali di SQL Server per il contenitore di Azure sono già state create. È necessario che le credenziali di SQL Server per il contenitore di destinazione siano già esistenti in quanto non è possibile crearle nell'attività di ripristino. Il database Sales attualmente non esiste nel server.

  1. In Esplora oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.
  2. Fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database.....
  3. Nella pagina Generale selezionare Dispositivo nella sezione Origine .
  4. Selezionare il pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup.
  5. Selezionare File dall'elenco a discesa Tipo di supporti di backup:.
  6. Selezionare Aggiungi. Si aprirà la finestra di dialogo Trova file di backup.
  7. Scegliere E:\MSSQL\BAK, selezionare il file di backup e selezionare OK.
  8. Selezionare OK per tornare alla pagina Generale.
  9. Selezionare File nel riquadro Seleziona una pagina.
  10. Selezionare la casella Riloca tutti i file nella cartella.
  11. Immettere il contenitore https://mystorageaccount.blob.core.windows.net/myfirstcontainernelle caselle di testo per Cartella file di dati: e Cartella file di log:.
  12. Seleziona OK.

G. Ripristinare il backup locale dall'archiviazione oggetti compatibile con S3 (URL S3)

L'esempio seguente mostra come eseguire un ripristino di Sales da un backup situato nell'archivio oggetti compatibile con S3.
L'URL S3 ha il formato s3://<endpoint>:<port>/<bucket>/ e il file di backup è denominato Sales.bak. L'ID chiave privata e l'ID chiave di accesso sono stati ottenuti dal provider S3. Il database Sales attualmente non esiste nel server.

  1. In Esplora oggetticonnettersi a un'istanza del motore di database di SQL Server e, successivamente, espanderla.
  2. Fare clic con il pulsante destro del mouse su Database e scegliere Ripristina database.....
  3. Nella pagina Generale selezionare Dispositivo nella sezione Origine .
  4. Selezionare il pulsante Sfoglia (...) per aprire la finestra di dialogo Seleziona dispositivi di backup.
  5. Selezionare URL S3 dall'elenco a discesa Tipo di supporti di backup:.
  6. Selezionare Aggiungi per aprire la finestra di dialogo Selezionare un percorso del file di backup S3.
  7. Immettere il percorso del file di backup dell'URL S3, la chiave privata e la chiave di accesso.
  8. Seleziona OK.
  9. Selezionare OK per tornare alla pagina Generale.
  10. Seleziona OK.

Vedi anche