Automatické pozastavení a automatické obnovení ve výpočetní vrstvě bez serveru pro Azure SQL Database

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í:

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:

Ř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.