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:

  1. Úplné zálohování
  2. Rozdílové zálohování
  3. Jeden nebo více záloh transakčních protokolů

Point-in-time restore

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

  1. 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  
    
  2. Upravte vlastnosti následujícím způsobem:

    1. name: Jedinečný řetězec pro každý vlastní prostředek (CR). Vyžaduje Kubernetes.
    2. namespace: Obor názvů Kubernetes, kde je instance.
    3. source: ... name: Název zdrojové instance.
    4. source: ... database: Název zdrojové databáze, ze které by bylo použito obnovení.
    5. restorePoint: K určitému bodu v čase operace obnovení v čase UTC.
    6. 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.
    7. destination: ... database: Název nové databáze, na které by bylo použito obnovení.
  3. 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
    
  4. 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 RestoringCompleted 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:

  1. Spuštění nástroje Azure Data Studio
  2. Ujistěte se, že máte požadovaná rozšíření Arc popsaná v nástrojích.
  3. Připojení do kontroleru dat Azure Arc
  4. 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.
  5. Na řídicím panelu klikněte na kartu Zálohy .
  6. 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í.
  7. Klikněte na ikonu databáze, ze které chcete provést obnovení. Azure Data Studio spustí okno směrem k pravé straně.
  8. 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.

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