Övning – Återställa data genom att återställa en Azure SQL-databas

Slutförd

Teståterställningar är en viktig komponent i alla haveriberedskapsstrategier.

Du vill bekanta dig med stegen för att återställa en säkerhetskopierad databas till en viss tidpunkt om det blir nödvändigt. Du vill också undersöka hur lång tid en återställningsåtgärd tar, en viktig del av beräkningen av RTO (Recovery Time Objection). Du kan planera för den här tiden i din vägledning för din organisation.

Du kan behandla den återställde databasen som en ersättning för den ursprungliga databasen eller använda den som en datakälla för att uppdatera den ursprungliga databasen. Även om du kan skriva över och ersätta en databas i en SQL Server-instans eller Azure SQL Managed Instance kan du inte skriva över en Azure SQL Database med en återställning.

Nu ska vi utföra en återställning från automatiserade Azure SQL Database-säkerhetskopior.

Bekräfta att säkerhetskopior är aktiva

Dricks

Det kan ta upp till 15 minuter efter att databasen har skapats för den första lyckade säkerhetskopieringen att slutföras.

Nu ska vi titta på de säkerhetskopior som Azure SQL tar åt oss, automatiskt.

  1. I Azure Cloud Shell kör du följande PowerShell-kommando för att ange en variabel till värdet för din SQL Server-instans:

    $sqlserver=Get-AzSqlServer
    
  2. Visa tillgängliga återställningspunkter, baserat på säkerhetskopior, med PowerShell-cmdleten Get-AzSqlDatabaseRestorePoint :

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

    Du bör få utdata som liknar följande kod. Om kommandot inte returnerar något värde har en säkerhetskopiering inte startats än. Kör kommandot igen efter några minuter.

    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 är CONTINUOUS, vilket anger att säkerhetskopieringar sker automatiskt. EarliestRestoreDate anger tidsstämpeln för den första säkerhetskopian. Med säkerhetskopior på plats kan vi fortsätta med övningen.

Ta bort en tabell från databasen

Vi börjar med att simulera en oavsiktlig databasändring.

  1. På menyn Azure Portal eller på startsidan väljer du Alla resurser, väljer erpserver-NNNN, väljer SQL-databaser och sedan databasen sql-erp-db.

  2. Vi använder T-SQL-frågeredigeraren inbyggd i Azure Portal. Välj Frågeredigeraren (förhandsversion) och logga sedan in med dbadmin-användaren och lösenordet som du angav för det här kontot. Följande T-SQL-kommandon fungerar också i SQL Server Management Studio, mssql-tillägget för Visual Studio Code eller andra T-SQL-frågeverktyg.

  3. Nu släpper vi tabellen Person som vi skapade tidigare. Kör det här kommandot i ett nytt frågefönster. Observera tiden på klockan.

    DROP TABLE Person
    
  4. Om du vill kontrollera tabellerna i databasen väljer du Ny fråga. Kör sedan det här kommandot i fönstret Fråga 2 för att visa en lista över alla tabeller i databasen:

    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;
    

    Inga resultat returneras eftersom vi har tagit bort tabellenPerson.

    Skärmbild som visar inga resultat som returneras efter att ha frågat efter tabellerna i databasen.

Skapa en återställning till tidpunkt

Tabellen Person togs bort av misstag. Nu ska vi återställa databasen till det tidigare tillståndet.

  1. I menyn i Azure-portalen eller på sidan Start väljer du Alla resurser och sedan databasen sql-erp-db.

  2. Högst upp på sidan Översikt väljer du Återställ.

  3. Slutför fliken Grundläggande på sidan Återställ databas med dessa värden och välj sedan Granska + skapa. Här anger du ett nytt databasnamn för den återställde versionen av databasen.

    Inställning Värde
    Välj källa Tidpunkt
    Databasnamn sql-erp-db-restored
    Återställningspunkt Välj en tid innan du tappade Person tabellen, kanske för 10 minuter sedan.
    Server erpserver-xxxxx
    Vill du använda elastisk SQL-pool? Nej
    Beräkning och lagring Standardvärde
    Redundans för säkerhetskopieringslagring Lokalt redundant lagring av säkerhetskopiering

    Skärmbild som visar återställningsdatabassidan med knappen Granska + skapa markerad.

  4. Välj Skapa. Det tar flera minuter att slutföra databasåterställningen.

Visa den återställda databasen

Den återställde databasen innehåller Person tabellen.

  1. I menyn Azure Portal eller på startsidan väljer du Alla resurser och sedan sql-erp-db-restored databasen.

  2. Välj Frågeredigeraren (förhandsversion) och logga sedan in med dbadmin-användaren och lösenordet som du angav för det här kontot.

  3. Kontrollera tabellerna i databasen genom att köra följande kommando i fönstret Fråga 1 :

    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;
    

    Databasen har återställts till det tillstånd den var, inklusive Person tabellen.

    Skärmbild som visar resultat efter att ha frågat efter tabellerna i databasen.

  4. Bekräfta att data finns i tabellen genom att köra det här kommandot:

    SELECT * FROM Person;
    

    Du bör se data som du angav tidigare.

    Skärmbild som visar bekräftade resultat efter att ha frågat efter tabellerna i databasen.

Nu har du lärt dig hur du kan återställa en databas om något oavsiktligt händer med data. Du har bekantat dig med återställningsprocessen. Nu kan du försäkra din organisation om att du har definierat säkerhetskopierings- och återställningsprocedurerna korrekt.