Databaseresources dynamisch schalen met minimale downtime

VAN TOEPASSING OP: Azure SQL Database Azure SQL Managed Instance

Azure SQL Database en SQL Managed Instance kunt u dynamisch meer resources aan uw database toevoegen met minimale downtime; Er is echter een switch gedurende een periode waarin de verbinding met de database korte tijd verloren gaat, wat kan worden beperkt met behulp van logica voor opnieuw proberen.

Overzicht

Wanneer de vraag naar uw app groeit van een handjevol apparaten en klanten tot miljoenen, kunnen Azure SQL Database en SQL Managed Instance met minimale downtime worden geschaald. Schaalbaarheid is een van de belangrijkste kenmerken van platform as a service (PaaS) waarmee u dynamisch meer resources aan uw service kunt toevoegen wanneer dat nodig is. Azure SQL Database kunt u eenvoudig resources wijzigen (CPU-vermogen, geheugen, I/O-doorvoer en opslag) die aan uw databases zijn toegewezen.

U kunt prestatieproblemen als gevolg van toegenomen gebruik van uw toepassing beperken die niet kunnen worden opgelost met behulp van indexerings- of herschrijfmethoden voor query's. Door meer resources toe te voegen, kunt u snel reageren wanneer uw database de huidige resourcelimieten bereikt en meer vermogen nodig heeft om de binnenkomende workload te verwerken. Azure SQL Database kunt u ook de resources omlaag schalen wanneer ze niet nodig zijn om de kosten te verlagen.

U hoeft zich geen zorgen te maken over het kopen van hardware en het wijzigen van de onderliggende infrastructuur. Het schalen van een database kan eenvoudig via de Azure Portal met behulp van een schuifregelaar.

Databaseprestaties schalen

Azure SQL Database biedt het aankoopmodel op basis van DTU en het aankoopmodel op basis van vCore,terwijl Azure SQL Managed Instance alleen het aankoopmodel op basis van vCore biedt.

  • Het aankoopmodel op basis van DTU biedt een combinatie van reken-, geheugen- en I/O-resources in drie servicelagen ter ondersteuning van lichte tot zware databaseworkloads: Basic, Standard en Premium. Prestatieniveaus binnen elke laag bieden een andere combinatie van deze resources, waaraan u extra opslagbronnen kunt toevoegen.
  • Met het aankoopmodel op basis van vCore kunt u het aantal vCores, de hoeveelheid of het geheugen en de hoeveelheid en snelheid van de opslag kiezen. Dit aankoopmodel biedt drie servicelagen: Algemeen, Bedrijfskritiek en Hyperscale.

De servicelaag, rekenlaag en resourcelimieten voor een database, elastische pool of beheerd exemplaar kunnen op elk moment worden gewijzigd. U kunt bijvoorbeeld uw eerste app bouwen op één database met behulp van de serverloze rekenlaag en vervolgens de servicelaag op elk moment handmatig of programmatisch wijzigen in de inrichtende rekenlaag om te voldoen aan de behoeften van uw oplossing.

Notitie

Belangrijke uitzonderingen waarbij u de servicelaag van een database niet kunt wijzigen, zijn:

  • Databases in de Hyperscale-servicelaag kunnen momenteel niet worden gewijzigd in een andere servicelaag.
  • Databases die gebruikmaken van functies die alleen beschikbaar zijn in de Bedrijfskritiek/Premium-servicelagen, kunnen niet worden gewijzigd om de servicelaag Algemeen/Standard te gebruiken.

U kunt de resources die aan uw database zijn toegewezen, aanpassen door de servicedoelstelling of schaalbaarheid te wijzigen om te voldoen aan de werkbelastingseisen. Zo kunt u ook alleen betalen voor de resources die u nodig hebt, wanneer u ze nodig hebt. Raadpleeg de opmerking over de mogelijke impact van een schaalbewerking op een toepassing.

Notitie

Dynamische schaalbaarheid is iets anders dan automatisch schalen. Automatisch schalen is wanneer een service automatisch wordt geschaald op basis van criteria, terwijl dynamische schaalbaarheid handmatig schalen met minimale downtime mogelijk maakt. Individuele databases in Azure SQL Database kunnen handmatig worden geschaald, of in het geval van de serverlozelaag worden ingesteld om de rekenbronnen automatisch te schalen. Elastische pools,waarmee databases resources in een pool kunnen delen, kunnen momenteel alleen handmatig worden geschaald.

Azure SQL Database biedt de mogelijkheid om uw databases dynamisch te schalen:

  • Met één database kuntu DTU- of vCore-modellen gebruiken om de maximale hoeveelheid resources te definiëren die aan elke database worden toegewezen.
  • Met elastische pools kunt u de maximale resourcelimiet per groep databases in de pool definiëren.

Met Azure SQL Managed Instance kunt u ook schalen:

  • SQL Managed Instance maakt gebruik van de vCores-modus en kunt u het maximum aantal CPU-kernen en de maximale hoeveelheid opslag definiëren die aan uw exemplaar is toegewezen. Alle databases binnen het beheerde exemplaar delen de resources die aan het exemplaar zijn toegewezen.

Impact van bewerkingen voor omhoog of omlaag schalen

Het starten van een actie voor omhoog of omlaag schalen in een van de hierboven genoemde varianten, start het database-engineproces opnieuw op en verplaatst deze indien nodig naar een andere virtuele machine. Het verplaatsen van het database-engineproces naar een nieuwe virtuele machine is een onlineproces waarin u uw bestaande database Azure SQL Database service kunt blijven gebruiken. Zodra de doeldatabase-engine klaar is om query's te verwerken, worden open verbindingen met de huidige database-engine beëindigd en worden niet-doorgestuurde transacties teruggedraaid. Er worden nieuwe verbindingen gemaakt met de doeldatabase-engine.

Notitie

Het is niet raadzaam om uw beheerde exemplaar te schalen als er een langlopende transactie wordt uitgevoerd, zoals gegevensimport, gegevensverwerkingstaken, het herbouwen van indexen, enzovoort, of als u een actieve verbinding met het exemplaar hebt. Als u wilt voorkomen dat het schalen langer duurt dan normaal, moet u de instantie schalen nadat alle langlopende bewerkingen zijn voltooid.

Notitie

U kunt een korte verbindingsbreak verwachten wanneer het proces voor omhoog/omlaag schalen is voltooid. Als u logica voor opnieuw proberen hebt geïmplementeerd voor standaard tijdelijke fouten,ziet u de failover niet.

Alternatieve schaalmethoden

Het schalen van resources is de eenvoudigste en meest efficiënte manier om de prestaties van uw database te verbeteren zonder de database- of toepassingscode te wijzigen. In sommige gevallen kunnen zelfs de hoogste servicelagen, rekengrootten en prestatieoptimalisaties uw workload mogelijk niet op een succesvolle en rendabele manier verwerken. In dat geval hebt u de volgende extra opties om uw database te schalen:

  • Uitschalen van leesgegevens is een beschikbare functie waarbij u één alleen-lezenreplica van uw gegevens krijgt waar u veeleisende alleen-lezen query's zoals rapporten kunt uitvoeren. Een alleen-lezen replica verwerkt uw alleen-lezen workload zonder dat dit van invloed is op het resourcegebruik in uw primaire database.
  • Database-sharding is een set technieken waarmee u uw gegevens kunt opsplitsen in verschillende databases en deze onafhankelijk kunt schalen.

Volgende stappen

  • Zie Prestatieaanbevelingen zoeken en toepassen voor informatie over het verbeteren van databaseprestaties door databasecode te wijzigen.
  • Zie Automatisch afstemmen voor meer informatie over het optimaliseren van uw database met ingebouwde database-intelligentie.
  • Zie voor meer informatie over uitschalen van leesgegevens in Azure SQL Database alleen-lezen replica's gebruiken om alleen-lezen queryworkloads te verdelen.
  • Zie Uitschalen met Azure SQL Database voor meer informatie over database-sharding.
  • Zie PowerShell gebruiken om één database te bewaken en te schalen voor een voorbeeld van het gebruik van scripts voor het bewaken en schalen van één SQL Database.