Provedení obnovení k určitému bodu v čase
Obnovení k určitému bodu v čase (PITR) slouží k vytvoření databáze jako kopie jiné databáze v určitém čase v minulosti, která je v období uchovávání. Tento článek popisuje, jak provést obnovení databáze k určitému bodu v čase ve službě SQL Managed Instance povolené službou Azure Arc.
S využitím obnovení k určitému bodu v čase je možné obnovit databázi:
- Ze stávající databáze
- Do nové databáze ve stejné spravované instanci SQL povolené službou Azure Arc
Databázi můžete obnovit k určitému bodu v čase v předkonfigurovaném nastavení uchovávání informací. Nastavení uchovávání pro spravovanou instanci SQL povolenou službou Azure Arc můžete zkontrolovat následujícím způsobem:
Pro přímý režim připojení:
az sql mi-arc show --name <SQL instance name> --resource-group <resource-group>
#Example
az sql mi-arc show --name sqlmi --resource-group myresourcegroup
Režim nepřímého připojení:
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
Obnovení databáze k určitému bodu v čase v současné době může obnovit:
- Z existující databáze v instanci
- Do nové databáze ve stejné instanci
Automatické zálohování
Služba SQL Managed Instance povolená službou Azure Arc má povolenou integrovanou funkci automatického zálohování. Kdykoli vytvoříte nebo obnovíte novou databázi, služba SQL Managed Instance povolená službou Azure Arc okamžitě zahájí úplné zálohování a automaticky naplánuje rozdílové zálohy a zálohy transakčních protokolů. Spravovaná instance SQL ukládá tyto zálohy do třídy úložiště zadané během nasazení.
Obnovení k určitému bodu v čase umožňuje obnovení databáze do konkrétního bodu v čase během doby uchovávání. Pokud chcete obnovit databázi k určitému bodu v čase, datové služby s podporou Služby Azure Arc použijí záložní soubory v určitém pořadí. Příklad:
- Úplné zálohování
- Rozdílové zálohování
- Jeden nebo více záloh transakčních protokolů
V současné době se úplné zálohování provádí jednou týdně, rozdílové zálohování se provádí každých 12 hodin a zálohování transakčních protokolů každých 5 minut.
Doba uchování
Výchozí doba uchovávání pro novou spravovanou instanci SQL povolenou službou Azure Arc je sedm dní a dá se upravit s hodnotami 0 nebo 1–35 dnů. Dobu uchovávání můžete nastavit během nasazování spravované instance SQL zadáním --retention-days
vlastnosti. Záložní soubory starší než nakonfigurovaná doba uchovávání se automaticky odstraní.
Vytvoření databáze z bodu v čase pomocí 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
Můžete také použít --dry-run
možnost ověření operace obnovení bez skutečného obnovení databáze.
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
Vytvoření databáze z bodu v čase pomocí kubectl
Pokud chcete provést obnovení k určitému bodu v čase pomocí nativních nástrojů Kubernetes, můžete použít
kubectl
. Vytvořte soubor yaml specifikace úkolu. Příklad: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
Upravte vlastnosti následujícím způsobem:
name:
Jedinečný řetězec pro každý vlastní prostředek (CR). Vyžaduje Kubernetes.namespace:
Obor názvů Kubernetes, kde je instance.source: ... name:
Název zdrojové instance.source: ... database:
Název zdrojové databáze, ze které by bylo použito obnovení.restorePoint:
K určitému bodu v čase operace obnovení v čase UTC.destination: ... name:
Název cílové spravované instance SQL s podporou arc Obnovení k určitému bodu v čase se v současné době podporuje pouze ve spravované instanci Arc SQL. To by mělo být stejné jako zdrojová spravovaná instance SQL.destination: ... database:
Název nové databáze, na které by bylo použito obnovení.
Vytvořte úlohu, která spustí obnovení k určitému bodu v čase. Následující příklad iniciuje úlohu definovanou v
myrestoretask20220304.yaml
.kubectl apply -f myrestoretask20220304.yaml
Stav úlohy obnovení zkontrolujte následujícím způsobem:
kubectl get sqlmirestoretask -n <namespace>
Stav úlohy obnovení se aktualizuje přibližně každých 10 sekund na základě průběhu obnovení. Stav pokračuje od Waiting
do Restoring
Completed
nebo Failed
.
Vytvoření databáze z bodu v čase pomocí nástroje Azure Data Studio
Databázi můžete obnovit také k určitému bodu v čase ze sady Azure Data Studio následujícím způsobem:
- Spuštění nástroje Azure Data Studio
- Ujistěte se, že máte požadovaná rozšíření Arc popsaná v nástrojích.
- Připojení ke kontroleru dat Azure Arc
- Rozbalte uzel kontroleru dat, klikněte pravým tlačítkem myši na instanci a vyberte Spravovat. Azure Data Studio spustí řídicí panel spravované instance SQL.
- Na řídicím panelu klikněte na kartu Zálohy .
- Měl by se zobrazit seznam databází ve spravované instanci SQL a jejich nejstarších a nejnovějších časových oknech obnovení a ikona pro zahájení obnovení.
- Klikněte na ikonu databáze, ze které chcete provést obnovení. Azure Data Studio spustí okno směrem k pravé straně.
- Zadejte požadovaný vstup v okně a klikněte na Obnovit.
Monitorování postupu
Po zahájení obnovení se v clusteru Kubernetes vytvoří úloha, která provede skutečné operace obnovení úplných, rozdílových a protokolů zálohování. Průběh této aktivity je možné monitorovat z clusteru Kubernetes následujícím způsobem:
kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc
Další podrobnosti o úkolu získáte spuštěním kubectl describe
úkolu. Příklad:
kubectl describe sqlmirestoretask <nameoftask> -n <namespace>
Konfigurace doby uchovávání
Období uchovávání pro spravovanou instanci SQL povolenou službou Azure Arc je možné překonfigurovat z původního nastavení následujícím způsobem:
Upozorňující
Pokud snížíte aktuální dobu uchovávání, ztratíte možnost obnovení k bodům v čase starším než nové období uchovávání. Zálohy, které už nejsou potřeba k zajištění obnovení k určitému bodu v čase pro novou dobu uchovávání, se odstraní. Pokud zvýšíte aktuální dobu uchovávání, okamžitě nezískáte možnost obnovení do starších bodů v čase v rámci nového období uchovávání. Tuto schopnost získáte v průběhu času, protože systém začne uchovávat zálohy déle.
Pro službu SQL Managed Instance-Azure Arc je možné ji --retention-period
změnit následujícím způsobem. Následující příkaz platí pro režimy připojení direct
i indirect
režimy připojení.
az sql mi-arc update --name <SQLMI name> --k8s-namespace <namespace> --use-k8s --retention-days <retentiondays>
Příklad:
az sql mi-arc update --name sqlmi --k8s-namespace arc --use-k8s --retention-days 10
Zakázání automatických záloh
Předdefinované automatizované zálohy pro konkrétní instanci služby SQL Managed Instance povolenou službou Azure Arc můžete zakázat nastavením --retention-days
vlastnosti na hodnotu 0 následujícím způsobem. Následující příkaz platí pro oba direct
režimy.indirect
Upozorňující
Pokud zakážete automatické zálohování pro spravovanou instanci SQL povolenou službou Azure Arc, odstraní se všechny nakonfigurované automatické zálohy a ztratíte možnost provést obnovení k určitému bodu v čase. V případě potřeby můžete retention-days
změnit vlastnost a v případě potřeby znovu zahájit automatické zálohování.
az sql mi-arc update --name <SQLMI name> --k8s-namespace <namespace> --use-k8s --retention-days 0
Příklad:
az sql mi-arc update --name sqlmi --k8s-namespace arc --use-k8s --retention-days 0
Monitorování záloh
Zálohy jsou uloženy ve /var/opt/mssql/backups/archived/<dbname>/<datetime>
složce, kde <dbname>
je název databáze a <datetime>
bude to časové razítko ve formátu UTC pro začátek každého úplného zálohování. Pokaždé, když se zahájí úplné zálohování, vytvoří se nová složka s úplnou zpět a všemi následnými rozdílovými zálohami a zálohami transakčních protokolů uvnitř této složky. Nejnovější úplné zálohování a jeho následné rozdílové zálohy a zálohy transakčních protokolů jsou uloženy ve /var/opt/mssql/backups/current/<dbname><datetime>
složce.
Omezení
Obnovení k určitému bodu v čase do spravované instance SQL povolené službou Azure Arc má následující omezení:
- Obnovení k určitému bodu v čase je funkce na úrovni databáze, nikoli funkce na úrovni instance. Nelze obnovit celou instanci s obnovením k určitému bodu v čase.
- Můžete provést obnovení pouze do stejné instance SQL Managed Instance povolené službou Azure Arc, ze které byla záloha provedena.
Související obsah
Další informace o funkcích a možnostech služby SQL Managed Instance povolené službou Azure Arc
Začněte vytvořením kontroleru dat.
Vytvoření spravované instance SQL povolené službou Azure Arc