Esercizio - Recuperare i dati ripristinando un database SQL di Azure

Completato

I ripristini di prova sono un componente fondamentale di qualsiasi strategia di ripristino di emergenza.

Si vuole acquisire familiarità con la procedura di ripristino di un database di cui è stato eseguito il backup a un momento specifico, nel caso in cui si rendesse necessario. Si desidera anche analizzare il tempo richiesto da un'operazione di ripristino, una componente chiave nell'ambito del calcolo del valore Recovery Time Objective (RTO). È possibile pianificare questa operazione nelle linee guida per l'organizzazione.

Puoi considerare il database ripristinato come sostituzione del database originale o usarlo come origine dati per aggiornare il database originale. Sebbene sia possibile sovrascrivere e sostituire un database in un'istanza di SQL Server o in un'Istanza gestita di SQL di Azure, non è possibile sovrascrivere un database SQL di Azure con un ripristino.

Si eseguirà un ripristino dai backup automatizzati del database SQL di Azure.

Verificare che i backup siano attivi

Suggerimento

Il completamento corretto del primo backup può richiedere fino a 15 minuti dopo la creazione del database.

Analizzare i backup effettuati automaticamente da Azure SQL per noi.

  1. In Azure Cloud Shell eseguire il comando PowerShell seguente per impostare una variabile sul valore dell'istanza di SQL Server:

    $sqlserver=Get-AzSqlServer
    
  2. Visualizzare i punti di ripristino disponibili, in base ai backup, con il cmdlet Get-AzSqlDatabaseRestorePoint di PowerShell:

    Get-AzSqlDatabaseRestorePoint `
        -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
        -DatabaseName sql-erp-db `
        -ServerName $sqlserver.ServerName
    

    L'output dovrebbe essere simile al codice seguente. Se il comando non restituisce alcun valore, non è ancora stato avviato alcun backup. Eseguire di nuovo questo comando dopo qualche minuto.

    ResourceGroupName        : <rgn>[sandbox resource group name]</rgn>
    ServerName               : erpserver-53903
    DatabaseName             : sql-erp-db
    Location                 : East US
    RestorePointType         : CONTINUOUS
    RestorePointCreationDate :
    EarliestRestoreDate      : 9/24/19 4:21:21 PM
    RestorePointLabel        :
    

    RestorePointType è CONTINUOUS, a indicare che i backup vengono eseguiti automaticamente. EarliestRestoreDate indica il timestamp del primo backup. Con i backup disponibili, procedere con l'esercizio.

Eliminare una tabella dal database

Si inizierà simulando una modifica errata del database.

  1. Nel menu del portale di Azure o nella home page selezionare Tutte le risorse, selezionare erpserver-NNNN, selezionare Database SQL e quindi selezionare il database sql-erp-db.

  2. Verrà usato l'editor di query T-SQL integrato nel portale di Azure. Selezionare Editor di query (anteprima) e quindi accedere con il nome utente dbadmin e la password specificata per questo account. I comandi T-SQL seguenti funzionano anche in SQL Server Management Studio, o l'estensione mssql per Visual Studio Code, o altri strumenti di query T-SQL.

  3. Procedere alla rimozione della tabella Person creata in precedenza. In una nuova finestra di query eseguire questo comando. Annotare l'ora indicata sull'orologio.

    DROP TABLE Person
    
  4. Per controllare le tabelle nel database, selezionare Nuova query. Quindi, nella finestra Query 2 eseguire questo comando per elencare tutte le tabelle nel database:

    SELECT schema_name(t.schema_id) as schema_name,
        t.name as table_name
    FROM sys.tables AS t
    ORDER BY schema_name, table_name;
    

    Verrà restituito Nessun risultato perché la tabella Person è stata eliminata.

    Screenshot che non mostra risultati restituiti dopo l'esecuzione di query per le tabelle nel database.

Creare un ripristino temporizzato

La tabella Person è stata eliminata per errore. A questo punto, ripristinare lo stato precedente del database.

  1. Nel menu del portale di Azure o nella home page selezionare Tutte le risorse e quindi il database sql-erp-db.

  2. Nella parte superiore della pagina Panoramica selezionare Ripristina.

  3. Completare la scheda Basic nella pagina Ripristina database con questi valori e quindi selezionare Rivedi e crea. Qui è necessario fornire un nuovo nome di database per la versione ripristinata del database.

    Impostazione Valore
    Seleziona origine Temporizzato
    Nome database sql-erp-db-restored
    Punto di ripristino Selezionare un'ora che preceda di circa 10 minuti la rimozione della tabella Person.
    Server erpserver-xxxxx
    Usare il pool elastico SQL? No
    Calcolo e archiviazione Default value
    Ridondanza dell'archivio di backup Archivio di backup con ridondanza locale

    Screenshot della pagina Ripristina database con il pulsante Rivedi e crea selezionato.

  4. Seleziona Crea. Il completamento del ripristino del database richiede alcuni minuti.

Visualizzare il database ripristinato

Il database ripristinato contiene la tabella Person.

  1. Nel menu del portale di Azure o nella Home page, selezionare Tutte le risorse e quindi selezionare il database sql-erp-db-restored.

  2. Selezionare Editor di query (anteprima) e quindi accedere con il nome utente dbadmin e la password specificata per questo account.

  3. Per controllare le tabelle nel database, nella finestra Query 1 eseguire questo comando:

    SELECT schema_name(t.schema_id) as schema_name,
        t.name as table_name
    FROM sys.tables AS t
    ORDER BY schema_name, table_name;
    

    Il database è stato ripristinato allo stato precedente, inclusa la tabella Person.

    Screenshot che mostra i risultati dopo la query delle tabelle nel database.

  4. Verificare che i dati si trovino nella tabella eseguendo questo comando:

    SELECT * FROM Person;
    

    Verranno visualizzati i dati immessi in precedenza.

    Screenshot che mostra i risultati confermati dopo la query delle tabelle nel database.

Si è appreso come è possibile ripristinare un database se si verifica un evento imprevisto per i dati. Si è familiarizzato con il processo di ripristino. Ora è possibile garantire all'organizzazione di aver definito correttamente le procedure di backup e ripristino.