Dynamické škálování databázových prostředků s minimálními výpadky
PLATÍ PRO:
Azure SQL Database Azure SQL Managed Instance
Azure SQL Database a SQL managed instance umožňují dynamicky přidávat do databáze další prostředky s minimálními výpadky. Existuje ale doba, během které se po krátkou dobu ztratí připojení k databázi, což je možné zmírnit pomocí logiky opakování.
Přehled
Když poptávka po aplikaci roste od některých zařízení a zákazníků až po miliony, Azure SQL Database a SQL Managed Instance se škálují za provozu s minimálními výpadky. Škálovatelnost je jednou z nejdůležitějších charakteristik platformy jako služby (PaaS), která v případě potřeby umožňuje dynamicky přidávat do služby další prostředky. Azure SQL Database umožňuje snadno měnit prostředky (výkon procesoru, paměť, propustnost V/V a úložiště) přidělené vašim databázím.
Problémy s výkonem můžete zmírnit z důvodu zvýšeného využití aplikace, které není možné vyřešit pomocí indexování nebo metod přepsání dotazů. Přidání dalších prostředků vám umožní rychle reagovat, když vaše databáze dosáhne aktuálních limitů prostředků a potřebuje větší výkon pro zpracování příchozích úloh. Azure SQL Database vám také umožňuje škálovat prostředky, když není potřeba snižovat náklady.
Nemusíte si dělat starosti s nákupem hardwaru a změnou základní infrastruktury. Škálování databáze je možné snadno provést prostřednictvím Azure Portal pomocí posuvníku.
Azure SQL Database nabízí nákupní model založený na DTU a nákupní modelzaložený na virtuálních jadech, zatímco Azure SQL Managed Instance nabízí pouze nákupní model založený na virtuálních jadech.
- Nákupní model založený na DTU nabízí kombinaci výpočetních, paměťových a V/V prostředků ve třech úrovních služby pro podporu databázových úloh od odlehčených až po velmi náročné: Basic, Standard a Premium. Úrovně výkonu na jednotlivých úrovních poskytují různou kombinaci těchto prostředků, ke kterým můžete přidat další prostředky úložiště.
- Nákupní model založený na virtuálníchcorech umožňuje zvolit počet virtuálních jadek, velikost nebo paměť a velikost a rychlost úložiště. Tento nákupní model nabízí tři úrovně služby: Pro obecné účely, Pro důležité obchodní informace a Hyperscale.
Limity úrovně služby, výpočetní úrovně a prostředků pro databázi, elastický fond nebo spravovanou instanci je možné kdykoli změnit. Můžete například sestavit svou první aplikaci v jedné databázi pomocí úrovně výpočetních prostředků bez serveru a pak ručně nebo programově změnit její úroveň služby na zřízenou výpočetní úroveň, aby splňovala potřeby vašeho řešení.
Poznámka
Mezi hlavní výjimky, které nesmějí změnit úroveň služby databáze, jsou:
- Databáze na úrovni služby Hyperscale v současné době není možné změnit na jinou úroveň služby.
- Databáze využívající funkce, které jsou dostupné jenom na úrovních služby Pro důležité obchodní informace/ Premium, není možné změnit tak, aby se Pro obecné účely nebo Standard.
Prostředky přidělené k databázi můžete upravit změnou cíle služby nebo škálováním tak, aby splňovaly požadavky úloh. To vám také umožňuje platit jenom za prostředky, které potřebujete, když je potřebujete. Projděte si poznámku o potenciálním dopadu, který může mít operace škálování na aplikaci.
Poznámka
Dynamická škálovatelnost se liší od automatického škálování. Automatické škálování nastane, když se služba škáluje automaticky na základě kritérií, zatímco dynamická škálovatelnost umožňuje ruční škálování s minimálními výpadky. Jednoúrovňové databáze Azure SQL Database lze škálovat ručně nebo v případě bez serveru nastavit automatické škálování výpočetních prostředků. Elastické fondy,které databázím umožňují sdílet prostředky ve fondu, je v současné době možné škálovat pouze ručně.
Azure SQL Database nabízí možnost dynamicky škálovat databáze:
- V případě jedné databázemůžete pomocí modelů DTU nebo vCore definovat maximální množství prostředků, které se přiřadí ke každé databázi.
- Elastické fondy umožňují definovat maximální limit prostředků na skupinu databází ve fondu.
Spravovaná instance Azure SQL umožňuje také škálování:
- SQL Managed Instance používá režim virtuálních jader a umožňuje definovat maximální počet jader procesoru a maximální velikost úložiště přidělené instanci. Všechny databáze ve spravované instanci budou sdílet prostředky přidělené instanci.
Dopad operací škálování nahoru nebo dolů
Zahájením akce škálování nahoru nebo dolů ve kterékoli z variant uvedených výše se restartuje proces databázového stroje a v případě potřeby se přesune na jiný virtuální počítač. Přesunutí procesu databázového stroje na nový virtuální počítač je online proces, během kterého můžete pokračovat v používání stávající Azure SQL Database služby. Jakmile je cílový databázový stroj připravený ke zpracování dotazů, otevřená připojení k aktuálnímu databázovému stroji se ukončí a nepotučené transakce se vrátí zpět. Budou provedena nová připojení k cílovému databázovému stroji.
Poznámka
Spravovanou instanci nedoporučujeme škálovat, pokud běží dlouhodobá transakce, jako je import dat, úlohy zpracování dat, opětovné sestavení indexu atd., nebo pokud máte k instanci aktivní připojení. Pokud chcete zabránit tomu, aby dokončení škálování trvá déle než obvykle, měli byste instanci škálovat po dokončení všech dlouhotr běžících operací.
Poznámka
Po dokončení procesu škálování nahoru a dolů můžete očekávat krátkou přerušení připojení. Pokud jste implementovali logiku opakování pro standardní přechodné chyby, převzetí služeb při selhání si nevšimnou.
Alternativní metody škálování
Škálování prostředků je nejjednodušší a nejúčinnější způsob, jak zlepšit výkon databáze beze změny kódu databáze nebo aplikace. V některých případech nemusí ani nejvyšší úrovně služby, velikosti výpočetních prostředků a optimalizace výkonu zpracovávat vaše úlohy úspěšným a nákladově efektivním způsobem. V takovém případě máte tyto další možnosti škálování databáze:
- Škálování čtení je dostupná funkce, při které dostáváte jednu repliku dat jen pro čtení, kde můžete spouštět náročné dotazy jen pro čtení, jako jsou sestavy. Replika jen pro čtení bude zpracovávat úlohy jen pro čtení, aniž by to ovlivnilo využití prostředků v primární databázi.
- Shardování databáze je sada technik, které umožňují rozdělit data do několika databází a nezávisle je škálovat.
Další kroky
- Informace o zvýšení výkonu databáze změnou databázového kódu najdete v tématu Vyhledání a použití doporučení k výkonu.
- Informace o tom, jak optimalizovat databázi pomocí integrovaného databázového inteligence, najdete v tématu Automatické ladění.
- Informace o škálování čtení na více Azure SQL Database najdete v tématu použití replik jen pro čtení k vyrovnávání zatížení úloh dotazů jen pro čtení.
- Informace o horizontálním dělení databáze najdete v tématu Horizontální navýšení kapacity s Azure SQL Database.
- Příklad použití skriptů k monitorování a škálování jedné databáze najdete v tématu Monitorování a škálování jedné databáze pomocí PowerShellu SQL Database.