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 zBasePrice
těchto instancí neboLicenseIncluded
. - 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
jakoDisasterRecovery
. Tato instance musí být nová bez jakýchkoli uživatelských objektů.
Poznámka:
- Je důležité zadat
--license-type
bě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:
- Vytvoření vlastního prostředku pro distribuovanou skupinu dostupnosti v primární lokalitě
- Vytvoření vlastního prostředku pro distribuovanou skupinu dostupnosti v sekundární lokalitě
- Kopírování binárních dat z certifikátů zrcadlení
- Nastavení distribuované skupiny dostupnosti mezi primárními a sekundárními lokalitami v
sync
režimu neboasync
v režimu
Následující obrázek ukazuje správně nakonfigurovanou distribuovanou skupinu dostupnosti:
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ů.
Zřízení spravované instance v primární lokalitě
az sql mi-arc create --name <primaryinstance> --tier bc --replicas 3 --k8s-namespace <namespace> --use-k8s
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 DisasterRecovery
bě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
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řipojte se k sekundárnímu 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.
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.
- proveďte ruční převzetí služeb při selhání z primární na sekundární bez ztráty dat nastavením
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ý dosecondary
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
neboLicenseIncluded
na zahájení fakturace spotřebovaných virtuálních jader.