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:
- Fullständig säkerhetskopia
- Differentiell säkerhetskopia
- En eller flera säkerhetskopior av transaktionsloggar
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
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
Redigera egenskaperna på följande sätt:
name:
Unik sträng för varje anpassad resurs (CR). Krävs av Kubernetes.namespace:
Kubernetes-namnrymd där instansen finns.source: ... name:
Namnet på källinstansen.source: ... database:
Namnet på källdatabasen där återställningen skulle tillämpas från.restorePoint:
Tidpunkt för återställningsåtgärden i UTC-datetime.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.destination: ... database:
Namnet på den nya databas där återställningen skulle tillämpas på.
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
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:
- Starta Azure Data Studio
- Se till att du har de Arc-tillägg som krävs enligt beskrivningen i Verktyg.
- Ansluta till Azure Arc-datastyrenheten
- Expandera datakontrollantnoden, högerklicka på instansen och välj Hantera. Azure Data Studio startar instrumentpanelen för SQL-hanterad instans.
- Klicka på fliken Säkerhetskopior på instrumentpanelen
- 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
- Klicka på ikonen för den databas som du vill återställa från. Azure Data Studio startar ett blad mot höger sida
- 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.
Relaterat innehåll
Läs mer om funktioner i SQL Managed Instance som aktiveras av Azure Arc