Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Týká se:Azure SQL Database
Tento článek vysvětluje chování automatického pozastavení a automatického obnovení u bezserverové výpočetní vrstvy v Azure SQL Database a to, jak funguje ve spojení s různými funkcemi Azure SQL Database.
V současnosti je úroveň služby General Purpose jedinou úrovní služby, která podporuje bezserverové automatické pozastavení a automatické obnovení.
Pro monitorování stavu databáze bez serveru viz Monitorování pauzy a pokračování ve stavu.
Automatické pozastavení
Automatická pauza začíná, pokud během zpoždění automatické pauzy platí všechny následující podmínky:
- Počet relací je 0
- Počet procesorů = 0 pro uživatelské úlohy spuštěné v uživatelském fondu
Ve výchozím nastavení je nastaveno jednohodinové zpoždění automatického pozastavení.
Funkce, které zabraňují automatickému pozastavení
Pokud použijete některou z následujících funkcí, vypněte automatické pozastavení. Databáze zůstává online bez ohledu na to, jak dlouho je neaktivní. Následující funkce zabraňují automatickému pozastavení, ale podporují automatické škálování:
- Geo-replikace (aktivní skupiny pro georeplikaci a failover)
- Dlouhodobé uchovávání záloh (LTR)
- Alias DNS vytvořený pro logický server, který obsahuje bezserverovou databázi
Následující scénáře funkcí také brání automatickému pozastavení:
- Synchronizační databáze použitá v SQL Synchronizace dat. Na rozdíl od synchronizačních databází podporují automatické pozastavení databáze centra a členů.
- V elastických úlohách není serverless databáze s povoleným automatickým pozastavením podporována jako databáze úlohy. Serverless databáze, na které cílí úlohy Elastic Jobs, podporují automatické pozastavení. Pracovní připojení obnovují databázové spojení.
- Automatické pozastavení je dočasně zabráněno během nasazování některých aktualizací služby, které vyžadují, aby byla databáze online. V takových případech se automatické pozastavení znovu povolí, jakmile se aktualizace služby dokončí.
Automatické obnovení
Automatické obnovení se spustí, pokud je kdykoli splněna některá z následujících podmínek:
| funkce | Spoušť automatického obnovení |
|---|---|
| Autentizace a autorizace | Pokus o přihlášení |
| Detekce hrozeb | Zapnutí nebo vypnutí nastavení detekce hrozeb na úrovni databáze nebo serveru. Úprava nastavení detekce hrozeb na úrovni databáze nebo serveru |
| Zjišťování a klasifikace dat | Přidání, úprava, odstranění nebo zobrazení popisků citlivosti |
| Auditování | Zobrazení záznamů auditování Aktualizace nebo zobrazení zásad auditování |
| Maskování dat | Přidání, úprava, odstranění nebo zobrazení pravidel maskování dat |
| Transparentní šifrování dat | Zobrazení stavu nebo statusu transparentního šifrování dat |
| Hodnocení zranitelnosti | Ručně iniciované kontroly a pravidelné kontroly, pokud jsou povolené |
| Dotazování úložiště dat (výkon) | Úprava nebo zobrazení nastavení Query Store |
| Doporučení k výkonu | Zobrazení nebo použití doporučení k výkonu |
| Automatické ladění | Použití a ověření doporučení automatického ladění, jako je automatické indexování |
| Kopírování databáze | Vytvořte databázi jako kopii. Export do souboru BACPAC. |
| Synchronizace dat SQL | Synchronizace mezi centrálními a členskými databázemi, které běží v konfigurovatelném plánu nebo se provádějí ručně |
| Úprava určitých metadat databáze | Přidávání nebo úprava Azure tagů v databázi. Změna maximálního počtu virtuálních jader, minimálního virtuálního jádra nebo zpoždění automatického pozastavení. |
| SQL Server Management Studio (SSMS) | Ve verzích SSMS starších než 18.1 a při otevření nového dotazovacího okna pro jakoukoli databázi na serveru je obnovena jakákoli automaticky pozastavená databáze na stejném serveru. Toto chování se neobjevuje, pokud používáte SSMS verzi 18.1 nebo novější. |
Monitorování, správa nebo jiná řešení, která provádějí některou z těchto operací, spustí automatické obnovení. Automatické obnovení také začíná během nasazení některých aktualizací služeb, které vyžadují, aby byla databáze online.
Identifikace spouštěče automatického obnovení
Protokol aktivit služby Azure Monitor zpřístupňuje triggery automatického obnovení pro operace Resume Databases ve vlastnosti Caller v kódu JSON událostí Started a Succeeded. Další informace najdete v části Monitorování bezserverové výpočetní vrstvy.
Latency
Latence je obvykle kolem jedné minuty pro automatické obnovení a 1–10 minut pro automatické pozastavení. Latence obou operací může být tak nízká jako řádově jedna sekunda.
Transparentní šifrování dat spravované zákazníkem
Odstranění nebo odvolání klíče
Pokud používáte transparentní šifrování dat spravované zákazníkem (přineste si vlastní klíč nebo BYOK) a serverless databáze je automaticky pozastavena při mazání nebo odvolání klíče, databáze zůstává v automatickém pozastaveném stavu. V takovém případě bude databáze po dalším obnovení nedostupná během přibližně 10 minut. Jakmile bude databáze nepřístupná, proces obnovení je stejný jako u zřízených výpočetních databází. Pokud je serverless databáze online v době mazání nebo odebírání klíčů, stává se databáze nepřístupnou přibližně do 10 minut stejným způsobem jako u zřízených výpočetních databází.
Rotace klíčů
Pokud použijete transparentní šifrování dat spravované zákazníkem (BYOK) a povolíte automatické pozastavení bez serveru, databáze se automaticky obnoví při otáčení klíčů. Databáze pak automaticky pozastaví, pokud jsou splněny podmínky automatického pozastavení.
Řešení potíží s automatickým pozastavením
Řešení problémů s automatickým obnovením konektivity
Pokud je bezserverová databáze pozastavená, první pokus o připojení obnoví databázi a vrátí chybu s informací, že databáze není k dispozici s kódem chyby 40613. Jakmile se databáze obnoví, zkuste spojení znovu. Databáze se obvykle obnoví za méně než jednu minutu.
Všechny aplikace připojené k cloudu by měly používat doporučení pro opakované pokusy o připojení. Aplikace vyžadují logiku opakovaného pokusu, aby uspěly po přechodných chybách v konektivitě. Logika opakování je obzvláště důležitá pro serverless databáze, kde jsou dočasné chyby připojení způsobené automatickým pokračováním předvídatelné.
Možnosti logiky opakování připojení a doporučení najdete v tématech:
- Logika opakování připojení v SqlClient
- Logika opakování připojení ve službě SQL Database pomocí Entity Framework Core
- Logika připojení s opakovaným pokusem ve službě SQL Database s využitím Entity Frameworku 6
- logika opakování připojení ve službě SQL Database pomocí ADO.NET
- Odolnost spojení v JDBC
- Odolnost spojení v PHP
- Odolnost spojení v ODBC
Řešení problémů s automatickým pozastavením
Pokud povolíte automatické pozastavení a nepoužíváte funkce, které blokují automatické pozastavení, ale databáze se po uplynutí zpoždění automaticky nezastaví, aplikace nebo uživatelské relace mohou automatickému pozastavení bránit.
Chcete-li zjistit, zda jsou k databázi aktuálně připojeny nějaké aplikace nebo uživatelské relace, spusťte následující dotaz:
SELECT session_id,
host_name,
program_name,
client_interface_name,
login_name,
status,
login_time,
last_request_start_time,
last_request_end_time
FROM sys.dm_exec_sessions AS s
INNER JOIN sys.dm_resource_governor_workload_groups AS wg
ON s.group_id = wg.group_id
WHERE s.session_id <> @@SPID
AND
(
(
wg.name like 'UserPrimaryGroup.DB%'
AND
TRY_CAST(RIGHT(wg.name, LEN(wg.name) - LEN('UserPrimaryGroup.DB') - 2) AS int) = DB_ID()
)
OR
wg.name = 'DACGroup'
);
Tip
Po spuštění dotazu se nezapomeňte odpojit od databáze. V opačném případě otevřená relace používaná dotazem zabraňuje automatickému pozastavení.
- Pokud výsledná sada není prázdná, znamená to, že relace momentálně brání automatickému pozastavení.
- Pokud je sada výsledků prázdná, je stále možné, že v nějakém dřívějším okamžiku během prodlevy před automatickým pozastavením byly relace aktivní, případně jen krátce. Pro kontrolu aktivity během zpoždění použijte Auditing for Azure SQL Database a Azure Synapse Analytics a prohlédněte si auditní data za příslušné období.
Important
Přítomnost otevřených relací, ať už s využitím procesoru ve fondu uživatelských prostředků nebo bez něj, je nejčastějším důvodem, proč se bezserverová databáze neočekávaně nepozastaví automaticky.