Overzicht van elastische Hyperscale-pools in Azure SQL Database

Van toepassing op: Azure SQL Database

Dit artikel bevat een overzicht van elastische Hyperscale-pools in Azure SQL Database.

Met een elastische Pool van Azure SQL Database kunnen SaaS-ontwikkelaars (Software-as-a-Service) de prijs-prestatieverhouding voor een groep databases binnen een voorgeschreven budget optimaliseren en tegelijkertijd prestatie-elasticiteit bieden voor elke database. Elastische pools van Azure SQL Database Hyperscale introduceert een gedeeld resourcemodel voor Hyperscale-databases.

Voor voorbeelden voor het maken, schalen of verplaatsen van databases naar een elastische Hyperscale-pool met behulp van de Azure CLI of PowerShell, raadpleegt u Werken met elastische Hyperscale-pools met opdrachtregelprogramma's

Notitie

Elastische pools voor Hyperscale zijn momenteel beschikbaar als preview-versie.

Overzicht

Implementeer uw Hyperscale-database in een elastische pool om resources te delen tussen databases binnen de pool en optimaliseer de kosten voor het gebruik van meerdere databases met verschillende gebruikspatronen.

Scenario's voor het gebruik van een elastische pool met uw Hyperscale-databases:

  • Wanneer u de rekenresources die aan de elastische pool zijn toegewezen in een voorspelbare hoeveelheid tijd omhoog of omlaag moet schalen, onafhankelijk van de hoeveelheid toegewezen opslag.
  • Wanneer u de rekenresources wilt uitschalen die zijn toegewezen aan de elastische pool door een of meer replica's op leesschaal toe te voegen.
  • Als u een hoge doorvoer van transactielogboeken wilt gebruiken voor schrijfintensieve workloads, zelfs met lagere rekenresources.

Als u niet-Hyperscale-databases migreert naar een elastische Hyperscale-pool, worden de databases bijgewerkt naar de Hyperscale-servicelaag.

Architectuur

Traditioneel bestaat de architectuur van een zelfstandige Hyperscale-database uit drie belangrijke onafhankelijke onderdelen: Compute, Storage ('Paginaservers') en het logboek ('Log Service'). Wanneer u een elastische pool maakt voor uw Hyperscale-databases, delen de databases in de pool reken- en logboekresources. Als u ervoor kiest om hoge beschikbaarheid te configureren, wordt elke pool met hoge beschikbaarheid gemaakt met een equivalente en onafhankelijke set reken- en logboekresources.

Hieronder wordt de architectuur van een elastische pool voor Hyperscale-databases beschreven:

  • Een elastische Hyperscale-pool bestaat uit een primaire pool die als host fungeert voor primaire Hyperscale-databases en, indien geconfigureerd, tot vier extra pools met hoge beschikbaarheid.
  • Primaire Hyperscale-databases die worden gehost in de primaire elastische pool delen het rekenproces van de SQL Server-database-engine (sqlservr.exe), vCores, geheugen en SSD-cache.
  • Als u hoge beschikbaarheid configureert voor de primaire pool, worden extra pools met hoge beschikbaarheid gemaakt die alleen-lezen databasereplica's bevatten voor de databases in de primaire pool. Elke primaire pool kan maximaal vier replicagroepen met hoge beschikbaarheid hebben. Elke pool met hoge beschikbaarheid deelt rekenkracht, SSD-cache en geheugenresources voor alle secundaire alleen-lezen databases in de pool.
  • Hyperscale-databases in de primaire elastische pool delen allemaal dezelfde logboekservice. Omdat databases in de pools met hoge beschikbaarheid geen schrijfworkload hebben, maken ze geen gebruik van de logboekservice.
  • Elke Hyperscale-database heeft een eigen set paginaservers en deze paginaservers worden gedeeld tussen de primaire database in de primaire pool en alle secundaire replicadatabases in de pool met hoge beschikbaarheid.
  • Secundaire Hyperscale-databases met geo-replicatie kunnen in een andere elastische pool worden geplaatst.
  • ApplicationIntent=ReadOnly Als u opgeeft in uw database verbindingsreeks u doorstuurt naar een alleen-lezen replicadatabase in een van de pools met hoge beschikbaarheid.

In het volgende diagram ziet u de architectuur van een elastische pool voor Hyperscale-databases:

Diagram showing the Hyperscale elastic pool architecture.

Databases voor elastische Hyperscale-pools beheren

U kunt dezelfde opdrachten gebruiken om uw gegroepeerde Hyperscale-databases te beheren als pooldatabases in de andere servicelagen. Zorg ervoor dat u de editie opgeeft Hyperscale bij het maken van uw elastische Hyperscale-pool.

Het enige verschil is de mogelijkheid om het aantal H/A-replica's (hoge beschikbaarheid) voor een bestaande elastische Hyperscale-pool te wijzigen. Hiervoor doet u het volgende:

U kunt de volgende clienthulpprogramma's gebruiken om uw Hyperscale-databases in een elastische pool te beheren:

Niet-Hyperscale-databases migreren naar elastische Hyperscale-pools

Wanneer u een database naar Hyperscale migreert, kunt u de database toevoegen aan een bestaande elastische Hyperscale-pool. Voor deze migraties moet de elastische Hyperscale-pool bestaan op dezelfde logische server als de brondatabase.

Wanneer u databases migreert naar elastische Hyperscale-pools, moet u rekening houden met het maximum aantal databases per elastische Hyperscale-pool.

Niet-Hyperscale-databases migreren naar elastische Hyperscale-pools met behulp van T-SQL

U kunt T-SQL-opdrachten gebruiken om meerdere algemene databases te migreren en deze toe te voegen aan een bestaande elastische Hyperscale-pool met de naam hsep1:

ALTER DATABASE gpepdb1 MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL(NAME = [hsep1]))
ALTER DATABASE gpepdb2 MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL(NAME = [hsep1]))
ALTER DATABASE gpepdb3 MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL(NAME = [hsep1]))
ALTER DATABASE gpepdb4 MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL(NAME = [hsep1]))

In dit voorbeeld vraagt u impliciet een migratie van Algemeen gebruik naar Hyperscale aan door op te geven dat het doel SERVICE_OBJECTIVE een elastische Hyperscale-pool is. Met elk van de bovenstaande opdrachten wordt de respectieve database voor algemeen gebruik naar Hyperscale gemigreerd. Deze ALTER DATABASE opdrachten worden snel geretourneerd en wachten niet tot de migratie is voltooid. In het voorbeeld dat wordt weergegeven, hebt u vier dergelijke migraties van Algemeen gebruik naar Hyperscale die parallel worden uitgevoerd.

U kunt een query uitvoeren op de sys.dm_operation_status dynamische beheerweergave om de status van deze migratiebewerkingen op de achtergrond te bewaken.

Niet-Hyperscale-databases migreren naar elastische Hyperscale-pools met behulp van PowerShell

U kunt PowerShell-opdrachten gebruiken om meerdere algemene databases te migreren en toe te voegen aan een bestaande elastische Hyperscale-pool met de naam hsep1. Met het volgende voorbeeldscript worden bijvoorbeeld de volgende stappen uitgevoerd:

  1. Gebruik de cmdlet Get-AzSqlElasticPoolDatabase om alle databases in de elastische pool algemeen gebruik met de naam weer te geven gpep1.
  2. De Where-Object cmdlet filtert de lijst alleen op die databasenamen die beginnen met gpepdb.
  3. Voor elke database start de Set-AzSqlDatabase-cmdlet een migratie. In dit geval vraagt u impliciet een migratie naar de Hyperscale-servicelaag aan door de elastische doelpool van Hyperscale op te geven met de naam hsep1.
    • Met -AsJob de Set-AzSqlDatabase parameter kunnen alle aanvragen parallel worden uitgevoerd. Als u de migraties liever één voor één uitvoert, kunt u de -AsJob parameter verwijderen.
$dbs = Get-AzSqlElasticPoolDatabase -ResourceGroupName "myResourceGroup" -ServerName "mylogicalserver" -ElasticPoolName "gpep1"
$dbs | Where-Object { $_.DatabaseName -like "gpepdb*" } | % { Set-AzSqlDatabase -ResourceGroupName "myResourceGroup" -ServerName "mylogicalserver" -DatabaseName ($_.DatabaseName) -ElasticPoolName "hsep1" -AsJob }

Naast de sys.dm_operation_status dynamische beheerweergave kunt u de PowerShell-cmdlet Get-AzSqlDatabaseActivity gebruiken om de status van deze migratiebewerkingen op de achtergrond te bewaken.

Bronlimieten

Hieronder ziet u de ondersteunde limieten voor het werken met Hyperscale-databases binnen elastische pools:

  • Ondersteunde hardwaregeneratie: Standard-serie (Gen5), premium-serie en geoptimaliseerd geheugen uit de Premium-serie.
  • vCore-maximum per pool: 80 of 128 vCores, afhankelijk van de serviceniveaudoelstelling.
  • Maximale ondersteunde gegevensgrootte per database: 100 TB.
  • Maximale ondersteunde totale gegevensgrootte voor DB's in de pool: 100 TB.
  • Maximale ondersteunde doorvoer van transactielogboeken per database: 100 MB.
  • Maximale ondersteunde totale doorvoer van transactielogboeken voor databases in de pool: 131,25 MB/seconde.
  • Elke elastische Hyperscale-pool kan maximaal 25 databases bevatten.

Zie de resourcelimieten van elastische Hyperscale-pools voor geoptimaliseerd geheugen uit de standard-serie, premium-serie en geoptimaliseerd voor premium-serie.

Notitie

Prestatieprofielen, ondersteunde mogelijkheden en gepubliceerde limieten kunnen worden gewijzigd terwijl de functie in preview is. Daarom is het raadzaam om uw use-case te valideren met regelmatige functionele, prestaties en schaaltests van workloads.

Beperkingen

Overweeg de volgende beperkingen:

  • Het wijzigen van een bestaande niet-Hyperscale elastische pool in de Hyperscale-editie wordt niet ondersteund. De migratiesectie biedt enkele alternatieven die u kunt gebruiken.
  • Het wijzigen van de editie van een elastische Hyperscale-pool in een niet-Hyperscale-editie wordt niet ondersteund.
  • Als u een in aanmerking komende database wilt omkeren , die zich in een elastische Hyperscale-pool bevindt, moet deze eerst worden verwijderd uit de elastische Hyperscale-pool. De zelfstandige Hyperscale-database kan vervolgens worden omgekeerd naar een zelfstandige database voor algemeen gebruik.
  • Onderhoud van databases in een pool wordt uitgevoerd en onderhoudsvensters worden geconfigureerd op groepsniveau. Het is momenteel niet mogelijk om een onderhoudsvenster te configureren voor elastische Hyperscale-pools.
  • Zoneredundantie is momenteel niet beschikbaar voor elastische Hyperscale-pools. Als u een zoneredundante Hyperscale-database probeert toe te voegen aan een elastische Hyperscale-pool, treedt er een fout op.
  • Het toevoegen van een benoemde replica aan een elastische Hyperscale-pool wordt niet ondersteund. Als u een benoemde replica van een Hyperscale-database probeert toe te voegen aan een elastische Hyperscale-pool, treedt er een UnsupportedReplicationOperation fout op. Maak in plaats daarvan de benoemde replica als één Hyperscale-database.

Bekende problemen

Probleem Aanbeveling
Als u probeert een nieuwe elastische Hyperscale-pool te maken vanuit PowerShell met de -ZoneRedundant opgegeven parameter, krijgt u een vaag One or more errors occurredresultaat. Als u de PowerShell-opdracht uitvoert met de respectieve -Verbose en -Debug parameters die zijn opgegeven, krijgt u de werkelijke fout: Provisioning of zone redundant database/pool is not supported for your current request. Op dit moment wordt het maken van elastische Hyperscale-pools met zoneredundantie opgegeven niet ondersteund.
In zeldzame gevallen krijgt u mogelijk de fout 45122 - This Hyperscale database cannot be added into an elastic pool at this time. In case of any questions, please contact Microsoft support, bij het verplaatsen/herstellen/kopiëren van een Hyperscale-database naar een elastische pool. Deze beperking wordt veroorzaakt door implementatiespecifieke details. Als deze fout u blokkeert, dient u een ondersteuningsincident in en vraagt u om hulp.