Delen via


Een herstel naar een bepaald tijdstip uitvoeren

Gebruik het herstel naar een bepaald tijdstip (PITR) om een database te maken als een kopie van een andere database uit het verleden die binnen de bewaarperiode valt. In dit artikel wordt beschreven hoe u een herstel naar een bepaald tijdstip uitvoert van een database in SQL Managed Instance waarvoor Azure Arc is ingeschakeld.

Herstel naar een bepaald tijdstip kan een database herstellen:

  • Vanuit een bestaande database
  • Naar een nieuwe database in hetzelfde met SQL Managed Instance ingeschakeld door Azure Arc

U kunt een database herstellen naar een bepaald tijdstip binnen een vooraf geconfigureerde bewaarinstelling. U kunt als volgt de bewaarinstelling controleren voor een met SQL beheerd exemplaar dat door Azure Arc is ingeschakeld:

Voor de modus Direct verbonden:

az sql mi-arc show --name <SQL instance name> --resource-group <resource-group>
#Example
az sql mi-arc show --name sqlmi --resource-group myresourcegroup

Voor indirecte verbonden modus:

az sql mi-arc show --name <SQL instance name> --k8s-namespace <SQL MI namespace> --use-k8s
#Example
az sql mi-arc show --name sqlmi --k8s-namespace arc --use-k8s

Herstel naar een bepaald tijdstip kan momenteel een database herstellen:

  • Vanuit een bestaande database op een exemplaar
  • Naar een nieuwe database op hetzelfde exemplaar

Automatische back-ups

Sql Managed Instance ingeschakeld door Azure Arc heeft ingebouwde functie voor automatische back-ups ingeschakeld. Wanneer u een nieuwe database maakt of herstelt, start SQL Managed Instance die is ingeschakeld door Azure Arc onmiddellijk een volledige back-up en plant u automatisch differentiële back-ups en transactielogboekback-ups. Met SQL beheerd exemplaar worden deze back-ups opgeslagen in de opslagklasse die tijdens de implementatie is opgegeven.

Met herstel naar een bepaald tijdstip kan een database binnen de bewaarperiode worden hersteld naar een bepaald tijdstip. Als u een database wilt herstellen naar een specifiek tijdstip, worden met Azure Arc ingeschakelde gegevensservices de back-upbestanden in een specifieke volgorde toegepast. Bijvoorbeeld:

  1. Volledige back-up
  2. Differentiële back-up
  3. Een of meer back-ups van transactielogboeken

Point-in-time restore

Op dit moment worden volledige back-ups eenmaal per week gemaakt, worden er om de 12 uur differentiële back-ups gemaakt en elke 5 minuten back-ups van transactielogboeken gemaakt.

Retentieperiode

De standaardretentieperiode voor een nieuw met SQL beheerd exemplaar dat door Azure Arc is ingeschakeld, is zeven dagen en kan worden aangepast met waarden van 0 of 1-35 dagen. De bewaarperiode kan worden ingesteld tijdens de implementatie van het met SQL beheerde exemplaar door de --retention-days eigenschap op te geven. Back-upbestanden die ouder zijn dan de geconfigureerde bewaarperiode, worden automatisch verwijderd.

Een database maken op basis van een bepaald tijdstip met behulp van az CLI

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s

U kunt ook de --dry-run optie gebruiken om uw herstelbewerking te valideren zonder de database daadwerkelijk te herstellen.

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s --dry-run
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s --dry-run

Een database maken op basis van een bepaald tijdstip met behulp van kubectl

  1. Als u een herstel naar een bepaald tijdstip wilt uitvoeren met systeemeigen Kubernetes-hulpprogramma's, kunt u dit gebruiken kubectl. Maak een yaml-bestand met taakspecificaties. Bijvoorbeeld:

    apiVersion: tasks.sql.arcdata.microsoft.com/v1
    kind: SqlManagedInstanceRestoreTask                 
    metadata:                                       
      name: myrestoretask20220304
      namespace: test                              
    spec:                                           
      source:                                       
        name: miarc1                                
        database: testdb                            
      restorePoint: "2021-10-12T18:35:33Z"          
      destination:                                  
        name: miarc1                           
        database: testdb-pitr
      dryRun: false  
    
  2. Bewerk de eigenschappen als volgt:

    1. name: Unieke tekenreeks voor elke aangepaste resource (CR). Vereist door Kubernetes.
    2. namespace: Kubernetes-naamruimte waarin het exemplaar zich bevindt.
    3. source: ... name: Naam van het bronexemplaren.
    4. source: ... database: De naam van de brondatabase waaruit de herstelbewerking zou worden toegepast.
    5. restorePoint: Tijdstip voor de herstelbewerking in UTC-datum/tijd.
    6. destination: ... name: Naam van het beheerde SQL-doelexemplaren met Arc. Herstel naar een bepaald tijdstip wordt momenteel alleen ondersteund in het beheerde Exemplaar van Arc SQL. Dit moet hetzelfde zijn als het beheerde bronexemplaren van SQL.
    7. destination: ... database: De naam van de nieuwe database waarop het herstel zou worden toegepast.
  3. Maak een taak om het herstel naar een bepaald tijdstip te starten. In het volgende voorbeeld wordt de taak gestart die is gedefinieerd in myrestoretask20220304.yaml.

    kubectl apply -f myrestoretask20220304.yaml
    
  4. Controleer de status van de hersteltaak als volgt:

    kubectl get sqlmirestoretask -n <namespace>
    

De taakstatus herstellen wordt ongeveer elke 10 seconden bijgewerkt op basis van de voortgang van de pitr. De status wordt van Waiting naar Restoring of Completed Failed.

Een database maken vanuit een bepaald tijdstip met behulp van Azure Data Studio

U kunt een database ook als volgt herstellen naar een bepaald tijdstip vanuit Azure Data Studio:

  1. Azure Data Studio starten
  2. Zorg ervoor dat u over de vereiste Arc-extensies beschikt, zoals beschreven in Hulpprogramma's.
  3. Verbinding maken naar de Azure Arc-gegevenscontroller
  4. Vouw het knooppunt van de gegevenscontroller uit, klik met de rechtermuisknop op het exemplaar en selecteer Beheren. Azure Data Studio start het dashboard van het beheerde SQL-exemplaar.
  5. Klik op het tabblad Back-ups in het dashboard
  6. Als het goed is, ziet u een lijst met databases in het beheerde SQL-exemplaar en de eerste en meest recente hersteltijdvensters, en een pictogram voor het initiëren van de herstelbewerking
  7. Klik op het pictogram voor de database waaruit u wilt herstellen. Azure Data Studio start een blade aan de rechterkant
  8. Geef de vereiste invoer op de blade op en klik op Herstellen

Voortgang bijhouden

Wanneer een herstelbewerking wordt gestart, wordt een taak gemaakt in het Kubernetes-cluster waarmee de werkelijke herstelbewerkingen van volledige, differentiële en logboekback-ups worden uitgevoerd. De voortgang van deze activiteit kan als volgt worden bewaakt vanuit uw Kubernetes-cluster:

kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc

U kunt meer details van de taak krijgen door deze uit te voeren kubectl describe op de taak. Bijvoorbeeld:

kubectl describe sqlmirestoretask <nameoftask> -n <namespace>

Bewaarperiode configureren

De bewaarperiode voor een SQL Managed Instance die is ingeschakeld door Azure Arc, kan als volgt opnieuw worden geconfigureerd vanuit de oorspronkelijke instelling:

Waarschuwing

Als u de huidige bewaarperiode vermindert, verliest u de mogelijkheid om te herstellen naar punten die ouder zijn dan de nieuwe bewaarperiode. Back-ups die niet meer nodig zijn om PITR te bieden binnen de nieuwe bewaarperiode, worden verwijderd. Als u de huidige bewaarperiode verhoogt, krijgt u niet onmiddellijk de mogelijkheid om te herstellen naar oudere tijdstippen binnen de nieuwe bewaarperiode. U krijgt dat vermogen in de loop van de tijd, omdat het systeem back-ups langer begint te bewaren.

De --retention-period kan als volgt worden gewijzigd voor een SQL Managed Instance-Azure Arc. De onderstaande opdracht is van toepassing op zowel als direct indirect verbonden modi.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days <retentiondays>

Bijvoorbeeld:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 10

Automatische back-ups uitschakelen

U kunt de ingebouwde automatische back-ups uitschakelen voor een specifiek exemplaar van SQL Managed Instance dat is ingeschakeld door Azure Arc door de --retention-days eigenschap als volgt in te stellen op 0. De onderstaande opdracht is van toepassing op zowel als direct indirect modi.

Waarschuwing

Als u automatische back-ups uitschakelt voor een met SQL beheerd exemplaar dat is ingeschakeld door Azure Arc, worden alle geconfigureerde automatische back-ups verwijderd en verliest u de mogelijkheid om een herstel naar een bepaald tijdstip uit te voeren. U kunt de retention-days eigenschap zo nodig wijzigen om automatische back-ups opnieuw te starten.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days 0

Bijvoorbeeld:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 0

Back-ups bewaken

De back-ups worden opgeslagen onder /var/opt/mssql/backups/archived/<dbname>/<datetime> de map, waarbij <dbname> de naam van de database is en <datetime> een tijdstempel in UTC-indeling is voor het begin van elke volledige back-up. Telkens wanneer een volledige back-up wordt gestart, wordt er een nieuwe map gemaakt met de volledige back-up en alle volgende differentiële en transactielogboekback-ups in die map. De meest recente volledige back-up en de daaropvolgende differentiële en transactielogboekback-ups worden opgeslagen in /var/opt/mssql/backups/current/<dbname><datetime> de map.

Beperkingen

Herstel naar een bepaald tijdstip voor SQL Managed Instance waarvoor Azure Arc is ingeschakeld, heeft de volgende beperkingen:

  • Herstel naar een bepaald tijdstip is functie op databaseniveau, niet een functie op exemplaarniveau. U kunt het hele exemplaar niet herstellen met herstel naar een bepaald tijdstip.
  • U kunt alleen herstellen naar hetzelfde met SQL Managed Instance dat is ingeschakeld door Azure Arc vanaf de locatie waar de back-up is gemaakt.

Meer informatie over functies en mogelijkheden van SQL Managed Instance ingeschakeld door Azure Arc

Begin door een gegevenscontroller aan te maken

Een met SQL beheerd exemplaar maken dat is ingeschakeld door Azure Arc