Ripristinare un database in Istanza gestita di SQL di Azure a un momento precedente

Si applica a:Istanza gestita di SQL di Azure SQL

È possibile usare il ripristino temporizzato per creare un database che rappresenta una copia di un database in un momento specifico precedente. Questo articolo descrive come eseguire il ripristino temporizzato di un database in Istanza gestita di SQL di Azure.

Nota

Creare o aggiornare v02.01.2022 è stato deprecato. A partire da gennaio 2023, usare la chiamata API Creare o aggiornare v5.0.2022 sostitutiva per tutte le operazioni di ripristino del database.

Panoramica

Il ripristino temporizzato è utile negli scenari di recupero, ad esempio per un evento imprevisto causato da errore, quando i dati non vengono caricati correttamente o se vengono eliminati dati cruciali. È possibile anche usarlo semplicemente per testare e controllare la distribuzione del database. I file di backup di Azure vengono conservati da 7 a 35 giorni, a seconda delle impostazioni del database.

È possibile usare il ripristino temporizzato per ripristinare un database negli scenari seguenti:

  • Da un database esistente
  • Da un database eliminato
  • Nella stessa istanza gestita o in un'altra
  • In un'istanza gestita nella stessa sottoscrizione o in un'istanza gestita in una sottoscrizione diversa

La tabella seguente illustra gli scenari di ripristino temporizzato per Istanza gestita di SQL:

Scenario Azure portal Interfaccia della riga di comando di Azure PowerShell
Ripristinare un database esistente nella stessa istanza gestita
Ripristinare un database esistente in un'istanza gestita diversa
Ripristinare un database eliminato nella stessa istanza gestita
Ripristinare un database eliminato in un'istanza gestita diversa
Ripristinare un database esistente in un'istanza gestita in un'altra sottoscrizione
Ripristinare un database eliminato in un'istanza gestita in un'altra sottoscrizione

Autorizzazioni

Per ripristinare un database, è necessario essere:

  • Un membro del ruolo Collaboratore SQL Server o del ruolo Collaboratore di Istanza gestita di SQL (a seconda della destinazione di recupero) nella sottoscrizione
  • Il proprietario della sottoscrizione

Per ripristinare un database in una sottoscrizione di destinazione diversa, se non si è nel ruolo Collaboratore di Istanza gestita di SQL è necessario disporre anche delle autorizzazioni seguenti:

  • Microsoft.Sql/managedInstances/databases/readBackups/action nell'istanza gestita di SQL di origine.
  • Microsoft.Sql/managedInstances/crossSubscriptionPITR/action nell'istanza gestita di SQL di destinazione.

Per altre informazioni, vedere Controllo degli accessi in base al ruolo di Azure: ruoli predefiniti.

Limiti

Questi limiti si applicano al ripristino temporizzato in Istanza gestita di SQL:

  • Non è possibile usare il ripristino temporizzato per recuperare un'intera distribuzione di Istanza gestita di SQL. Usare il ripristino temporizzato solo per creare una copia di un database ospitato in Istanza gestita di SQL.

  • Le limitazioni nel ripristino temporizzato dipendono dal fatto che si stia ripristinando il database in un'istanza gestita nella stessa sottoscrizione o in un'istanza gestita in una sottoscrizione diversa.

  • Quando i criteri degli endpoint servizio sono abilitati in Istanza gestita di SQL di Azure, l'inserimento di un criterio degli endpoint servizio in una subnet impedisce ripristini temporizzati da istanze in subnet diverse.

Avviso

Tenere presente le dimensioni di archiviazione dell'istanza gestita. A seconda delle dimensioni dei dati da ripristinare, è possibile che lo spazio di archiviazione dell'istanza gestita si esaurisca. Se non si dispone di sufficiente spazio di archiviazione nell'istanza gestita per i dati ripristinati, usare un approccio diverso.

Ripristino nella stessa sottoscrizione

Se si esegue il ripristino da un'istanza gestita a un'altra nella stessa sottoscrizione di Azure, entrambe le istanze gestite devono trovarsi nella stessa area. Attualmente, non è supportato il ripristino tra aree.

Ripristino in una sottoscrizione diversa

Il ripristino di un backup di ripristino temporizzato tra sottoscrizioni presenta le limitazioni seguenti:

  • Entrambe le sottoscrizioni devono trovarsi nella stessa area.
  • Entrambe le sottoscrizioni devono trovarsi nello stesso tenant.
  • Il tipo di sottoscrizione deve essere Contratto Enterprise, Cloud Solution Provider, Microsoft Certified Partner o con pagamento in base al consumo.
  • È possibile usare l'azione di ripristino solo nell'istanza primaria.
  • È possibile ripristinare un backup solo dall'area primaria. Il ripristino di un database dall'area secondaria con replica geografica non è supportato per il ripristino temporizzato tra sottoscrizioni.
  • L'utente che esegue l'azione di ripristino deve avere l'assegnazione di ruolo Collaboratore di Istanza gestita di SQL o disporre di queste autorizzazioni esplicite:
    • Microsoft.Sql/managedInstances/databases/readBackups/action nell'istanza gestita di SQL di origine.
    • Microsoft.Sql/managedInstances/crossSubscriptionPITR/action nell'istanza gestita di SQL di destinazione.
  • Se si usa la propria chiave (BYOK), questa deve essere presente in entrambe le sottoscrizioni.

Ripristinare un database esistente

È possibile ripristinare un database esistente nella stessa sottoscrizione tramite il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure. Se si esegue il ripristino in un'istanza diversa nella stessa sottoscrizione usando PowerShell o l'interfaccia della riga di comando di Azure, assicurarsi di specificare le proprietà per la risorsa di Istanza gestita di SQL di destinazione. Per impostazione predefinita, il database viene ripristinato nella stessa istanza.

Se si esegue il ripristino in una sottoscrizione diversa, la chiamata API Creare o aggiornare v5.0.2022 sottostante l'azione di ripristino deve contenere restorePointInTime, crossSubscriptionTargetManagedInstanceId e o crossSubscriptionSourceDatabaseId o crossSubscriptionRestorableDroppedDatabaseId.

Per ripristinare un database esistente è possibile passare alla pagina del database nel portale di Azure e selezionare Ripristina.

In alternativa, per ripristinare il database, seguire questa procedura:

  1. Accedere al portale di Azure.

  2. Passare all’Istanza gestita di SQL di destinazione in cui si prevede di ripristinare il database.

  3. Nella pagina Panoramica scegliere + Nuovo database per aprire la pagina Crea database gestito di Azure SQL.

    Screenshot that shows the SQL Managed Instance overview pane in the Azure portal, with adding a new database selected.

  4. Nella scheda Informazioni di base della pagina Crea database gestito di Azure SQL, specificare i dettagli della sottoscrizione e del gruppo di risorse in Dettagli progetto. Quindi, in Dettagli database specificare il nuovo nome del database che si intende ripristinare. Verificare che la corretta istanza gestita sia elencata nell'elenco a discesa. Selezionare quindi Avanti: Origine dati >

    Screenshot of the Azure portal that shows the Basics tab of the Create Azure SQL Managed Database page.

  5. Nella scheda Origine dati scegliere Ripristino temporizzato in Usa dati esistenti. Immettere la sottoscrizione, il gruppo di risorse e l'istanza gestita che contiene il database di origine. Nell'elenco a discesa Database gestito scegliere il database di cui si vuole eseguire il ripristino e quindi scegliere il punto nel tempo da cui si vuole ripristinare il database. Le istanze di origine e di destinazione possono essere la stessa, oppure due istanze diverse. Selezionare Avanti: Impostazioni aggiuntive >

    Screenshot of the Azure portal that shows the data source tab of the Create Azure SQL Managed Database page, with point-in-time restore selected.

  6. Nella scheda Impostazioni aggiuntive è possibile selezionare la casella per ereditare i criteri di conservazione dal database di origine oppure, in alternativa, è possibile selezionare Configura conservazione per aprire la pagina Configura criteri e impostare i criteri di conservazione desiderati per il database ripristinato. Al termine, selezionare Rivedi e crea.

    Screenshot of the Azure portal that shows the additional settings tab of the Create Azure SQL Managed Database page.

  7. Nella scheda Rivedi e crea, al termine della convalida, selezionare Crea per ripristinare il database.

Questa azione avvia il processo di ripristino, che crea un nuovo database e lo popola con i dati del database originale al momento specificato. Per altre informazioni sul processo di recupero, vedere Ora punto di ripristino.

Ripristino di un database eliminato

È possibile ripristinare un database eliminato usando il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure.

Per il ripristino di un database gestito eliminato con il portale di Azure:

  1. Nel portale di Azure, passare all'istanza gestita di origine.

  2. Nel menu di sinistra, in Gestione dati, selezionare Backup.

  3. In Mostra database, selezionare Eliminati.

  4. Per il database da ripristinare, selezionare Ripristina.

    Screenshot that shows available databases in the portal, with the Restore button highlighted to restore a deleted database.

  5. In Crea database gestito di Azure SQL, immettere o selezionare i dettagli per l'istanza gestita di destinazione in cui ripristinare il database. Selezionare la scheda Origine dati.

  6. In Origine dati, immettere o selezionare i dettagli per il database di origine. Selezionare la scheda Impostazioni aggiuntive.

  7. In Impostazioni aggiuntive, configurare le impostazioni di conservazione. Selezionare la scheda Rivedi e crea.

  8. In Rivedi e crea, selezionare Crea per ripristinare il database eliminato.

Sovrascrivere un database esistente

Per sovrascrivere un database esistente è necessario eseguire le seguenti operazioni:

  1. Eliminare il database originale da sovrascrivere.
  2. Rinominare il database con recupero temporizzato con il nome del database eliminato.

Eliminare il database originale

È possibile eliminare il database tramite il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure.

Un'altra opzione per eliminare il database consiste nel connettersi direttamente all'istanza gestita in SQL Server Management Studio (SSMS) e usare quindi il comando Transact-SQL (T-SQL) DROP:

DROP DATABASE WorldWideImporters;

Per connettersi al database nell'istanza gestita, usare uno dei metodi seguenti:

  1. Nel portale di Azure, selezionare il database nell'istanza gestita.

  2. Nella barra dei comandi, selezionare Elimina.

    Screenshot that shows how to delete a database by using the Azure portal.

Assegnare al nuovo database il nome del database originale

Usare SQL Server Management Studio (SSMS) per connettersi direttamente all'istanza gestita. Quindi, eseguire la query T-SQL seguente. La query modifica il nome del database ripristinato con quello del database eliminato che si desidera sovrascrivere.

ALTER DATABASE WorldWideImportersPITR MODIFY NAME = WorldWideImporters;

Per connettersi al database nell'istanza gestita, usare uno dei metodi seguenti:

Passaggi successivi

Informazioni sui backup automatizzati.