Automatisk paus och automatisk återupptagning i det serverlösa beräkningsskiktet för Azure SQL Database

gäller för:Azure SQL Database

Denna artikel förklarar beteendet för automatisk paus och automatisk återupptagande för serverlösa beräkningsnivåer i Azure SQL Database, och hur det interagerar med olika funktioner i Azure SQL Database.

  • Serverlös autopaus och automatisk återupptagning finns tillgängliga i General Purpose-servicenivån.
  • Automatisk paus och automatisk återupptagning utan server är en förhandsversion av en funktion i Azure SQL Database Hyperscale.

För att övervaka ett serverlöst databastillstånd, se Övervaka paus och återuppta status.

Pausa automatiskt

Auto-paus startar om alla följande villkor är uppfyllda under autopausfördröjningen:

  • Antal sessioner = 0
  • CPU = 0 för användararbetsbelastning som körs i användarresurspoolen

För mer information, se serverless prestandakonfiguration.

  • I General Purpose-servicenivån är standardfördröjningen för automatisk paus 60 minuter och minimum 15 minuter.
  • För Hyperscale automatisk paus (förhandsversion) är standardfördröjningen för automatisk paus 60 minuter, och minsta värdet är 60 minuter.

Funktioner som förhindrar automatisk paus

Om du använder någon av följande funktioner, inaktivera automatisk paus. Databasen förblir online oavsett hur länge databasen är inaktiv. Följande funktioner förhindrar automatisk paus, men de stöder automatisk skalning:

Följande funktionsscenarier förhindrar också automatisk paus:

  • Synkroniseringsdatabasen som används i SQL Data Sync. Till skillnad från synkroniseringsdatabaser stöder hubb- och medlemsdatabaser automatisk pausning.
  • I elastiska jobb stöds en serverlös databas med aktiverad autopaus inte som jobbdatabas. Serverlösa databaser som riktas mot elastiska jobb stödjer automatisk paus. Jobbkopplingar återställer en databas.
  • Automatisk pausning förhindras tillfälligt under distributionen av vissa tjänstuppdateringar, vilket kräver att databasen är online. I sådana fall tillåts automatisk pausning igen när tjänstuppdateringen har slutförts.

Återuppta automatiskt

Automatisk återupptagning startar om något av följande villkor är uppfyllda när som helst:

Feature Utlösare för automatisk återupptagning
Autentisering och auktorisering Inloggningsförsök
Upptäckt av hot Aktivera eller inaktivera inställningar för hotdetektering på databas- eller servernivå.
Ändra inställningarna för hotidentifiering på databas- eller servernivå.
Identifiering och klassificering av data Lägga till, ändra, ta bort eller visa känslighetsetiketter
Verifiering Visning av granskningsprotokoll.
Uppdatera eller visa granskningspolicy.
Datamaskning Lägga till, ändra, ta bort eller visa datamaskeringsregler
Transparent datakryptering Visa tillstånd eller status för transparent datakryptering
Sårbarhetsbedömning Manuellt initierade genomsökningar och periodiska genomsökningar om det är aktiverat
Prestandadatalager för sökfrågor Ändra eller visa inställningarna för Query Store
Prestandaförslag Visa eller tillämpa prestandarekommendationer
Automatisk kalibrering Tillämpning och verifiering av autotuning-rekommendationer såsom autoindexering
Databaskopiering Skapa databasen som kopia.
Exportera till en BACPAC-fil.
SQL-datasynkronisering Synkronisering mellan hubb- och medlemsdatabaser som körs enligt ett konfigurerbart schema eller utförs manuellt
Ändra vissa databasmetadata Att lägga till eller ändra Azure-taggar i databasen.
Ändra maximalt antal vCores, minsta antal vCores eller automatisk pausfördröjning.
SQL Server Management Studio (SSMS) I SSMS-versioner tidigare än 18.1 och när ett nytt frågefönster öppnas för vilken databas som helst på servern, återupptas alla automatiskt pausade databaser på samma server. Detta beteende uppstår inte om du använder SSMS version 18.1 eller senare.

Övervakning, hantering eller andra lösningar som utför någon av dessa operationer utlöser automatisk återupptagande. Automatisk återupptagning startar också under distributionen av vissa tjänsteuppdateringar som kräver att databasen är online.

Automatisk återuppta utlösaridentifiering

Azure Monitor-aktivitetsloggen visar utlösare för automatisk återupptagning för Resume Databases-åtgärder under egenskapen Caller i JSON-koden för händelserna Started och Succeeded. För mer information, se Övervaka serverless compute-nivån.

Fördröjning

Latensen är vanligtvis cirka en minut för auto-återupptagande och 1–10 minuter för auto-paus efter att kriterierna för återupptagande eller paus är uppfyllda. Latensen för båda operationerna kan vara så låg som ungefär en sekund.

Kundhanterad transparent datakryptering

Borttagning eller återkallande av nycklar

Om du använder kundhanterad transparent datakryptering (ta med din egen nyckel eller BYOK) och den serverlösa databasen pausas när nyckelradering eller upphävning sker, förblir databasen i automatiskt pausat tillstånd. I detta fall, efter att databasen återupptagits, blir databasen otillgänglig inom cirka 10 minuter. När databasen blir otillgänglig är återställningsprocessen densamma som för etablerade beräkningsdatabaser. Om den serverlösa databasen är online när nyckelradering eller indragning sker, blir databasen också otillgänglig inom cirka 10 minuter på samma sätt som med provisionerade beräkningsdatabaser.

Nyckelrotation

Om du använder kundhanterad transparent datakryptering (BYOK) och aktiverar serverlös automatisk paus, återupptas databasen automatiskt när nycklar roteras. Databasen pausar sedan automatiskt när autopausningsvillkoren är uppfyllda.

Automatisk pausning av felsökning

Felsökning av automatisk återanslutning

Om en serverlös databas har pausats återupptar det första anslutningsförsöket databasen och returnerar ett fel som anger att databasen inte är tillgänglig med felkoden 40613. När databasen återupptas, försök ansluta igen. Databaser återupptas vanligtvis på mindre än en minut.

Alla molnanslutna applikationer bör använda rekommendationer för anslutningsåterförsökslogik. Applikationer kräver omförsökslogik för att lyckas efter tillfälliga anslutningsfel. Omprövarlogik är särskilt viktig för serverlösa databaser, där tillfälliga anslutningsfel på grund av automatisk återupptagning är förutsägbara.

Information om logikalternativ och rekommendationer för anslutningsförsök finns i:

Felsökning av automatisk paus

Om du aktiverar automatisk paus och inte använder funktioner som blockerar automatisk paus, men databasen inte autopausar efter fördröjningsperioden, kan applikations- eller användarsessioner förhindra automatisk paus.

Important

Förekomsten av öppna sessioner, med eller utan samtidig processoranvändning i användarresurspoolen, är den vanligaste orsaken till att en serverlös databas inte pausar automatiskt som förväntat.

Upptäck anslutningar som förhindrar automatisk paus

För att se om några applikations- eller användarsessioner för närvarande är anslutna till databasen, kör följande fråga:

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'
      );
  • Om resultatuppsättningen inte är tom indikerar det att sessioner för närvarande förhindrar automatisk paus.
  • Om resultatuppsättningen är tom är det fortfarande möjligt att sessionerna var öppna, möjligen under en kort tid, tidigare under den automatiska pausperioden. För att kontrollera aktivitet under fördröjningsperioden, använd Revision och granska revisionsdata för den aktuella perioden.

Tip

Efter att ha kört frågan, koppla bort från databasen. Annars förhindrar den öppna sessionen som används av frågan automatisk pausning.

Limitations

  • I den aktuella förhandsversionen av serverlös automatisk paus och automatisk återupptagning för Azure SQL Database Hyperscale är den kortaste fördröjningen för automatisk paus 60 minuter.
  • I den nuvarande förhandsversionen av serverlös automatisk paus och automatisk återupptagning för Azure SQL Database Hyperscale får nya Hyperscale-serverlösa databaser skapade via Azure CLI, Azure PowerShell eller REST API en standardautomatisk pausfördröjning på 60 minuter om du inte uttryckligen specificerar --auto-pause-delay (eller motsvarande parameter). För att inaktivera automatisk paus, ange --auto-pause-delay -1 när du skapar eller uppdaterar en databas. Detta beteende speglar det befintliga beteendet för General Purpose serverless.
  • I den aktuella förhandsversionen av serverlös automatisk paus och automatisk återupptagning för Azure SQL Database Hyperscale stöds inte automatisk paus och automatisk återupptagning för namngivna repliker.
  • Allmänna servrarlösa databaser med en automatisk pausfördröjning på mindre än 60 minuter kommer inte att kunna uppgradera till Hyperscale serverless om inte en automatisk pausfördröjning på minst 60 minuter (eller -1 för att inaktivera automatisk paus) anges.