De juiste Azure SQL Database, Azure SQL Managed Instance of SQL Server op Azure VM SKU identificeren voor uw on-premises database
Belangrijk
Data Migration Assistant (DMA) is verouderd verklaard. Zie de migratieopties voor SQL Server naar Azure SQLvoor migratieopties van SQL Server naar Azure SQL.
Het migreren van databases naar de cloud kan ingewikkeld zijn. Vooral bij het selecteren van de beste Azure SQL Database, SQL Managed Instance of SQL Server op Azure VM als doel en SKU voor uw database.
Database Migration Assistant (DMA) helpt deze vragen aan te pakken en uw databasemigratie eenvoudiger te maken door deze SKU-aanbevelingen te geven in een gebruiksvriendelijke uitvoer. Met behulp van prestatiegegevens kan DMA nu een geschikte Azure SQL-SKU aanbevelen en een uitleg voor de aanbeveling.
Met de functie aanbevelingen voor SKU's kunt u zowel prestatiegegevens verzamelen van uw bron-SQL Server-exemplaren die als host fungeren voor uw databases, en wordt minimaal Azure SQL Database, Azure SQL Managed Instance of SQL Server op Azure VM-SKU aanbevolen op basis van de verzamelde gegevens. De functie biedt aanbevelingen met betrekking tot de prijscategorie, het rekenniveau en de gegevensgrootte. Deze functionaliteit is momenteel alleen beschikbaar via de opdrachtregelinterface (CLI).
Hieronder vindt u instructies voor het bepalen van de SKU-aanbevelingen en het inrichten van bijbehorende databases in Azure met behulp van DMA.
Notitie
Als u de volledige SQL Server-gegevensomgeving op schaal beoordeelt op VMware, gebruikt u Azure Migrate- om aanbevelingen voor Azure SQL-implementatie, doelgrootte en maandelijkse schattingen te krijgen.
Voorwaarden
- Download en installeer de nieuwste versie van DMA-. Als u al een eerdere versie van het hulpprogramma hebt, opent u deze en wordt u gevraagd om DMA bij te werken.
- Installeer de minimale versie .NET Core 6.0 op de hulpmachine waarop de consoletoepassing SKU-aanbevelingen draait.
- Zorg ervoor dat het account dat wordt gebruikt om verbinding te maken met uw on-premises SQL Server-bron sysadmin-machtiging heeft.
Notitie
Het wordt aanbevolen dat het hulpprogramma wordt gebruikt vanaf een afzonderlijke hulpprogramma's machine (clientcomputer) met connectiviteit met de doel-SQL-instantie(s), in plaats van vanaf de computer waarop SQL Server zelf wordt gehost, om mogelijke overhead te minimaliseren. Bij het verzamelen van prestatiegegevens voor SKU-aanbevelingen wordt aanbevolen dat het hulpprogramma wordt uitgevoerd met standaardoptiewaarden gedurende de periode van meerdere uren, waarbij zowel off-peak- als piekworkloads worden bedekt en onderhoudstaken zoals het opnieuw opbouwen van indexen of back-updatabases worden uitgesloten. Onderhoudstaken kunnen van invloed zijn op het CPU-, geheugen- en IO-verbruik en vervolgens hogere aanbevolen SKU-lagen aandrijven.
Prestatiegegevens verzamelen
De verzamelde gegevens bevatten beperkte informatie over de hardwareconfiguratie van uw server en geaggregeerde SQL-specifieke prestatiegegevens van DMV's (System Dynamic Management Views), zoals CPU, geheugen, opslaggebruik, IO-doorvoer en IO-latentie. De verzamelde gegevens worden lokaal op uw computer opgeslagen voor verdere aggregatie en analyse. De prestatiekenmerken van uw bronexemplaren worden geanalyseerd om SKU-aanbevelingen in te schakelen voor Azure SQL-aanbiedingen (waaronder SQL Database, SQL Managed Instance en SQL op Azure VM) die het beste bij uw workload passen, terwijl ze ook rendabel zijn.
Zoek in het DMA-installatiepad de map SQLAssessmentConsole en de SqlAssessment.exe-toepassing.
Als u het proces voor het verzamelen van gegevens wilt starten, geeft u de actie PerfDataCollection
op in de consoletoepassing, met de volgende argumenten:
-
sqlConnectionStrings
: (vereist) Aanhalingsteken-omsloten formele verbindingsreeksen voor de SQL-doelinstellingen. -
perfQueryIntervalInSec
(optionele): interval waarmee in seconden query's worden uitgevoerd op prestatiegegevens. (Standaard:30
). -
staticQueryIntervalInSec
(optioneel): Interval in seconden waarmee statische configuratiegegevens moeten worden opgevraagd en opgeslagen. (Standaard:60
). -
numberOfIterations
(optioneel): aantal iteraties van prestatiegegevensverzameling dat moet worden uitgevoerd voordat naar bestand wordt geschreven. Met standaardwaarden worden prestatiegegevens bijvoorbeeld elke 30 seconden * 20 iteraties = 10 minuten bewaard. (Standaard:20
). -
outputFolder
(optioneel): map waarnaar prestatiegegevens, rapporten en logboeken worden geschreven en waarvan ze worden gelezen. (Standaard:%LocalAppData%/Microsoft/SqlAssessmentConsole
).
Het volgende voorbeeld is een voorbeeld van een aanroep:
.\SqlAssessment.exe PerfDataCollection
--sqlConnectionStrings "Data Source=Server1;Initial Catalog=master;Integrated Security=True;" "Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
--outputFolder C:\Output
U kunt het proces voor gegevensverzameling ook aanroepen door de juiste argumenten in een JSON-configuratiebestand op te geven en het configuratiebestand door te geven aan het hulpprogramma door het uitvoerbare bestand zonder actie uit te voeren, als volgt:
.\SqlAssessment.exe --configFile C:\path\to\config.json
Het volgende voorbeeldconfiguratiebestand is gelijk aan de prestatiegegevensverzamelingsactie die eerder is beschreven:
{
"action": "PerfDataCollection",
"sqlConnectionStrings": [
"Data Source=Server1;Initial Catalog=master;Integrated Security=True;",
"Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
],
"outputFolder": "C:\\Output"
}
Voorbeeldconfiguratiebestanden voor alle acties vindt u in de map Example
onder DMA-installatiepad: GetMetadataSampleConfigFile.json, PerfDataCollectionSampleConfigFile.jsonen GetSkuRecommendationSampleConfigFile.json.
Nadat de opdracht is uitgevoerd, worden de prestatie- en configuratiegegevenspunten opgeslagen als een set van drie *_Counters.csv bestanden per doelexemplaren, elk met de server en de naam van het exemplaar. U kunt dit bestand gebruiken als invoer voor het volgende deel van het proces, dat SKU-aanbevelingen biedt voor Azure SQL Database, Azure SQL Managed Instance of SQL Server op Azure VM.
De consoletoepassing gebruiken om aanbevelingen voor de SKU op te halen
De gegevenspunten die door de vorige stap zijn verzameld, worden gebruikt als invoer voor het SKU-aanbevelingsproces.
Voor de optie voor één database biedt DMA aanbevelingen voor de azure SQL Database-laag voor één database, het rekenniveau en de aanbevolen opslagconfiguratie voor elke database in uw SQL-exemplaar.
Voor Azure SQL Managed Instance en SQL Server op Azure VM bieden de aanbevelingen ondersteuning voor een lift-and-shift-scenario. Als gevolg hiervan kan de console-app met SKU-aanbevelingen u aanbevelingen bieden voor het beheerde Exemplaar van Azure SQL of SQL Server op de Azure VM-laag, het rekenniveau en de aanbevolen opslagconfiguratie voor de set databases in uw SQL-exemplaar. U kunt ook alleen een subset van databases opgeven die moeten worden opgenomen of uitgesloten van de SKU-aanbevelingen.
GetSkuRecommendation
maakt standaard gebruik van een basislijnstrategie, waarbij de verzamelde prestatiegegevens worden gekoppeld aan de juiste Azure SQL-SKU. Dit gebeurt op basis van de opgegeven percentielwaarde die representatief is voor de werklast.
We bieden ook een elastische strategie (statistische benadering), waarmee een unieke prijs-naar-prestatiecurve wordt gegenereerd op basis van de verzamelde prestatiegegevens door de workloadpatronen te analyseren op basis van een model op basis van klanten die al naar Azure SQL zijn gemigreerd.
Als u het aanbevelingsproces voor de SKU wilt starten, geeft u de actie GetSkuRecommendation
op in de consoletoepassing, met de volgende argumenten:
-
perfQueryIntervalInSec
(optioneel): Interval waarmee prestatiegegevens in seconden zijn opgevraagd. Opmerking: de opgegeven waarde moet overeenkomen met de waarde die oorspronkelijk is gebruikt tijdens het verzamelen van prestatiegegevens. (Standaard:30
) -
targetPlatform
(optionele): doelplatform voor SKU-aanbeveling:AzureSqlDatabase
,AzureSqlManagedInstance
,AzureSqlVirtualMachine
ofAny
. Als uAny
kiest, kunnen SKU-aanbevelingen voor alle drie de doelplatforms worden geëvalueerd en wordt de beste pasvorm geretourneerd. (Standaard:Any
) -
targetSqlInstance
(optionele): naam van het SQL-exemplaar waarop de SKU-aanbeveling is gericht. (Standaard:outputFolder
wordt gescand op bestanden die zijn gemaakt door de actie PerfDataCollection en aanbevelingen worden gegeven voor elk gevonden exemplaar) -
targetPercentile
(optionele): Percentiel van gegevenspunten die moeten worden gebruikt tijdens het samenvoegen van de prestatiegegevens. Alleen gebruikt voor basislijnstrategie (niet-elastisch). Alleen gebruikt voor basislijnstrategie (niet-elastisch). (Standaardwaarde:95
) -
scalingFactor
(optionele): Schaalfactor ('comfort') die tijdens de SKU-aanbeveling wordt gebruikt. Als bijvoorbeeld wordt vastgesteld dat er een CPU-vereiste van 4 vCores is met een schaalfactor van 150%, is de werkelijke CPU-vereiste 6 vCores. (Standaard:100
) -
startTime
(optionele): UTC-begintijd van prestatiegegevenspunten die tijdens de aggregatie moeten worden overwogen, inyyyy-MM-dd HH:mm
indeling. Alleen gebruikt voor basislijnstrategie (niet-elastisch). (Standaard: alle verzamelde gegevenspunten worden overwogen) -
endTime
(optionele): UTC-eindtijd van prestatiegegevens die bij aggregatie moeten worden overwogen, inyyyy-MM-dd HH:mm
-indeling. Alleen gebruikt voor basislijnstrategie (niet-elastisch). (Standaard: alle verzamelde gegevenspunten worden in aanmerking genomen) -
elasticStrategy
(optionele): of u de elasticiteitsstrategie wilt gebruiken voor SKU-aanbevelingen op basis van het profiel van het gebruik van middelen en de kostenprestatieanalyse. Elastische strategie is momenteel beschikbaar voor Azure SQL Databases en SQL Managed Instance, nog niet beschikbaar voor SQL Server op Azure VM-doel. (Standaard:false
) -
databaseAllowList
(optionele): door ruimte gescheiden lijst met namen van databases die moeten worden toegestaan voor overweging van SKU-aanbevelingen, terwijl alle andere worden uitgesloten. Stel slechts een van de volgende of geen van beide in: databaseAllowList, databaseDenyList. (Standaard:null
) -
databaseDenyList
(optionele): door ruimte gescheiden lijst met namen van databases die moeten worden uitgesloten voor SKU-aanbeveling. Stel slechts een van de volgende of geen van beide in: databaseAllowList, databaseDenyList. (Standaard:null
) -
overwrite
(optionele): Of u bestaande SKU-aanbevelingsrapporten al dan niet wilt overschrijven. (Standaard:true
) -
displayResult
(optioneel): Geeft aan of de SKU-aanbevelingsresultaten wel of niet naar de console moeten worden afgedrukt. (Standaard:true
) -
outputFolder
(optionele): map waarin prestatiegegevens, rapporten en logboeken naar/gelezen worden. (Standaard:%LocalAppData%\Microsoft\SqlAssessment
) -
suppressPreviewFeatures
(optionele): Indien ingesteld op 'true', wordt een Azure-functie die zich in een previewfase bevindt, niet opgenomen in de aanbeveling. (Standaard:false
)
Geavanceerde instellingen voor de SKU-aanbevelingen vindt u in het Console.Settings.json
-bestand in de hoofdmap. Op dit moment bevat het de volgende aanpasbare parameters:
CommandTimeoutGroupSetting
: de tijd in seconden om te wachten tot sql-queryopdrachten zijn uitgevoerd voordat er een time-out optreedt.
-
PerfCollectionCommandTimeout
: Opdrachttime-out voor langlopende query's voor het verzamelen van prestatiegegevens (standaard: 300) -
DefaultCollectionCommandTimeout
: Timeout voor alle andere queries (standaard:120
)
ThrottlingGroupSetting
: aantal parallelle taken dat moet worden gemaakt op basis van het aantal kernen op de machine
-
ServerInstancesParallelCount
: aantal servers dat parallel beoordeeld wordt (standaardwaarde:2
) -
DatabasesParallelCount
: aantal databases dat parallel moet worden beoordeeld (standaard:4
) -
UserDefinedObjectsParallelCountPerDb
: Aantal door de gebruiker gedefinieerde objecten (opgeslagen procedures, weergaven, triggers, enzovoort) om parallel per database te evalueren (standaard:4
)
AllowTelemetry
: of het verzamelen en verzenden van anonieme functiegebruik en diagnostische gegevens naar Microsoft al dan niet is toegestaan. (Standaard: true
)
U kunt ook het aanbevelingsproces voor de SKU aanroepen door de juiste argumenten in een JSON-configuratiebestand op te geven en het configuratiebestand door te geven aan het hulpprogramma door het uitvoerbare bestand zonder actie uit te voeren, als volgt:
.\SqlAssessment.exe --configFile C:\path\to\config.json
Het volgende configuratiebestand komt overeen met de actie van SKU-aanbevelingen die eerder zijn beschreven:
{
"action": "GetSkuRecommendation",
"outputFolder": "C:\\Output",
"targetPlatform": "AzureSqlDatabase",
"targetSqlInstance": "Server1",
"targetPercentile": 95,
"scalingFactor": 100,
"startTime": "2020-01-01 00:00",
"endTime": "2022-01-01 00:00",
"perfQueryIntervalInSec": 30,
"overwrite": "true"
}
Als u SKU-aanbevelingen voor een specifiek Azure SQL-platform wilt ophalen in plaats van er automatisch een te selecteren, geeft u als volgt een waarde op voor de --targetPlatform
optie:
voorbeeld 1: SKU-aanbevelingen voor Azure SQL Database verkrijgen.
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlDatabase
voorbeeld 2: SKU-aanbevelingen ophalen met behulp van een elastische strategie voor Azure SQL Managed Instance.
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlManagedInstance
--elasticStrategy true
voorbeeld 3: SKU-aanbevelingen voor azure SQL Virtual Machine verkrijgen.
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine
voorbeeld 4: SKU-aanbevelingen voor virtuele Azure SQL-machines verkrijgen en preview-functies onderdrukken.
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine
--suppressPreviewFeatures True
De volgende schermopname is een voorbeeld van een azure SQL Database-aanbeveling:
De volgende schermopname is een voorbeeld van een aanbeveling voor azure SQL Managed Instance:
De volgende schermopname is een voorbeelduitvoer van een aanbeveling voor SQL Server op Azure VM.
De uitvoer van de SKU-aanbeveling wordt opgeslagen als een gedetailleerd rapport in JSON-indeling en een samengevat eenvoudig te lezen HTML-bestand. De uitvoer behandelt de volgende secties:
- exemplaarnaam: naam van het on-premises SQL Server-exemplaar.
- databasenaam: naam van de on-premises SQL Server-database.
- SKU-aanbeveling: de minimaal kostenefficiënte SKU-optie onder alle prestatiegeschikte SKU's die aan uw workloads kunnen voldoen.
- Aanbevelingsreden: Voor elk niveau dat wordt aanbevolen, geven we de redenen en verzamelde gegevenswaarden aan die de aanbevelingen beïnvloeden.
De uiteindelijke aanbevolen laag- en configuratiewaarden voor die laag weerspiegelen de minimale SKU die nodig is om uw query's in Azure uit te voeren met een slagingspercentage dat vergelijkbaar is met uw on-premises databases.