Dela via


Elastiska pooler hjälper dig att hantera och skala flera databaser i Azure SQL Database

gäller för:Azure SQL Database

Elastiska Pooler i Azure SQL Database är en enkel, kostnadseffektiv lösning för att hantera och skala flera databaser med varierande och oförutsägbara användningskrav. Databaserna i en elastisk pool finns på en enskild server och delar ett visst antal resurser till ett visst pris. Med elastiska pooler i SQL Database kan saaS-utvecklare (software-as-a-service) optimera prisprestanda för en grupp databaser inom en föreskriven budget samtidigt som de levererar prestandaelasticitet för varje databas.

Vad är elastiska SQL-pooler?

SaaS-utvecklare skapar program ovanpå storskaliga datanivåer med flera databaser. Ett typiskt programmönster är att etablera en enskild databas för varje kund. Olika kunder har dock ofta varierande och oförutsägbara användningsmönster, och det är svårt att förutsäga resurskraven för varje databasanvändare. Traditionellt hade du två alternativ:

  • Överprovisionera resurser baserat på högsta användning och betala för mycket.
  • Underetablering för att spara kostnader på bekostnad av prestanda och kundnöjdhet under toppar.

Elastiska pooler löser det här problemet genom att se till att databaserna får de prestandaresurser de behöver när de behöver dem. De tillhandahåller en enkel resursallokeringsmekanism inom en förutsägbar budget. För mer information om arkitekturmönster för SaaS-applikationer med elastiska pooler, se Multitenant SaaS-databasens hyresmönster.

Viktig

Det finns ingen avgift per databas för elastiska pooler. Du debiteras för varje timme en pool existerar med högsta eDTU eller virtuella kärnor, oavsett om den används eller om den var aktiv i mindre än en timme.

Med elastiska pooler kan du köpa resurser för en pool som delas av flera databaser för att hantera oförutsägbara användningsperioder för enskilda databaser. Du kan konfigurera resurser för poolen baserat antingen på den DTU-baserade inköpsmodellen eller den VCore-baserade inköpsmodellen. Den aggregerade användningen av databaserna avgör resurskravet för en pool.

Mängden resurser som är tillgängliga för poolen styrs av din budget. Allt du behöver göra är:

  • Lägg till databaser i poolen.
  • Du kan också ange minsta och högsta resurser för databaserna, antingen i DTU- eller vCore-köpmodellen.
  • Ange resurserna i poolen baserat på din budget.

Du kan använda pooler för att sömlöst utöka din tjänst från en mager start till ett moget företag i en ständigt ökande skala.

I poolen får enskilda databaser flexibiliteten att använda resurser inom angivna parametrar. Under hög belastning kan en databas förbruka fler resurser för att möta efterfrågan. Databaser under lätta belastningar förbrukar mindre och databaser utan belastning förbrukar inga resurser. Etablering av resurser för hela poolen i stället för enkla databaser förenklar hanteringsuppgifter. Dessutom har du en förutsägbar budget för poolen.

Fler resurser kan läggas till i en befintlig pool med minimal stilleståndstid. Om extra resurser inte längre behövs kan de tas bort från en befintlig pool när som helst. Du kan också lägga till eller ta bort databaser från poolen. Om en databas underutnyttjer resurser på ett förutsägbart sätt kan du flytta ut den.

Notis

När du flyttar databaser till eller från en elastisk pool finns det ingen stilleståndstid förutom en kort period (i sekunders ordning) när databasanslutningar tas bort i slutet av åtgärden.

När ska man överväga en elastisk SQL Database-pool?

Pooler passar bra för ett stort antal databaser med specifika användningsmönster. Det här mönstret kännetecknas av låg genomsnittlig användning med ovanliga användningstoppar för en viss databas. Omvänt bör flera databaser med beständig medelhög användning inte placeras i samma elastiska pool.

Ju fler databaser du kan lägga till i en pool, desto större besparingar. Beroende på ditt programanvändningsmönster går det att se besparingar med så få som två S3-databaser.

Följande avsnitt hjälper dig att förstå hur du utvärderar om din specifika samling databaser kan dra nytta av att vara i en pool. Exemplen använder Standard-pooler, men samma principer gäller för elastiska pooler på andra tjänstnivåer.

Utvärdera mönster för databasanvändning

Följande bild visar ett exempel på en databas som är inaktiv under större delen av tiden men periodvis spikar med aktivitet. Det här användningsmönstret passar för en pool.

diagram som visar en enkel databas som är lämplig för en pool.

Diagrammet visar DTU-användning under en timme från 12:00 till 1:00 där varje datapunkt har en minuts kornighet. Vid 12:10 toppar DB1 upp till 90 DTU:er, men den totala genomsnittliga användningen är färre än fem DTU:er. En S3-beräkningsstorlek krävs för att köra den här arbetsbelastningen i en enda databas, men den här storleken lämnar de flesta resurser oanvända under perioder med låg aktivitet.

Med en pool kan dessa oanvända DTU:er delas mellan flera databaser. En pool minskar de DTU:er som behövs och den totala kostnaden.

Anta att andra databaser har liknande användningsmönster som DB1. I följande två siffror läggs användningen av 4 databaser och 20 databaser i samma graf för att illustrera användningens icke-överlappande karaktär över tid med hjälp av den DTU-baserade inköpsmodellen:

diagram som visar fyra databaser med ett användningsmönster som lämpar sig för en pool.

diagram som visar 20 databaser med ett användningsmönster som lämpar sig för en pool.

Den svarta linjen i föregående diagram illustrerar den aggregerade DTU-användningen i alla 20 databaser. Den här raden visar att den aggregerade DTU-användningen aldrig överskrider 100 DTU:er och anger att de 20 databaserna kan dela 100 eDTU:er under den här perioden. Resultatet är en 20-tids minskning av DTU:er och en 13-tids prissänkning jämfört med att placera varje databas i S3-beräkningsstorlekar för enskilda databaser.

Det här exemplet är idealiskt eftersom:

  • Det finns stora skillnader mellan hög användning och genomsnittlig användning per databas.
  • Den högsta användningen för varje databas sker vid olika tidpunkter.
  • eDTU:er delas mellan många databaser.

I DTU-inköpsmodellen är priset för en pool en funktion av poolens eDTU:er. Även om eDTU-enhetspriset för en pool är 1,5 gånger högre än DTU-enhetspriset för en enskild databas, kan pool-eDTU:er delas av många databaser och färre totala eDTU:er behövs. Dessa skillnader i prissättning och eDTU-delning är grunden för den prisbesparingspotential som pooler kan ge.

I vCore-köpmodellen är enhetspriset för vCore för elastiska pooler detsamma som enhetspriset för vCore för enskilda databaser.

Hur väljer jag rätt poolstorlek?

Den bästa storleken för en pool beror på de aggregerade resurser som behövs för alla databaser i poolen. Du måste fastställa följande:

  • Maximalt antal beräkningsresurser som används av alla databaser i poolen. Beräkningsresurser indexeras av antingen eDTU:er eller virtuella kärnor, beroende på ditt val av inköpsmodell.
  • Maximalt antal lagringsbyte som används av alla databaser i poolen.

Information om tjänstnivåer och resursgränser i varje inköpsmodell finns i DTU-baserad inköpsmodell eller den vCore-baserade inköpsmodellen.

Följande steg kan hjälpa dig att uppskatta om en pool är mer kostnadseffektiv än enskilda databaser:

  1. Beräkna de eDTU:er eller virtuella kärnor som behövs för poolen:

    1. För den DTU-baserade inköpsmodellen:
      1. MAX(<Totalt antal DB:er × Genomsnittlig DTU-användning per databas>, <Antal DB:er med hög belastning samtidigt × högsta DTU-användning per databas>)
    2. För vCore-baserad köpsmodell:
      1. MAX(<Totalt antal databaser × Genomsnittlig användning av virtuella kärnor per databas>, <Antal DB:er som toppar samtidigt × maximal användning av virtuella kärnor per DATABAS>)
  2. Beräkna det totala lagringsutrymme som behövs för poolen genom att lägga till den datastorlek som behövs för alla databaser i poolen. För köpmodellen för DTU anger du den eDTU-poolstorlek som ger den här mängden lagringsutrymme.

  3. För den DTU-baserade inköpsmodellen tar du det större av eDTU-uppskattningarna från steg 1 och steg 2.

    1. För den vCore-baserade köpmodellen, ta vCore-uppskattningen från steg 1.
  4. Se prissidan för SQL Database.

    1. Hitta den minsta poolstorleken som är större än uppskattningen från steg 3.
  5. Jämför poolpriset från steg 4 till att använda lämpliga beräkningsstorlekar för enskilda databaser.

Viktig

Om antalet databaser i en pool närmar sig det maximala antalet som stöds bör du överväga resurshantering i kompakta elastiska pooler.

Egenskaper per databas

Du kan också ange egenskaper per databas för att ändra resursförbrukningsmönster i elastiska pooler. Mer information finns i dokumentationen om resursbegränsningar för DTU- och virtuella kärnor elastiska pooler.

Använda andra SQL Database-funktioner med elastiska pooler

Du kan använda andra SQL Database-funktioner med elastiska pooler.

Elastiska jobb och elastiska pooler

Med en pool förenklas hanteringsuppgifterna genom att köra skript i elastiska jobb. Ett elastiskt jobb eliminerar det mesta av tediumet som är associerat med ett stort antal databaser.

Mer information om andra databasverktyg för att arbeta med flera databaser finns i Skala ut med Azure SQL Database.

Elastiska hyperskalapooler

Översikt över elastiska hyperskalapooler i Azure SQL Database är allmänt tillgängliga.

Skrivskyddade utökningsbara instanser

Du kan inte använda skrivskyddade scale out-instans av Azure SQL Database med elastic query.

Alternativ för affärskontinuitet för databaser i en elastisk pool

Pooldatabaser stöder vanligtvis samma funktioner för affärskontinuitet som är tillgängliga för enskilda databaser:

  • Återställning till specifik tidpunkt: Återställning till en specifik tidpunkt använder automatiska databassäkerhetskopior för att återställa en databas i en pool till en viss tidpunkt. Se återställning till en tidigare tidpunkt.
  • Geo-restore: Geo-restore är standardåterställningsalternativet när en databas inte är tillgänglig på grund av en incident i den region där databasen finns. Se för Geo-återställning.
  • Aktiv geo-replikering: För program som har mer aggressiva återställningskrav än geo-återställning kan erbjuda konfigurerar du aktiv geo-replikering eller en redundansgrupp.

Mer information om ovanstående strategier finns i riktlinjer för haveriberedskap.

Skapa en ny elastisk SQL Database-pool med hjälp av Azure-portalen

Du kan skapa en elastisk pool i Azure-portalen på två sätt:

  • Skapa en elastisk pool och välj en befintlig eller ny server.
  • Skapa en elastisk pool från en befintlig server.

Om du vill skapa en elastisk pool och välja en befintlig eller ny server:

  1. Gå till Azure-portalen för att skapa en elastisk pool. Sök efter och välj Azure SQL.

  2. Välj Skapa för att öppna fönstret för alternativet Välj SQL-distribution . Om du vill visa mer information om elastiska pooler går du till panelen Databaser väljer du Visa information.

  3. I listrutan Databaser går du till listrutan Resurstyp och väljer Elastisk pool. Välj sedan Skapa.

    Skärmbild som visar hur du skapar en elastisk pool.

  4. Sedan hantera din elastiska pool via Azure-portalen, PowerShell, Azure CLI, REST API eller T-SQL.

Skapa en elastisk pool från en befintlig server:

  1. Gå till en befintlig server och välj Ny pool för att skapa en pool direkt på servern.

    Notera

    Du kan skapa flera pooler på en server, men du kan inte lägga till databaser från olika servrar i samma pool.

    Poolens tjänstnivå avgör vilka funktioner som är tillgängliga för elasticiteterna i poolen och den maximala mängden resurser som är tillgängliga för varje databas. Mer information finns i resursgränser för elastiska pooler i DTU-modellen. För vCore-baserade resursgränser för elastiska pooler, se vCore-baserade resursgränser – elastiska pooler.

  2. Om du vill konfigurera resurser och priser för poolen väljer du Konfigurera pool. Välj sedan en tjänstnivå, lägg till databaser i poolen och konfigurera resursgränserna för poolen och dess databaser.

  3. När du har konfigurerat poolen väljer du Använd, namnger poolen och väljer OK för att skapa poolen.

  4. Sedan hantera din elastiska pool via Azure-portalen, PowerShell, Azure CLI, REST API eller T-SQL.

Övervaka en elastisk pool och dess databaser

I Azure-portalen kan du övervaka användningen av en elastisk pool och databaserna i poolen. Du kan också göra en uppsättning ändringar i din elastiska pool och skicka alla ändringar samtidigt. Dessa ändringar omfattar att lägga till eller ta bort databaser, ändra dina inställningar för elastiska pooler eller ändra databasinställningarna.

Du kan använda de inbyggda verktygen för prestandaövervakning och aviseringsverktyg i kombination med prestandaklassificeringar. SQL Database kan också generera mått och resursloggar för enklare övervakning.

Kundfallsstudier

  • SnelStart: SnelStart använde elastiska pooler med SQL Database för att snabbt utöka sina affärstjänster med en hastighet av 1 000 nya SQL-databaser per månad.
  • Umbraco: Umbraco använder elastiska pooler med SQL Database för att snabbt etablera och skala tjänster för tusentals klienter i molnet.