Oefening: gegevens herstellen door een Azure SQL-database terug te zetten
Proefherstelbewerkingen zijn een belangrijk onderdeel van elke strategie voor herstel na noodgevallen.
U moet vertrouwd raken met de stappen om een back-up van een database te herstellen naar een bepaald tijdstip mocht dat nodig zijn. U wilt ook onderzoeken hoe lang een herstelbewerking duurt. Op die manier kunt u deze keer plannen in uw richtlijnen voor uw organisatie.
Laten we een herstel uitvoeren vanuit geautomatiseerde Back-ups van Azure SQL Database.
Bevestigen dat back-ups actief zijn
Het kan tot vijftien minuten duren voordat de eerste geslaagde back-up is voltooid. U moet ervoor zorgen dat back-ups worden uitgevoerd voordat u verdergaat met de oefening.
Voer in Azure Cloud Shell de volgende PowerShell-opdracht uit om een variabele in te stellen op de waarde van uw SQL Server-exemplaar:
$sqlserver=Get-AzSqlServer
Controleer of continue back-ups worden uitgevoerd met behulp van deze opdracht:
Get-AzSqlDatabaseRestorePoint ` -ResourceGroupName <rgn>[sandbox resource group name]</rgn> ` -DatabaseName sql-erp-db ` -ServerName $sqlserver.ServerName
Als uw back-ups worden uitgevoerd, krijgt u een uitvoer die vergelijkbaar is met de volgende code. Als de opdracht geen waarde retourneert, is er nog geen back-up gestart. Voer deze opdracht enkele minuten later opnieuw uit.
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
isCONTINUOUS
, waarmee wordt aangegeven dat back-ups automatisch worden gemaakt.EarliestRestoreDate
geeft de tijdstempel van de eerste back-up aan. Nu er back-ups zijn, gaan we verder met de oefening.
Een tabel uit de database verwijderen
Laten we beginnen met het simuleren van een onjuiste databasewijziging.
Selecteer in het menu van Azure Portal of op de startpagina alle resources, selecteer erpserver-NNNN, selecteer SQL-databases en selecteer vervolgens de database sql-erp-db.
Selecteer Query-editor (preview) en meld u vervolgens aan met de dbadmin-gebruiker en het wachtwoord dat u voor dit account hebt opgegeven.
We gaan de tabel Person die we eerder hebben gemaakt, verwijderen. Voer deze opdracht uit in een nieuw queryvenster.
DROP TABLE Person
Selecteer Nieuwe query om de tabellen in de database te controleren. Voer vervolgens in het venster Query 2 deze opdracht uit om alle tabellen in de database weer te geven:
SELECT schema_name(t.schema_id) as schema_name, t.name as table_name FROM sys.tables t ORDER BY schema_name, table_name;
Geen resultaten zou moet worden geretourneerd, omdat we de tabel Person hebben verwijderd.
Herstel naar een bepaald tijdstip uitvoeren
De tabel Person is per ongeluk verwijderd. We gaan nu de database herstellen naar de vorige status.
Selecteer in het menu van Azure Portal of op de startpaginaAlle resources en selecteer vervolgens de database sql-erp-db.
Selecteer bovenaan de pagina Overzicht de optie Herstellen.
Voltooi het tabblad Basisinformatie op de pagina Database herstellen met deze waarden en selecteer Vervolgens Beoordelen en maken.
Instelling Weergegeven als Bron selecteren Point-in-time Databasenaam sql-erp-db-xxxxx Herstelpunt Selecteer een tijd van tien minuten eerder, voordat u de tabel Person verwijderde Server erpserver-xxxxx Wilt u een elastische SQL-pool gebruiken? Nee Berekening en opslag Default value Opslagredundantie voor back-ups Lokaal redundante back-upopslag Selecteer Maken. Het herstellen van de database duurt enkele minuten.
De herstelde database weergeven
De herstelde database moet de tabel Person bevatten. U kunt dat in de portal controleren.
Selecteer in het menu van Azure Portal of op de startpaginaAlle resources en selecteer vervolgens de database sql-erp-db-restored.
Selecteer Query-editor (preview) en meld u vervolgens aan met de dbadmin-gebruiker en het wachtwoord dat u voor dit account hebt opgegeven.
Voer in het venster Query 1 de volgende opdracht uit om de tabellen in de database te controleren:
SELECT schema_name(t.schema_id) as schema_name, t.name as table_name FROM sys.tables t ORDER BY schema_name, table_name;
De tabel Person zou nu aanwezig moeten zijn.
Controleer of de gegevens zich in de tabel bevinden door deze opdracht uit te voeren:
SELECT * FROM Person
De gegevens die u eerder hebt ingevoerd, worden weergegeven.
U hebt nu geleerd hoe u een database kunt herstellen als er iets onbedoeld gebeurt met de gegevens. U hebt uzelf vertrouwd gemaakt met het herstelproces. U kunt nu uw organisatie verzekeren dat u de procedures voor back-up en herstel goed hebt gedefinieerd.