Dynamické škálování databázových prostředků s minimálními výpadky – Azure SQL Database a Azure SQL Managed Instance
Platí pro: Azure SQL Database Azure SQL Managed Instance
Azure SQL Database a Azure SQL Managed Instance umožňují dynamicky přidávat do databáze další prostředky s minimálními výpadky. Během období ale dochází ke ztrátě připojení k databázi po krátkou dobu, což je možné zmírnit pomocí logiky opakování.
Přehled
Když poptávka po aplikaci roste z několika zařízení a zákazníků na miliony, azure SQL Database a SQL Managed Instance se škáluje průběžně s minimálními výpadky. Škálovatelnost je jednou z nejdůležitějších charakteristik platformy jako služby (PaaS), která umožňuje dynamicky přidávat do služby další prostředky v případě potřeby. Azure SQL Database umožňuje snadno měnit prostředky (výkon procesoru, paměť, propustnost vstupně-výstupních operací a úložiště) přidělené vašim databázím.
Problémy s výkonem můžete zmírnit kvůli zvýšenému využití aplikace, které nelze opravit pomocí metod indexování nebo přepsání dotazů. Přidání dalších prostředků umožňuje 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 také umožňuje vertikálně snížit kapacitu prostředků, pokud nejsou potřeba ke snížení nákladů.
Nemusíte se starat o nákup hardwaru a změnu základní infrastruktury. Škálování databáze je možné snadno provést pomocí posuvníku na webu Azure Portal.
Azure SQL Database nabízí nákupní model založený na DTU a nákupní model založený na virtuálních jádrech, zatímco Spravovaná instance Azure SQL nabízí pouze nákupní model založený na virtuálních jádrech.
- Nákupní model založený na DTU nabízí kombinaci výpočetních, paměťových a vstupně-výstupních prostředků ve třech úrovních služby, které podporují odlehčené až náročné databázové úlohy: 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ích jádrech umožňuje zvolit počet virtuálních jader, velikost nebo paměť a velikost a rychlost úložiště. Tento nákupní model nabízí tři úrovně služeb: pro obecné účely, Pro důležité obchodní informace a Hyperscale.
Úroveň služby, úroveň výpočetních prostředků a limity prostředků pro databázi, elastický fond nebo spravovanou instanci je možné kdykoli změnit. Můžete například vytvořit svou první aplikaci na jednoúčelové databázi pomocí bezserverové výpočetní vrstvy a potom kdykoli změnit její úroveň služby ručně nebo programově na zřízenou výpočetní úroveň tak, aby splňovala potřeby vašeho řešení.
Poznámka:
Zásadní výjimky, kdy nemůžete změnit úroveň služby databáze, jsou:
- Databáze používající funkce, které jsou k dispozici pouze v úrovních služby Pro důležité obchodní informace / Premium, nelze změnit tak, aby používaly úroveň služby Pro obecné účely nebo Standard. V současné době je jedinou takovou funkcí OLTP v paměti.
- Databáze původně vytvořené v úrovni služby Hyperscale nelze migrovat na jiné úrovně služby. Pokud migrujete existující databázi ve službě Azure SQL Database na úroveň služby Hyperscale, můžete provést zpětnou migraci na úroveň služby Pro obecné účely do 45 dnů od původní migrace na Hyperscale. Pokud chcete migrovat databázi na jinou úroveň služby, jako je například Pro důležité obchodní informace, proveďte další migraci nejprve zpět na úroveň služby Pro obecné účely. Další informace najdete v tématu Jak provést zpětnou migraci z Hyperscale.
Prostředky přidělené databázi můžete upravit změnou cíle služby nebo škálováním tak, aby splňovaly požadavky na úlohy. To vám také umožní platit jenom za prostředky, které potřebujete, když je potřebujete. Projděte si poznámku týkající se potenciálního dopadu operace škálování na aplikaci.
Azure SQL Database nabízí možnost dynamicky škálovat databáze:
- S jednou databází můžete pomocí modelů DTU nebo virtuálních jader definovat maximální množství prostředků, které budou přiřazeny jednotlivým databázím.
- Elastické fondy umožňují definovat maximální limit prostředků na skupinu databází ve fondu.
Spravovaná instance Azure SQL umožňuje také škálovat:
- 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é vaší instanci. Všechny databáze ve spravované instanci budou sdílet prostředky přidělené instanci.
Tip
Dynamické škálování umožňuje zákazníkům ruční nebo programové změny přidělení prostředků. Funkce dynamického škálování je k dispozici pro všechny prostředky Azure SQL Database a Azure SQL Managed Instance.
Kromě podpory dynamického škálování podporuje bezserverová úroveň ve službě Azure SQL Database automatické škálování. Databáze v bezserverové vrstvě škálují prostředky automaticky v rozsahu určeném zákazníkem na základě poptávky po úlohách. Ke škálování databáze není nutná žádná akce zákazníka.
Dopad operací vertikálního navýšení nebo snížení kapacity
Iniciace akce vertikálního navýšení nebo snížení kapacity v libovolné z výše uvedených variant restartuje proces databázového stroje a v případě potřeby ho 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í služby Azure SQL Database. Jakmile bude cílový databázový stroj připravený zpracovávat dotazy, ukončí se otevřená připojení k aktuálnímu databázovému stroji a nepotvrzené transakce se vrátí zpět. Nová připojení se vytvoří k cílovému databázovému stroji.
Poznámka:
Nedoporučuje se škálovat spravovanou instanci, pokud je spuštěná dlouhotrvající transakce, jako je import dat, úlohy zpracování dat, opětovné sestavení indexu atd., nebo pokud máte aktivní připojení k instanci. Pokud chcete zabránit dokončení škálování delší dobu než obvykle, měli byste instanci škálovat po dokončení všech dlouhotrvajících operací.
Poznámka:
Po dokončení procesu vertikálního navýšení/snížení kapacity můžete očekávat krátký konec připojení. Pokud jste implementovali logiku opakování pro standardní přechodné chyby, nebudete si všimnout převzetí služeb při selhání.
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í i nejvyšší úrovně služeb, velikosti výpočetních prostředků a optimalizace výkonu zpracovávat ú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:
- Horizontální navýšení kapacity čtení je dostupná funkce, ve které získáváte jednu repliku dat jen pro čtení, kde můžete provádět náročné dotazy jen pro čtení, jako jsou sestavy. Replika jen pro čtení zpracuje vaši úlohu jen pro čtení, aniž by to mělo vliv na využití prostředků v primární databázi.
- Horizontální dělení databáze je sada technik, které umožňují rozdělit data do několika databází a škálovat je nezávisle.
Další kroky
- Informace o zlepšení výkonu databáze změnou kódu databáze naleznete v tématu Vyhledání a použití doporučení k výkonu.
- Informace o tom, jak umožnit integrovanou inteligenci databáze optimalizovat, najdete v tématu Automatické ladění.
- Informace o horizontálním navýšení kapacity čtení ve službě 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 ve službě Azure SQL Database.
- Příklad použití skriptů k monitorování a škálování izolované databáze najdete v tématu Použití PowerShellu k monitorování a škálování jedné databáze SQL Database.