Dela via


Utföra en återställning till tidpunkt

Använd återställning till tidpunkt (PITR) för att skapa en databas som en kopia av en annan databas från en viss tid tidigare som ligger inom kvarhållningsperioden. Den här artikeln beskriver hur du gör en återställning till tidpunkt av en databas i SQL Managed Instance som aktiveras av Azure Arc.

Återställning till tidpunkt kan återställa en databas:

  • Från en befintlig databas
  • Till en ny databas på samma SQL Managed Instance som aktiveras av Azure Arc

Du kan återställa en databas till en tidpunkt inom en förkonfigurerad kvarhållningsinställning. Du kan kontrollera kvarhållningsinställningen för en SQL Managed Instance som aktiveras av Azure Arc på följande sätt:

För direktanslutet läge:

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

För indirekt anslutet läge:

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

För närvarande kan återställning till tidpunkt återställa en databas:

  • Från en befintlig databas på en instans
  • Till en ny databas på samma instans

Automatiska säkerhetskopieringar

SQL Managed Instance som aktiveras av Azure Arc har inbyggd funktion för automatiska säkerhetskopieringar aktiverad. När du skapar eller återställer en ny databas initierar SQL Managed Instance som aktiveras av Azure Arc en fullständig säkerhetskopia omedelbart och schemalägger differentiella säkerhetskopieringar och säkerhetskopieringar av transaktionsloggar automatiskt. SQL-hanterad instans lagrar dessa säkerhetskopior i lagringsklassen som angavs under distributionen.

Med återställning till tidpunkt kan en databas återställas till en viss tidpunkt inom kvarhållningsperioden. För att återställa en databas till en viss tidpunkt tillämpar Azure Arc-aktiverade datatjänster säkerhetskopieringsfilerna i en viss ordning. Till exempel:

  1. Fullständig säkerhetskopia
  2. Differentiell säkerhetskopia
  3. En eller flera säkerhetskopior av transaktionsloggar

Point-in-time restore

För närvarande görs fullständiga säkerhetskopieringar en gång i veckan, differentiella säkerhetskopior görs var 12:e timme och säkerhetskopior av transaktionsloggar var femte minut.

Kvarhållningsperiod

Standardkvarhållningsperioden för en ny SQL Managed Instance som aktiveras av Azure Arc är sju dagar och kan justeras med värden på 0 eller 1–35 dagar. Kvarhållningsperioden kan anges under distributionen av den SQL-hanterade instansen --retention-days genom att ange egenskapen. Säkerhetskopieringsfiler som är äldre än den konfigurerade kvarhållningsperioden tas bort automatiskt.

Skapa en databas från en tidpunkt med 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

Du kan också använda alternativet --dry-run för att verifiera återställningsåtgärden utan att återställa databasen.

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

Skapa en databas från en tidpunkt med kubectl

  1. Om du vill utföra en återställning till tidpunkt med kubernetes-inbyggda verktyg kan du använda kubectl. Skapa en yaml-fil för uppgiftsspecifikation. Till exempel:

    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. Redigera egenskaperna på följande sätt:

    1. name: Unik sträng för varje anpassad resurs (CR). Krävs av Kubernetes.
    2. namespace: Kubernetes-namnrymd där instansen finns.
    3. source: ... name: Namnet på källinstansen.
    4. source: ... database: Namnet på källdatabasen där återställningen skulle tillämpas från.
    5. restorePoint: Tidpunkt för återställningsåtgärden i UTC-datetime.
    6. destination: ... name: Namnet på den Arc-aktiverade SQL-hanterade målinstansen. För närvarande stöds återställning till tidpunkt endast i den hanterade Arc SQL-instansen. Detta bör vara samma som sql-källhanterad instans.
    7. destination: ... database: Namnet på den nya databas där återställningen skulle tillämpas på.
  3. Skapa en uppgift för att starta återställningen till tidpunkt. I följande exempel initieras uppgiften som definierats i myrestoretask20220304.yaml.

    kubectl apply -f myrestoretask20220304.yaml
    
  4. Kontrollera statusen för återställningsaktiviteten på följande sätt:

    kubectl get sqlmirestoretask -n <namespace>
    

Status för återställningsaktivitet uppdateras ungefär var 10:e sekund baserat på PITR-förloppet. Statusen fortsätter från Waiting till Restoring till Completed eller Failed.

Skapa en databas från en tidpunkt med Hjälp av Azure Data Studio

Du kan också återställa en databas till en tidpunkt från Azure Data Studio på följande sätt:

  1. Starta Azure Data Studio
  2. Se till att du har de Arc-tillägg som krävs enligt beskrivningen i Verktyg.
  3. Anslut till Azure Arc-datastyrenheten
  4. Expandera datakontrollantnoden, högerklicka på instansen och välj Hantera. Azure Data Studio startar instrumentpanelen för SQL-hanterad instans.
  5. Klicka på fliken Säkerhetskopior på instrumentpanelen
  6. Du bör se en lista över databaser på den SQL-hanterade instansen och deras tidigaste och senaste återställningstidsfönster och en ikon för att initiera återställningen
  7. Klicka på ikonen för den databas som du vill återställa från. Azure Data Studio startar ett blad mot höger sida
  8. Ange nödvändiga indata på bladet och klicka på Återställ

Övervaka förloppet

När en återställning initieras skapas en uppgift i Kubernetes-klustret som kör de faktiska återställningsåtgärderna för fullständiga, differentiella och loggsäkerhetskopior. Förloppet för den här aktiviteten kan övervakas från ditt Kubernetes-kluster på följande sätt:

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

Du kan få mer information om uppgiften genom att köra kubectl describe på aktiviteten. Till exempel:

kubectl describe sqlmirestoretask <nameoftask> -n <namespace>

Konfigurera kvarhållningsperiod

Kvarhållningsperioden för en SQL Managed Instance som aktiveras av Azure Arc kan konfigureras om från den ursprungliga inställningen på följande sätt:

Varning

Om du minskar den aktuella kvarhållningsperioden förlorar du möjligheten att återställa till tidpunkter som är äldre än den nya kvarhållningsperioden. De säkerhetskopior som inte längre behövs för att tillhandahålla återställning till tidpunkt inom den nya kvarhållningsperioden tas bort. Om du ökar den aktuella kvarhållningsperioden får du inte omedelbart möjlighet att återställa till äldre tidpunkter inom den nya kvarhållningsperioden. Du får den möjligheten över tid eftersom systemet börjar behålla säkerhetskopior längre.

--retention-period Kan ändras för en SQL Managed Instance-Azure Arc på följande sätt. Kommandot nedan gäller för både direct och indirect anslutna lägen.

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

Till exempel:

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

Inaktivera automatiska säkerhetskopieringar

Du kan inaktivera de inbyggda automatiserade säkerhetskopiorna för en specifik instans av SQL Managed Instance som aktiveras av Azure Arc genom att ange --retention-days egenskapen till 0 enligt följande. Kommandot nedan gäller både direct lägen och indirect lägen.

Varning

Om du inaktiverar automatiska säkerhetskopieringar för en SQL Managed Instance som aktiveras av Azure Arc tas alla konfigurerade automatiska säkerhetskopieringar bort och du förlorar möjligheten att göra en återställning till tidpunkt. Du kan ändra egenskapen retention-days för att initiera automatiska säkerhetskopior igen om det behövs.

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

Till exempel:

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

Övervaka säkerhetskopior

Säkerhetskopiorna lagras under /var/opt/mssql/backups/archived/<dbname>/<datetime> mappen, där <dbname> är namnet på databasen och <datetime> skulle vara en tidsstämpel i UTC-format, i början av varje fullständig säkerhetskopia. Varje gång en fullständig säkerhetskopia initieras skapas en ny mapp med den fullständiga ryggen och alla efterföljande differentiella och transaktionsloggsäkerhetskopior i mappen. Den senaste fullständiga säkerhetskopieringen och dess efterföljande differentiella säkerhetskopieringar och transaktionsloggsäkerhetskopior lagras under /var/opt/mssql/backups/current/<dbname><datetime> mappen .

Begränsningar

Återställning till tidpunkt till SQL Managed Instance som aktiveras av Azure Arc har följande begränsningar:

  • Återställning till tidpunkt är en funktion på databasnivå, inte en funktion på instansnivå. Du kan inte återställa hela instansen med återställning till tidpunkt.
  • Du kan bara återställa till samma SQL Managed Instance som aktiverats av Azure Arc från den plats där säkerhetskopieringen gjordes.

Läs mer om funktioner i SQL Managed Instance som aktiveras av Azure Arc

Börja med att skapa en datakontrollant

Skapa en SQL Managed Instance aktiverad av Azure Arc