Konfigurace skupiny převzetí služeb při selhání – ROZHRANÍ příkazového řádku

Tento článek vysvětluje, jak nakonfigurovat zotavení po havárii pro službu SQL Managed Instance povolenou službou Azure Arc pomocí rozhraní příkazového řádku. Než budete pokračovat, projděte si informace a požadavky ve službě SQL Managed Instance povolené službou Azure Arc – zotavení po havárii.

Požadavky

Před nastavením skupin převzetí služeb při selhání mezi dvěma instancemi služby SQL Managed Instance povolenou službou Azure Arc musí být splněny následující požadavky:

  • Kontroler dat Azure Arc a spravovaná instance SQL s podporou Arc zřízená v primární lokalitě s --license-type jednou z BasePrice těchto instancí nebo LicenseIncluded.
  • Kontroler dat Azure Arc a spravovaná instance SQL s podporou Arc zřízená v sekundární lokalitě se stejnou konfigurací jako primární z hlediska:
    • Procesor
    • Memory (Paměť)
    • Úložiště
    • Úroveň služby
    • Kolace
    • Další nastavení instance
  • Instance v sekundární lokalitě vyžaduje --license-type jako DisasterRecovery. Tato instance musí být nová bez jakýchkoli uživatelských objektů.

Poznámka:

  • Je důležité zadat --license-typeběhem vytváření spravované instance. To umožní, aby se instance zotavení po havárii z primární instance v primárním datovém centru vysadila. Aktualizace této vlastnosti po nasazení nebude mít stejný účinek.

Proces nasazení

Pokud chcete nastavit skupinu převzetí služeb při selhání Azure mezi dvěma instancemi, proveďte následující kroky:

  1. Vytvoření vlastního prostředku pro distribuovanou skupinu dostupnosti v primární lokalitě
  2. Vytvoření vlastního prostředku pro distribuovanou skupinu dostupnosti v sekundární lokalitě
  3. Kopírování binárních dat z certifikátů zrcadlení
  4. Nastavení distribuované skupiny dostupnosti mezi primárními a sekundárními lokalitami v sync režimu nebo async v režimu

Následující obrázek ukazuje správně nakonfigurovanou distribuovanou skupinu dostupnosti:

Diagram showing a properly configured distributed availability group.

Režimy synchronizace

Skupiny převzetí služeb při selhání v datových službách Azure Arc podporují dva režimy synchronizace – sync a async. Režim synchronizace přímo ovlivňuje způsob synchronizace dat mezi instancemi a potenciálně i výkon primární spravované instance.

Pokud jsou primární a sekundární lokality v okruhu několika kilometrů od sebe, použijte sync režim. Jinak použijte async režim, abyste se vyhnuli dopadu na výkon primární lokality.

Konfigurace skupiny převzetí služeb při selhání Azure – přímý režim

Pokud jsou datové služby Azure Arc nasazené v directly připojeném režimu, postupujte podle následujících kroků.

Po splnění požadavků spusťte následující příkaz a nastavte skupinu převzetí služeb při selhání Azure mezi těmito dvěma instancemi:

az sql instance-failover-group-arc create --name <name of failover group> --mi <primary SQL MI> --partner-mi <Partner MI> --resource-group <name of RG> --partner-resource-group <name of partner MI RG>

Příklad:

az sql instance-failover-group-arc create --name sql-fog --mi sql1 --partner-mi sql2 --resource-group rg-name --partner-resource-group rg-name

Výše uvedený příkaz:

  • Vytvoří požadované vlastní prostředky v primární i sekundární lokalitě.
  • Zkopíruje zrcadlící certifikáty a nakonfiguruje skupinu převzetí služeb při selhání mezi instancemi.

Konfigurace skupiny převzetí služeb při selhání Azure – nepřímý režim

Pokud jsou datové služby Azure Arc nasazené v indirectly připojeném režimu, postupujte podle následujících kroků.

  1. Zřízení spravované instance v primární lokalitě

    az sql mi-arc create --name <primaryinstance> --tier bc --replicas 3 --k8s-namespace <namespace> --use-k8s
    
  2. Přepněte kontext na sekundární cluster spuštěním kubectl config use-context <secondarycluster> a zřízením spravované instance v sekundární lokalitě, která bude instancí zotavení po havárii. V tuto chvíli systémové databáze nejsou součástí skupiny dostupnosti s omezením.

    Poznámka:

    Je důležité zadat --license-type DisasterRecoveryběhem spravované instance. To umožní, aby se instance zotavení po havárii z primární instance v primárním datovém centru vysadila. Aktualizace této vlastnosti po nasazení nebude mít stejný účinek.

    az sql mi-arc create --name <secondaryinstance> --tier bc --replicas 3 --license-type DisasterRecovery --k8s-namespace <namespace> --use-k8s
    
  3. Certifikáty zrcadlení – Binární data uvnitř vlastnosti Zrcadlení certifikátu spravované instance je nutná k vytvoření CR (Vlastní prostředek) skupiny převzetí služeb při selhání instance.

    Toho lze dosáhnout několika způsoby:

    (a) Pokud používáte az rozhraní příkazového řádku, vygenerujte nejprve soubor zrcadlení certifikátu a při konfiguraci skupiny převzetí služeb při selhání instance přejděte na tento soubor a zkopírujte je do CR. Soubory certifikátu nejsou po vytvoření skupiny převzetí služeb při selhání potřeba.

    (b) Pokud používáte kubectl, zkopírujte přímo a vložte binární data ze spravované instance CR do souboru yaml, který se použije k vytvoření skupiny převzetí služeb při selhání instance.

    Použití (a) výše:

    Vytvořte soubor certifikátu zrcadlení pro primární instanci:

    az sql mi-arc get-mirroring-cert --name <primaryinstance> --cert-file </path/name>.pem​ --k8s-namespace <namespace> --use-k8s
    

    Příklad:

    az sql mi-arc get-mirroring-cert --name sqlprimary --cert-file $HOME/sqlcerts/sqlprimary.pem​ --k8s-namespace my-namespace --use-k8s
    

    Připojení do sekundárního clusteru a vytvořte soubor certifikátu zrcadlení pro sekundární instanci:

    az sql mi-arc get-mirroring-cert --name <secondaryinstance> --cert-file </path/name>.pem --k8s-namespace <namespace> --use-k8s
    

    Příklad:

    az sql mi-arc get-mirroring-cert --name sqlsecondary --cert-file $HOME/sqlcerts/sqlsecondary.pem --k8s-namespace my-namespace --use-k8s
    

    Po vytvoření souborů certifikátu zrcadlení zkopírujte certifikát ze sekundární instance do sdílené/místní cesty v clusteru primární instance a naopak.

  4. Vytvořte prostředek skupiny převzetí služeb při selhání na obou lokalitách.

    Poznámka:

    Ujistěte se, že instance SQL mají různé názvy pro primární i sekundární lokality a shared-name hodnota by měla být v obou lokalitách stejná.

    az sql instance-failover-group-arc create --shared-name <name of failover group> --name <name for primary failover group resource> --mi <local SQL managed instance name> --role primary --partner-mi <partner SQL managed instance name>  --partner-mirroring-url tcp://<secondary IP> --partner-mirroring-cert-file <secondary.pem> --k8s-namespace <namespace> --use-k8s
    

    Příklad:

    az sql instance-failover-group-arc create --shared-name myfog --name primarycr --mi sqlinstance1 --role primary --partner-mi sqlinstance2  --partner-mirroring-url tcp://10.20.5.20:970 --partner-mirroring-cert-file $HOME/sqlcerts/sqlinstance2.pem --k8s-namespace my-namespace --use-k8s
    

    V sekundární instanci spusťte následující příkaz, který nastaví vlastní prostředek skupiny převzetí služeb při selhání. V --partner-mirroring-cert-file tomto případě by měl odkazovat na cestu, která obsahuje soubor certifikátu zrcadlení vygenerovaný z primární instance, jak je popsáno v části 3(a) výše.

    az sql instance-failover-group-arc create --shared-name <name of failover group> --name <name for secondary failover group resource> --mi <local SQL managed instance name> --role secondary --partner-mi <partner SQL managed instance name>  --partner-mirroring-url tcp://<primary IP> --partner-mirroring-cert-file <primary.pem> --k8s-namespace <namespace> --use-k8s
    

    Příklad:

    az sql instance-failover-group-arc create --shared-name myfog --name secondarycr --mi sqlinstance2 --role secondary --partner-mi sqlinstance1  --partner-mirroring-url tcp://10.10.5.20:970 --partner-mirroring-cert-file $HOME/sqlcerts/sqlinstance1.pem --k8s-namespace my-namespace --use-k8s
    

Načtení stavu skupiny převzetí služeb při selhání Azure

Informace o skupině převzetí služeb při selhání, jako je primární role, sekundární role a aktuální stav, se dají zobrazit u vlastního prostředku v primární nebo sekundární lokalitě.

Spuštěním následujícího příkazu v primární nebo sekundární lokalitě zobrazte seznam vlastních prostředků skupin převzetí služeb při selhání:

kubectl get fog -n <namespace>

Popište vlastní prostředek pro načtení stavu skupiny převzetí služeb při selhání následujícím způsobem:

kubectl describe fog <failover group cr name> -n <namespace>

Operace skupiny převzetí služeb při selhání

Po nastavení skupiny převzetí služeb při selhání mezi spravovanými instancemi je možné provádět různé operace převzetí služeb při selhání v závislosti na okolnostech.

Možné scénáře převzetí služeb při selhání:

  • Instance v obou lokalitách jsou v pořádku a je potřeba provést převzetí služeb při selhání:

    • proveďte ruční převzetí služeb při selhání z primární na sekundární bez ztráty dat nastavením role=secondary primárního SQL MI.
  • Primární lokalita není v pořádku nebo není dostupná a je potřeba provést převzetí služeb při selhání:

    • primární spravovaná instance SQL povolená službou Azure Arc není v pořádku nebo není dostupná
    • Sekundární spravovaná instance SQL povolená službou Azure Arc musí být vynucená na primární s potenciální ztrátou dat.
    • když se původní primární spravovaná instance SQL povolená službou Azure Arc vrátí do online režimu, bude se hlásit jako Primary stav role a není v pořádku a musí být vynucený do secondary role, aby se mohl připojit ke skupině převzetí služeb při selhání a je možné synchronizovat data.

Ruční převzetí služeb při selhání (bez ztráty dat)

Pomocí skupiny příkazů zahajte az sql instance-failover-group-arc update ... převzetí služeb při selhání z primární do sekundární. Všechny čekající transakce v geografické primární instanci se před převzetím služeb při selhání replikují do geograficky sekundární instance.

Přímý připojený režim

Spuštěním následujícího příkazu spusťte ruční převzetí služeb při selhání v direct připojeném režimu pomocí rozhraní API ARM:

az sql instance-failover-group-arc update --name <shared name of failover group> --mi <primary instance> --role secondary --resource-group <resource group>

Příklad:

az sql instance-failover-group-arc update --name myfog --mi sqlmi1 --role secondary --resource-group myresourcegroup

Nepřímo připojený režim

Spuštěním následujícího příkazu spusťte ruční převzetí služeb při selhání v indirect připojeném režimu pomocí rozhraní KUBERNEtes API:

az sql instance-failover-group-arc update --name <name of failover group resource> --role secondary --k8s-namespace <namespace> --use-k8s 

Příklad:

az sql instance-failover-group-arc update --name myfog --role secondary --k8s-namespace my-namespace --use-k8s 

Vynucené převzetí služeb při selhání se ztrátou dat

V situaci, kdy se geograficky primární instance stane nedostupnou, je možné na instanci zotavení po havárii v sekundární geografické oblasti spustit následující příkazy, které zvýší úroveň na primární s vynuceným převzetím služeb při selhání, což může způsobovat potenciální ztrátu dat.

V instanci zotavení po havárii v sekundární geografické oblasti spusťte následující příkaz, kterým ji upřednostníte na primární roli se ztrátou dat.

Poznámka:

--partner-sync-mode Pokud byl nakonfigurovaný jako sync, je potřeba ho resetovat, až async se sekundární úroveň upřednostní na primární.

Přímý připojený režim

az sql instance-failover-group-arc update --name <shared name of failover group> --mi <instance> --role force-primary-allow-data-loss --resource-group <resource group> --partner-sync-mode async

Příklad:

az sql instance-failover-group-arc update --name myfog --mi sqlmi2 --role force-primary-allow-data-loss --resource-group myresourcegroup --partner-sync-mode async

Nepřímo připojený režim

az sql instance-failover-group-arc update --k8s-namespace my-namespace --name secondarycr --use-k8s --role force-primary-allow-data-loss --partner-sync-mode async

Jakmile bude geograficky primární instance dostupná, spusťte následující příkaz, který ho přenese do skupiny převzetí služeb při selhání a synchronizuje data:

Přímý připojený režim

az sql instance-failover-group-arc update --name <shared name of failover group> --mi <old primary instance> --role force-secondary --resource-group <resource group>

Nepřímo připojený režim

az sql instance-failover-group-arc update --k8s-namespace my-namespace --name secondarycr --use-k8s --role force-secondary

--partner-sync-mode Volitelně můžete v případě potřeby nakonfigurovat režim zpět do sync režimu.

Operace po převzetí služeb při selhání

Jakmile provedete převzetí služeb při selhání z primární lokality do sekundární lokality, a to buď se ztrátou dat, nebo bez ztráty dat, možná budete muset provést následující:

  • Aktualizujte připojovací řetězec pro aplikace, aby se připojily k nově propagované primární spravované instanci Arc SQL.
  • Pokud máte v úmyslu pokračovat v provozu produkční úlohy mimo sekundární lokalitu, aktualizujte --license-type ji na buď BasePrice nebo LicenseIncluded na zahájení fakturace spotřebovaných virtuálních jader.