Databasebronnen dynamisch schalen met minimale downtime - Azure SQL Database & Azure SQL Managed Instance
Van toepassing op: Azure SQL DatabaseAzure SQL Managed Instance
Met Azure SQL Database en Azure SQL Managed Instance kunt u dynamisch meer resources aan uw database toevoegen met minimale downtime. Er is echter een switch over de periode waarin de verbinding met de database gedurende 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 handvol apparaten en klanten tot miljoenen, schaalt Azure SQL Database en SQL Managed Instance onmiddellijk met minimale downtime. Schaalbaarheid is een van de belangrijkste kenmerken van PaaS (Platform as a Service) waarmee u zo nodig dynamisch meer resources aan uw service kunt toevoegen. Met Azure SQL Database kunt u eenvoudig resources (CPU-kracht, geheugen, IO-doorvoer en opslag) wijzigen die zijn toegewezen aan uw databases.
U kunt prestatieproblemen beperken vanwege een verhoogd gebruik van uw toepassing die niet kan worden opgelost met behulp van indexerings- of queryherschrijfmethoden. 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 af te handelen. Met Azure SQL Database kunt u de resources ook omlaag schalen wanneer ze niet nodig zijn om de kosten te verlagen.
U hoeft zich geen zorgen te maken over het aanschaffen van hardware en het wijzigen van de onderliggende infrastructuur. U kunt een database eenvoudig schalen via Azure Portal met behulp van een schuifregelaar.
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 lichtgewicht 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 gebruik, Bedrijfskritiek en Hyperscale.
De servicelaag, rekenlaag en resourcelimieten voor een database, elastische pool of beheerd exemplaar kunnen op elk gewenst moment worden gewijzigd. U kunt bijvoorbeeld uw eerste app bouwen op één database met behulp van de serverloze rekenlaag en vervolgens de servicelaag handmatig of programmatisch wijzigen in de ingerichte 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 die gebruikmaken van functies die alleen beschikbaar zijn in de Bedrijfskritiek/Premium-servicelagen, kunnen niet worden gewijzigd om de servicelaag Algemeen/Standard te gebruiken. Op dit moment is de enige functie in-memory OLTP.
- Databases die oorspronkelijk in de Hyperscale-servicelaag zijn gemaakt, kunnen niet worden gemigreerd naar andere servicelagen. Als u een bestaande database in Azure SQL Database migreert naar de Hyperscale-servicelaag, kunt u de migratie terugdraaien naar de servicelaag Algemeen gebruik binnen 45 dagen na de oorspronkelijke migratie naar Hyperscale. Als u de database wilt migreren naar een andere servicelaag, zoals Bedrijfskritiek, moet u eerst omgekeerd migreren naar de servicelaag Algemeen gebruik en vervolgens een verdere migratie uitvoeren. Meer informatie over het omkeren van de migratie van Hyperscale.
U kunt de resources aanpassen die aan uw database zijn toegewezen door de servicedoelstelling te wijzigen of te schalen om te voldoen aan de workloadvereisten. Hierdoor kunt u ook alleen betalen voor de resources die u nodig hebt, wanneer u ze nodig hebt. Raadpleeg de opmerking over de mogelijke gevolgen die een schaalbewerking voor een toepassing kan hebben.
Azure SQL Database biedt de mogelijkheid om uw databases dynamisch te schalen:
- Met één database kunt u 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 stelt u in staat om maximale CPU-kernen en maximale opslag te definiëren die aan uw exemplaar zijn toegewezen. Alle databases in het beheerde exemplaar delen de resources die aan het exemplaar zijn toegewezen.
Tip
Met dynamisch schalen kunnen klanten resourcetoewijzing handmatig of programmatisch wijzigen. De mogelijkheid voor dynamisch schalen is beschikbaar voor alle Azure SQL Database- en Azure SQL Managed Instance-resources.
Naast het ondersteunen van dynamisch schalen biedt de serverloze laag in Azure SQL Database ondersteuning voor automatisch schalen. Databases in de serverloze laag schalen resources automatisch binnen een door de klant opgegeven bereik, op basis van de vraag naar werkbelasting. Er is geen klantactie vereist om de database te schalen.
Impact van omhoog of omlaag schalen
Door een actie omhoog of omlaag te schalen, start u in een van de hierboven genoemde varianten het database-engineproces opnieuw op en verplaatst u 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 Azure SQL Database-service kunt blijven gebruiken. Zodra de doeldatabase-engine klaar is om query's te verwerken, worden geopende verbindingen met de huidige database-engine beëindigd en worden niet-doorgevoerde transacties teruggedraaid. Er worden nieuwe verbindingen gemaakt met de doeldatabase-engine.
Notitie
Het wordt afgeraden om uw beheerde exemplaar te schalen als een langlopende transactie, zoals het importeren van gegevens, gegevensverwerkingstaken, het opnieuw opbouwen van indexen, enzovoort, wordt uitgevoerd of als u een actieve verbinding hebt op het exemplaar. Als u wilt voorkomen dat het schalen langer duurt dan normaal, moet u het exemplaar schalen na voltooiing van alle langlopende bewerkingen.
Notitie
U kunt een kort verbindingseinde verwachten wanneer het proces omhoog/omlaag schalen is voltooid. Als u logica voor opnieuw proberen hebt geïmplementeerd voor tijdelijke standaardfouten, ziet u de failover niet.
Alternatieve schaalmethoden
Het schalen van resources is de eenvoudigste en meest effectieve 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 op een succesvolle en rendabele manier niet verwerken. In dat geval hebt u deze extra opties om uw database te schalen:
- Uitschalen van lezen is een beschikbare functie waarbij u één alleen-lezen replica van uw gegevens krijgt, waar u veeleisende alleen-lezenquery'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 splitsen in verschillende databases en ze onafhankelijk kunt schalen.
Volgende stappen
- Zie Prestatieaanaanveling zoeken en toepassen voor informatie over het verbeteren van de databaseprestaties door databasecode te wijzigen.
- Zie Automatisch afstemmen voor informatie over het optimaliseren van uw database met ingebouwde database-intelligentie.
- Zie voor meer informatie over uitschalen in Azure SQL Database hoe u alleen-lezenreplica's gebruikt om taken van alleen-lezen queryworkloads te verdelen.
- Zie Uitschalen met Azure SQL Database voor meer informatie over een database-sharding.
- Zie PowerShell gebruiken om één SQL Database te bewaken en te schalen voor een voorbeeld van het gebruik van scripts voor het bewaken en schalen van één database.