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:

  • Överetablera resurser baserat på hög användning och överbetalning.
  • 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 med en förutsägbar budget. Mer information om designmönster för SaaS-program med elastiska pooler finns i Designmönster för SaaS-program med flera klienter med SQL Database.

Viktigt!

Det finns ingen avgift per databas för elastiska pooler. Du debiteras för varje timme en pool finns på högsta eDTU eller virtuella kärnor, oavsett användning eller om poolen 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 de minsta och högsta resurserna för databaserna. Dessa resurser är antingen lägsta och högsta DTU:er eller minsta eller högsta virtuella kärnor, beroende på ditt val av resursmodell.
  • 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 kan de enskilda databaserna få flexibiliteten att använda resurser inom fastställda 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. Genom att etablera resurser för hela poolen i stället för enskilda databaser kan du förenkla dina 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.

Kommentar

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 lämpar sig väl 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 avgör om en specifik samling databaser kan ha nytta av att tillhöra 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 ägnar mycket av sin inaktiva tid men med jämna mellanrum toppar med aktivitet. Det här användningsmönstret passar för en pool.

Chart that shows a single database suitable for a 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:

Chart that shows four databases with a utilization pattern suitable for a pool.

Chart that shows 20 databases with a utilization pattern suitable for a 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:

  • Skillnaderna mellan användningen vid hög aktivitet och den genomsnittliga användningen per databas är stora.
  • Belastningstopparna för varje databas inträffar vid olika tidpunkter.
  • eDTU:er som delas mellan flera 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 pris och eDTU-delning utgör grunden för de prisbesparingar som pooler kan medföra.

I köpmodellen för virtuell kärna är enhetspriset för virtuell kärna för elastiska pooler detsamma som enhetspriset för virtuella kärnor för enskilda databaser.

Hur gör jag för att välja 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.
  • Högsta lagringsutrymme i byte som används av alla databaser i poolen.

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

Kommentar

Elastiska pooler för Hyperskala är för närvarande i förhandsversion.

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

  1. Beräkna hur många eDTU:er eller virtuella kärnor som behövs poolen:

    1. För den DTU-baserade köpmodellen:
      1. MAX(<Totalt antal DB:er × genomsnittlig DTU-användning per databas>,< antal DB:er som toppar samtidigt × högsta DTU-användning per databas>)
    2. För den virtuell kärna-baserade köpmodellen:
      1. MAX(<Totalt antal databaser × genomsnittlig användning av virtuella kärnor per databas>,< antal samtidiga topp-DB:er × maximal användning av virtuella kärnor per databas>)
  2. Beräkna hur stort lagringsutrymme som krävs för poolen genom att lägga till antalet byte 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 köpmodellen baserad på virtuella kärnor tar du uppskattningen av virtuella kärnor från steg 1.
  4. Se prissättningssidan 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.

Viktigt!

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 elastiska DTU - och vCore-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 eftersom du kan 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 SQL Database.

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 tidpunkt: Återställning till tidpunkt använder automatiska databassäkerhetskopior för att återställa en databas i en pool till en viss tidpunkt. Se Återställning till tidpunkt.
  • Geo-återställning: Geo-återställning ger standardåterställningsalternativet när en databas inte är tillgänglig på grund av en incident i den region där databasen finns. Se Geo-återställning.
  • Aktiv geo-replikering: För program som har mer aggressiva återställningskrav än geo-återställning kan erbjuda, konfigurera aktiv geo-replikering eller en redundansgrupp.

Mer information om ovanstående strategier finns i Vägledning för haveriberedskap i Azure SQL Database.

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.

Så här skapar du en elastisk pool och väljer 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 Välj SQL-distributionsalternativ . Om du vill visa mer information om elastiska pooler går du till panelen Databaser och väljer Visa information.

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

    Screenshot that shows creating an elastic pool.

Så här skapar du en elastisk pool från en befintlig server:

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

Kommentar

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. Information om virtuella kärnor-baserade resursgränser för elastiska pooler finns i VCore-baserade resursgränser – elastiska pooler.

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.

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

Ö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 avisering i kombination med prestandaklassificeringar. SQL Database kan också generera mått och resursloggar för enklare övervakning.

Kundfallstudier

`- 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 klientorganisationer i molnet.
  • Daxko/CSI: Daxko/CSI använder elastiska pooler med SQL Database för att påskynda utvecklingscykeln och för att förbättra sina kundtjänster och prestanda.