Cvičení – vysoká dostupnost úrovně Pro důležité obchodní informace

Dokončeno

V tomto cvičení budete upgradovat databázi na úroveň Pro důležité obchodní informace. Dozvíte se, jak zajišťuje repliky pro čtení a vyšší výkon.

Budete používat nástroj ostress, který jste už použili v předchozím cvičení k vytvoření úlohy. Pak zahájíte převzetí služeb při selhání pomocí modulu Azure PowerShell v Azure Cloud Shellu. Nakonec zkontrolujete účinek, který převzetí služeb při selhání má v rámci úlohy ostress.

Základní vysoká dostupnost v Azure SQL – úroveň Pro důležité obchodní informace

V tomto cvičení provedete následující kroky:

  1. Nasadíte databázi z předchozího cvičení na úroveň Pro důležité obchodní informace.
  2. Spustíte úlohu ostress.
  3. Pomocí PowerShellu zahájíte převzetí služeb při selhání.
  4. Zkontrolujete výsledky v nástroji ostress.
  5. Připojíte se k čitelné sekundární replice.

Nasazení stejné databáze na úroveň Pro důležité obchodní informace

V předchozím modulu jste zjistili, jak škálovat databázi pomocí T-SQL. Cílem tohoto cvičení je upgradovat databázi, kterou jste použili v předchozím cvičení z úrovně Pro obecné účely na úroveň Pro důležité obchodní informace. K upgradu databáze použijete Azure Cloud Shell. Protože existuje limit četnosti převzetí služeb při selhání, budete používat stejnou ukázkovou databázi, ale pojmenujte ji AdventureWorks-bc.

  1. V terminálu Azure Cloud Shell vpravo na této stránce spusťte následující skript PowerShellu a nakonfigurujte si prostředí:

    $resourceGroup = "<rgn>Sandbox resource group name</rgn>"
    $database = "AdventureWorks-bc"
    $server = Get-AzureRmSqlServer -ResourceGroupName $resourceGroup
    $server = $server.ServerName
    
    # Specify your default resource group and Azure SQL Database logical server
    az configure --defaults group=$resourceGroup sql-server=$server
    
    # Confirm the defaults are set
    az configure --list-defaults
    
  2. Spusťte tento příkaz a vytvořte databázi na úrovni Pro důležité obchodní informace:

    az sql db create --name $database `
    --edition BusinessCritical `
    --family Gen5 `
    --capacity 2 `
    --sample-name AdventureWorksLT `
    --read-scale Enabled `
    --zone-redundant false
    

    Dokončení tohoto příkazu nějakou dobu trvá. Zatímco běží, můžete si projít některé z použitých parametrů:

    • family: Tento parametr určuje generaci hardwaru. Z důvodu konzistence s předchozím cvičením jsme použili Gen5.

    • capacity: Tento parametr určuje počet DTU nebo virtuálních jader. Z důvodu konzistence s předchozím cvičením jsme použili 2 virtuální jádra.

    • sample-name: Abychom byli konzistentní s předchozím cvičením, použili jsme ukázku AdventureWorksLT databáze.

    • edition: Tento název parametru je trochu zavádějící. Ve skutečnosti se vztahuje k úrovni služby, což není stejné jako edice používaná u SQL Serveru.

    • read-scale: Tato možnost není ve výchozím nastavení povolená, ale nejsou s ní spojené žádné další náklady. Jejím povolením zajistíte, že se jedna ze sekundárních replik bude používat pro čtení.

    • zone-redundant: Ve výchozím nastavení je tento parametr nastaven na hodnotu false. Můžete ho nastavit na true, pokud chcete nasazení typu multi-az (více zón dostupnosti) bez dalších nákladů. O zónách dostupnosti se dozvíte více v další lekci.

      Poznámka:

      Zóny dostupnosti jsou k dispozici pouze v určitých oblastech. V tuto chvíli v Azure SQL Managed Instance nejsou k dispozici.

  3. Po vytvoření databáze by se měly zobrazit podrobné informace o aktualizacích ve výstupu Azure Cloud Shellu. Zobrazí se dvě hlavní kategorie (přestože uvidíte také indikátory několika dalších vlastností):

    • currentServiceObjectiveName: Měla by být BC_Gen5_2. BC představuje úroveň Pro důležité obchodní informace.
    • currentSku:
      • name: Měla by být BC_Gen5.
      • tier: Měla by být BusinessCritical.
  4. Další možností, jak zkontrolovat úroveň služby, je přejít do vaší databáze na portálu Azure Portal. Na kartě Přehled najdete Cenová úroveň.

    Tip

    Existuje mnoho dalších způsobů, jak zobrazit tyto aktualizace. Jedním z nich je použití SQL Server Management Studia. Když pravým tlačítkem myši kliknete na databázi a vyberete Properties (Vlastnosti)>Configure SLO (Konfigurovat úroveň služby), můžete si prohlédnout změny.

Spuštění úlohy ostress

Jako v předchozím cvičení využijete úlohu ostress k opakovanému dotazování Azure SQL Database.

  1. Pokud jste zavřeli příkazový řádek, který jste použili v předchozím cvičení, otevřete na místním počítači nové okno příkazového řádku. Pomocí cd přejděte do adresáře v úložišti, které jste předtím naklonovali nebo stáhli a které obsahuje modul týkající se dostupnosti. Můžete použít například tento příkaz:

    cd C:\Users\username\mslearn-azure-sql-fundamentals\05-Availability
    

    Úloha ostress se připojí a spustí 50 000krát jednoduchý dotaz.

  2. Ke spuštění úlohy použijte následující skript ostress. Název serverName nahraďte názvem vašeho logického serveru Azure SQL Database. password nahraďte svým heslem. Tento příkaz se mírně liší od příkazu v předchozím cvičení. Název databáze je nyní AdventureWorks-bc.

    .\ostress.exe -S"serverName.database.windows.net" -Q"SELECT COUNT(*) FROM SalesLT.Customer" -U"cloudadmin" -d"AdventureWorks-bc" -P"password" -n1 -r50000
    

    Pokud vaše úloha pracuje správně, měli byste výsledek dotazu 847 vidět opakovaně v okně příkazového řádku.

    Pokud chcete zastavit běh úlohy ostress před dokončením, stačí v terminálu zadat CTRL+C.

    Pokud budete chtít úlohu spustit znovu, spusťte příkaz.

Iniciování převzetí služeb při selhání a zobrazení výsledků

  1. Nakonfigurujte okna tak, abyste viděli tento prohlížeč a zároveň okno příkazového řádku.

  2. V terminálu Azure Cloud Shell spusťte následující kód. Jedná se o stejný příkaz, který jste použili v předchozím cvičení.

    # create a failover
    Invoke-AzSqlDatabaseFailover -ResourceGroupName $resourceGroup `
        -ServerName $server `
        -DatabaseName $database
    
  3. Pokud je tento příkaz spuštěný, měli byste sledovat všechny změny, které se objeví v terminálu. Zjistíte, že se během převzetí služeb při selhání nemůžete dostat do databáze. Tato doba je velmi krátká. Po odpojení byste měli být schopni se znovu připojit přibližně za 5 sekund. Toto převzetí služeb při selhání je víc než šestkrát rychlejší než na úrovni Pro obecné účely.

    Mějte na paměti, že databáze nebo spravované instance na úrovni služby Pro důležité obchodní informace mají v podstatě nasazenou skupinu dostupnosti AlwaysOn na pozadí, takže při převzetí služeb při selhání dojde ke změně ukazatelů v back-endu, protože Vás Azure přesměruje na jeden z sekundářů. To je důvod, proč je převzetí služeb při selhání mnohem rychlejší než na úrovni Pro obecné účely.

Připojení k replice jen pro čtení

Protože jste povolili parametr read-scale, můžete použít jednu ze sekundárních replik pro úlohy jen pro čtení. Abyste mohli v aplikacích používat repliku jen pro čtení, stačí, když do připojovacího řetězce databáze přidáte tento parametr:

ApplicationIntent=ReadOnly;
  1. V SQL Server Management Studiu vytvořte nové připojení pomocí dotazu. (Vyberte File (Soubor)>New (Nový)>Database Engine Query(Dotaz databázového stroje).)

    Snímek obrazovky, který ukazuje, jak vytvořit připojení pomocí dotazu

  2. V dialogovém okně Connect to Server (Připojit k serveru) použijte konfiguraci, kterou jste použili pro připojení k logickému serveru Azure SQL Database. (To znamená, že použijte Ověřování SQL Serveru.) Vyberte Možnosti.

    Snímek obrazovky, který zobrazuje dialogové připojení k serveru

  3. Vyberte Connection Properties (Vlastnosti připojení) a potom Reset All (Resetovat vše). V části Connect to database (Připojit k databázi) vyberte Browse server (Procházet server) a vyberte databázi AdventureWorks-bc. Vyberte OK.

  4. Vyberte Additional Connection Parameters (Další parametry připojení) a vložte následující položku do textového pole. Vyberte Připojit.

    ApplicationIntent=ReadOnly;
    

    V SQL Server Management Studiu je nutné zadat server a databázi, ke kterým se chcete připojit jen pro čtení. Důvodem je, že na serveru může existovat více databází, které mají různé možnosti pro čitelné sekundární repliky.

  5. Pokud si to chcete vyzkoušet, spusťte následující dotaz u nového dotazu databázového stroje. Podívejte se na výsledky. Jsou takové, jaké jste očekávali?

    SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability')
    

    Snímek obrazovky, který zobrazuje odpověď určenou jen pro čtení

  6. Volitelně se můžete znovu připojit a aktualizovat další parametry připojení. (Nahraďte ReadOnly textem ReadWrite.) Ověřte, že přistupujete k primární replice pro čtení a zápis. ReadWrite je výchozí nastavení, takže pokud nevyberete nic jiného, dostanete tento výsledek:

    Snímek obrazovky, který zobrazuje odpověď určenou pro čtení a zápis