Delen via


Eén tenant herstellen met een SaaS-app met een database per tenant

Van toepassing op: Azure SQL Database

Met het model van een database per tenant kunt u eenvoudig één tenant herstellen naar een eerder tijdstip zonder dat dit van invloed is op andere tenants.

In deze zelfstudie worden twee patronen voor gegevensherstel beschreven:

  • Een database herstellen in een parallelle database (naast elkaar).
  • Een database ter plekke herstellen, waarbij de bestaande database wordt vervangen.
Patroon Omschrijving
Herstellen in een parallelle database Dit patroon kan worden gebruikt voor taken zoals evaluatie, controle en naleving zodat een tenant de betreffende gegevens vanaf een eerder tijdstip kan inspecteren. De huidige database van de tenant blijft online en ongewijzigd.
Ter plekke herstellen Dit patroon wordt doorgaans gebruikt om een tenant te herstellen naar een eerder tijdstip, nadat een tenant per ongeluk gegevens heeft verwijderd of beschadigd. De oorspronkelijke database wordt offline gezet en vervangen door de herstelde database.

U kunt deze zelfstudie alleen voltooien als aan de volgende vereisten wordt voldaan:

Inleiding tot de herstelpatronen voor SaaS-tenants

Er zijn twee eenvoudige patronen voor het herstellen van de gegevens van een afzonderlijke tenant. Omdat de tenantdatabases van elkaar zijn geïsoleerd, heeft het herstellen van één tenant geen invloed op de gegevens van andere tenants. De Azure SQL Database-functie voor herstellen naar een bepaald tijdstip (Point-in-time-Restore, PITR) wordt in beide patronen gebruikt. Met PITR wordt altijd een nieuwe database gemaakt.

  • Parallel herstellen: In het eerste patroon wordt een nieuwe parallelle database gemaakt naast de huidige database van de tenant. De tenant krijgt vervolgens alleen-lezen toegang tot de herstelde database. De herstelde gegevens kunnen worden gecontroleerd en mogelijk worden gebruikt om de huidige gegevens te overschrijven. De ontwerper van de app bepaalt hoe de tenant toegang verkrijgt tot de herstelde database en welke opties voor herstel worden geboden. Het kan in sommige scenario's volstaan dat de tenant wordt toegestaan om de gegevens op een eerder tijdstip te controleren.

  • Herstellen ter plaatse: het tweede patroon is handig als gegevens verloren zijn gegaan of beschadigd zijn en de tenant wil terugkeren naar een eerder punt. De tenant wordt offline geplaatst terwijl de database wordt hersteld. De oorspronkelijke database wordt verwijderd en de naam van de herstelde database wordt gewijzigd. De back-upketen van de oorspronkelijke database blijft toegankelijk na het verwijderen, zodat u de database zo nodig kunt herstellen naar een eerder tijdstip.

Als de database gebruikmaakt van actieve geo-replicatie en een parallel herstel, wordt aangeraden de vereiste gegevens van de herstelde database naar de oorspronkelijke database te kopiëren. Als u de oorspronkelijke database vervangt door de herstelde database, moet u geo-replicatie opnieuw configureren en opnieuw synchroniseren.

De scripts voor de SaaS-app met een database per tenant Wingtip Tickets ophalen

De databasescripts en app-broncode van de SaaS-app met meerdere tenants Wingtip Tickets vindt u in de GitHub-opslagplaats WingtipTicketsSaaS-DbPerTenant. Raadpleeg de algemene richtlijnen voor stappen voor het downloaden en deblokkeren van de scripts voor de SaaS-app Wingtip Tickets.

Voordat u begint

Wanneer een database wordt gemaakt, kan het 10 tot 15 minuten duren voordat de eerste volledige back-up beschikbaar is vanwaaruit kan worden hersteld. Als u de app zojuist hebt geïnstalleerd, moet u mogelijk enkele minuten wachten voordat u dit scenario kunt uitvoeren.

Simuleren dat een tenant per ongeluk gegevens verwijdert

Als u deze herstelscenario's wilt demonstreren, moet u eerst 'per ongeluk' een gebeurtenis in een van de tenantdatabases verwijderen.

De app Gebeurtenissen openen om de huidige gebeurtenissen te bekijken

  1. Open de Events Hub (http://events.wtp.<user>.trafficmanager.net) en selecteer Contoso Concert Hall.

    A screenshot of the events hub page of the sample application. The entry for Contoso Concert Hall is boxed in red.

  2. Schuif door de lijst met gebeurtenissen en noteer de laatste gebeurtenis in de lijst.

    A screenshot from the sample application. The last event appears.

Verwijder 'per ongeluk' de laatste gebeurtenis

  1. Open ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1in PowerShell ISE de volgende waarde en stel deze in:

    • $DemoScenario = 1, De laatste gebeurtenis verwijderen (zonder ticketverkoop).
  2. Druk op F5 om het script uit te voeren en de laatste gebeurtenis te verwijderen. Het volgende bevestigingsbericht wordt weergegeven:

    Deleting last unsold event from Contoso Concert Hall ...
    Deleted event 'Seriously Strauss' from Contoso Concert Hall venue.
    
  3. De pagina met Contoso-gebeurtenissen wordt geopend. Schuif naar beneden en controleer of de gebeurtenis is verdwenen. Als de gebeurtenis nog steeds in de lijst staat, selecteert u Vernieuwen en controleert u of de gebeurtenis is verdwenen. A screenshot from the sample application. The last event is removed.

Een tenantdatabase parallel met de productiedatabase herstellen

In deze oefening wordt de Contoso Concert Hall-database hersteld naar een bepaald tijdstip voordat de gebeurtenis werd verwijderd. In dit scenario wordt ervan uitgegaan dat u de verwijderde gegevens in een parallelle database wilt controleren.

Het script Restore-TenantInParallel.ps1 maakt een parallelle tenantdatabase met de naam ContosoConcertHall_old, met een parallelle catalogusvermelding. Dit herstelpatroon is geschikt voor herstel bij beperkt gegevensverlies. U kunt dit patroon ook gebruiken als u gegevens moet controleren voor nalevings- of controledoeleinden. Het is de aanbevolen methode wanneer u gebruikmaakt van actieve geo-replicatie.

  1. Voer het gedeelte Simuleren dat een tenant per ongeluk gegevens verwijdert uit.
  2. Open in de PowerShell ISE ...\Learning Modules\Business Continuity and Disaster Recovery\RestoreTenant\Demo-RestoreTenant.ps1.
  3. Stel het volgende in: $DemoScenario = 2, De tenant parallel herstellen.
  4. Druk op F5 om het script uit te voeren.

Met het script wordt de tenantdatabase hersteld naar een tijdstip voordat u de gebeurtenis hebt verwijderd. De database wordt hersteld naar een nieuwe database met de naam ContosoConcertHall_old. De catalogusmetagegevens die in deze herstelde database aanwezig zijn, worden verwijderd en vervolgens wordt de database aan de catalogus toegevoegd met behulp van een sleutel die is samengesteld uit de ContosoConcertHall_old naam.

Met het demoscript wordt de pagina met gebeurtenissen voor deze nieuwe tenantdatabase geopend in uw browser. Uit de URL http://events.wingtip-dpt.<user>.trafficmanager.net/contosoconcerthall_old kunt u opmaken dat op deze pagina gegevens worden weergegeven uit de herstelde database waarvoor _old aan de naam is toegevoegd.

Schuif door de gebeurtenissen die worden vermeld in de browser om te controleren of de gebeurtenis die is verwijderd in de vorige sectie is hersteld.

De herstelde tenant beschikbaar maken als een aanvullende tenant, met een eigen Gebeurtenissen-app, is waarschijnlijk niet de manier waarop u een tenant toegang biedt tot herstelde gegevens. Het dient om het herstelpatroon te illustreren. Normaal gesproken verleent u alleen-lezen toegang tot de oude gegevens en behoudt u de herstelde database gedurende een bepaalde periode. In het voorbeeld kunt u de vermelding voor de herstelde tenant verwijderen nadat u klaar bent door het scenario Herstelde tenant verwijderen uit te voeren.

  1. Stel het volgende in: $DemoScenario = 4, Herstelde tenant verwijderen.
  2. Druk op F5 om het script uit te voeren.
  3. De ContosoConcertHall_old vermelding wordt nu verwijderd uit de catalogus. Sluit de pagina met gebeurtenissen voor deze tenant in uw browser.

Een tenant ter plekke herstellen, waarbij de bestaande tenantdatabase wordt vervangen

In deze oefening wordt de Contoso Concert Hall-tenant hersteld naar een bepaald tijdstip voordat de gebeurtenis werd verwijderd. Met Restore-TenantInPlace het script wordt een tenantdatabase hersteld naar een nieuwe database en wordt het origineel verwijderd. Dit herstelpatroon is geschikt voor herstel bij ernstige gegevensbeschadiging en de tenant moet mogelijk een aanzienlijk gegevensverlies opvangen.

  1. Open het Demo-RestoreTenant.ps1 bestand in PowerShell ISE.
  2. Stel $DemoScenario = 5 in, tenant herstellen.
  3. Druk op F5 om het script uit te voeren.

Met het script wordt de tenantdatabase hersteld naar een tijdstip voordat de gebeurtenis werd verwijderd. Eerst wordt de Contoso Concert Hall-tenant offline gehaald om verdere updates te voorkomen. Vervolgens wordt er een parallelle database gemaakt door de database te herstellen vanaf het herstelpunt. De herstelde database krijgt een naam met een tijdstempel om ervoor te zorgen dat de databasenaam geen conflict veroorzaakt met de naam van de bestaande tenantdatabase. Vervolgens wordt de oude tenantdatabase verwijderd en wordt de naam van de herstelde database gewijzigd in de naam van de oorspronkelijke database. Ten slotte wordt Contoso Concert Hall online geplaatst zodat de app toegang kan krijgen tot de herstelde database.

U hebt de database hersteld naar een tijdstip voordat de gebeurtenis is verwijderd. Wanneer de pagina Gebeurtenissen wordt geopend, controleert u of de laatste gebeurtenis is hersteld.

Nadat u de database hebt hersteld, kan het 10 tot 15 minuten duren voordat de eerste volledige back-up beschikbaar is vanwaaruit weer kan worden hersteld.

Notitie

Herstellen van databases met meerdere tenants naar één tenant is niet mogelijk.

Volgende stappen

In deze zelfstudie hebt u het volgende geleerd:

  • Een database herstellen in een parallelle database (naast elkaar).
  • Een database ter plekke herstellen.

Aanvullende bronnen