Dela via


Identifiera rätt Azure SQL-databas, Azure SQL Managed Instance eller SQL Server på Azure VM SKU för din lokala databas

Viktig

Data Migration Assistant (DMA) är inaktuell. Information om migreringsalternativ från SQL Server till Azure SQL finns i migreringsalternativ för SQL Server till Azure SQL.

Det kan vara komplicerat att migrera databaser till molnet. Särskilt när du försöker välja den bästa Azure SQL Database, SQL Managed Instance eller SQL Server på Azure VM-målet och SKU:n för databasen.

Database Migration Assistant (DMA) hjälper dig att hantera dessa frågor och göra databasmigreringsupplevelsen enklare genom att tillhandahålla dessa SKU-rekommendationer i ett användarvänligt utdata. Med hjälp av prestandadata kan DMA nu rekommendera en lämplig Azure SQL SKU för mål och en förklaring av rekommendationen.

Med funktionen SKU-rekommendationer kan du både samla in prestandadata från dina SQL Server-källinstanser som är värdar för dina databaser och rekommenderar minsta Azure SQL Database, Azure SQL Managed Instance eller SQL Server på Azure VM SKU baserat på de data som samlas in. Funktionen ger rekommendationer som rör prisnivå, beräkningsnivå och datastorlek. Den här funktionen är för närvarande endast tillgänglig via kommandoradsgränssnittet (CLI).

Följande är instruktioner som hjälper dig att fastställa SKU-rekommendationerna och etablera motsvarande databaser i Azure med hjälp av DMA.

Not

Om du utvärderar hela SQL Server-dataegendomen i stor skala på VMware använder du Azure Migrate- för att få rekommendationer för Azure SQL-distribution, målstorlek och månatliga uppskattningar.

Förutsättningar

  • Ladda ned och installera den senaste versionen av DMA. Om du redan har en tidigare version av verktyget öppnar du det och uppmanas att uppgradera DMA.
  • Installera den lägsta versionen .NET Core 6.0 på verktygsdatorn där konsolprogrammet för SKU-rekommendationer körs.
  • Kontrollera att det konto som används för att ansluta till din lokala SQL Server-källa har sysadmin-behörighet.

Obs

Vi rekommenderar att verktyget används från en separat verktygsdator (klientdator) med anslutning till sql-målinstanserna i stället för från den dator som är värd för SJÄLVA SQL Server, för att minimera eventuella omkostnader. När du samlar in prestandadata för SKU-rekommendationer rekommenderar vi att verktyget körs med standardalternativvärden under flera timmar, som täcker både låg- och topparbetsbelastningar och exkluderar underhållsaktiviteter som återskapande av index eller säkerhetskopieringsdatabas. Underhållsaktiviteter kan påverka processor-, minnes- och I/O-förbrukningen och därefter köra högre rekommenderade SKU-nivåer.

Samla in prestanda-data

De insamlade data innehåller begränsad information om serverns maskinvarukonfiguration och aggregerade SQL-specifika prestandadata från system-DMV:er (Dynamic Management Views), till exempel CPU, minne, lagringsanvändning, I/O-dataflöde och I/O-svarstid. De insamlade data lagras lokalt på datorn för ytterligare aggregering och analys. Prestandaegenskaperna för källinstansen analyseras för att aktivera SKU-rekommendationer för Azure SQL-erbjudanden (inklusive SQL Database, SQL Managed Instance och SQL på en virtuell Azure-dator) som passar din arbetsbelastning på bästa sätt samtidigt som den är kostnadseffektiv.

Leta upp mappen SQLAssessmentConsole och SqlAssessment.exe-programmet i DMA-installationssökvägen.

Skärmbild av SKUConsoleApplication.exe fil som visas på platsen för DMA-installationsmappen.

För att starta datainsamlingsprocessen anger du åtgärden PerfDataCollection i konsolprogrammet med följande argument:

  • sqlConnectionStrings: (krävs) Citatomslutna formella anslutningssträngar för målinstanserna för SQL.
  • perfQueryIntervalInSec (valfri): Intervall för att hämta prestandadata, i sekunder. (Standard: 30).
  • staticQueryIntervalInSec (valfri): Intervall där du kan fråga efter och spara statiska konfigurationsdata på några sekunder. (Standard: 60).
  • numberOfIterations (valfri): Antal iterationer av insamling av prestandadata som ska utföras innan filen sparas. Med standardvärden sparas till exempel prestandadata var 30:e sekund * 20 iterationer = 10 minuter. (Standard: 20).
  • outputFolder (valfri): Mapp dit prestandadata, rapporter och loggar skrivs och läses. (Standard: %LocalAppData%/Microsoft/SqlAssessmentConsole).

Följande exempel är ett exempel på anrop:

.\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

Du kan också anropa datainsamlingsprocessen genom att ange lämpliga argument i en JSON-konfigurationsfil och skicka konfigurationsfilen till verktyget genom att köra den körbara filen utan en åtgärd, enligt följande:

.\SqlAssessment.exe --configFile C:\path\to\config.json

Följande exempel på ConfigFile motsvarar åtgärden för insamling av prestandadata som beskrevs tidigare:

  {
    "action": "PerfDataCollection",
    "sqlConnectionStrings": [
    "Data Source=Server1;Initial Catalog=master;Integrated Security=True;",
    "Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
    ],
    "outputFolder": "C:\\Output"
  }

Exempelkonfigurationsfiler för alla åtgärder finns i mappen Example under DMA-installationssökvägen: GetMetadataSampleConfigFile.json, PerfDataCollectionSampleConfigFile.jsonoch GetSkuRecommendationSampleConfigFile.json.

När kommandot har körts sparas prestanda- och konfigurationsdatapunkterna som en uppsättning med tre *_Counters.csv filer per målinstans, som var och en innehåller servern och instansnamnet. Du kan använda den här filen som indata för nästa del av processen, vilket ger SKU-rekommendationer för Azure SQL Database, Azure SQL Managed Instance eller SQL Server på en virtuell Azure-dator.

Använda konsolprogrammet för att hämta SKU-rekommendationer

De datapunkter som samlades in i föregående steg används som indata för SKU-rekommendationsprocessen.

För alternativet enkel databas ger DMA rekommendationer för den enskilda Databasnivån i Azure SQL Database, beräkningsnivån och den rekommenderade lagringskonfigurationen för varje databas i SQL-instansen.

För Azure SQL Managed Instance och SQL Server på en virtuell Azure-dator stöder rekommendationerna ett lift-and-shift-scenario. Därför kan konsolappen för SKU-rekommendationer ge dig rekommendationer för Azure SQL Managed Instance eller SQL Server på Azure VM-nivån, beräkningsnivån och den rekommenderade lagringskonfigurationen för uppsättningen databaser på sql-instansen. Du kan också bara ange en delmängd av databaser som ska inkluderas eller undantas från SKU-rekommendationerna.

GetSkuRecommendation använder som standard en baslinjestrategi som mappar insamlade prestandadatavärden som är representativa för arbetsbelastningen (baserat på det angivna percentilvärdet) till rätt Azure SQL SKU. Vi erbjuder också en elastisk strategi (statistisk metod), som genererar en unik pris-till-prestanda-kurva baserat på insamlade prestandadata genom att analysera arbetsbelastningsmönstren mot en modell baserat på kunder som redan har migrerat till Azure SQL.

För att starta SKU-rekommendationsprocessen anger du åtgärden GetSkuRecommendation i konsolprogrammet med följande argument:

  • perfQueryIntervalInSec (valfri): Intervall då prestandadata efterfrågades i sekunder. Obs! Det angivna värdet måste matcha det värde som ursprungligen användes under insamlingen av prestandadata. (Standard: 30)
  • targetPlatform (valfri): Målplattform för SKU-rekommendation: antingen AzureSqlDatabase, AzureSqlManagedInstance, AzureSqlVirtualMachineeller Any. Om du väljer Any kan SKU-rekommendationer för alla tre målplattformarna utvärderas och den bästa passformen returneras. (Standard: Any)
  • targetSqlInstance (valfri): Namnet på den SQL-instans som SKU-rekommendationen riktar sig mot. (Standard: outputFolder genomsöks efter filer som skapats av åtgärden PerfDataCollection och rekommendationer ges för varje instans som hittas)
  • targetPercentile (valfri): Percentil av datapunkter som ska användas under aggregering av prestandadata. Används endast för baslinjestrategi (icke-elastisk). Används endast för baslinjestrategi (icke-elastisk). (Standard: 95)
  • scalingFactor (valfri): Skalningsfaktor ("komfort") som används under SKU-rekommendationen. Om det till exempel fastställs att det finns ett processorkrav på 4 virtuella kärnor med en skalningsfaktor på 150%är det verkliga CPU-kravet 6 virtuella kärnor. (Standard: 100)
  • startTime (valfri): UTC-starttid för prestandadatapunkter som ska beaktas under aggregering, i yyyy-MM-dd HH:mm format. Används endast för baslinjestrategi (icke-elastisk). (Standard: alla insamlade datapunkter beaktas)
  • endTime (valfri): UTC-sluttid för prestandadatapunkter som ska beaktas under aggregering, i yyyy-MM-dd HH:mm format. Används endast för baslinjestrategi (icke-elastisk). (Standard: alla insamlade datapunkter beaktas)
  • elasticStrategy (valfri): Huruvida man ska använda den elastiska strategin för SKU-rekommendationer baserat på resursanvändningsprofilering och analys av kostnadsprestanda. Elastisk strategi är för närvarande tillgänglig för Azure SQL Databases och SQL Managed Instance, men ännu inte tillgänglig för SQL Server på Azure VM. (Standard: false)
  • databaseAllowList (valfri): Utrymmesavgränsad lista med namn på databaser som ska tillåtas för SKU-rekommendationsöverväganden samtidigt som alla andra undantas. Ange endast något av följande eller inget av följande: databaseAllowList, databaseDenyList. (Standard: null)
  • databaseDenyList (valfri): Blankstegsavgränsad lista med namn på databaser som ska undantas från SKU-rekommendation. Ange endast något av följande eller inget av följande: databaseAllowList, databaseDenyList. (Standard: null)
  • overwrite (valfri): Om du vill skriva över befintliga SKU-rekommendationsrapporter eller inte. (Standard: true)
  • displayResult (valfri): Om du vill skriva ut SKU-rekommendationsresultatet till konsolen eller inte. (Standard: true)
  • outputFolder (valfri): Mapp där prestandadata, rapporter och loggar skrivs till/läss från. (Standard: %LocalAppData%\Microsoft\SqlAssessment)
  • suppressPreviewFeatures (valfri): Om värdet är sant ingår inte alla Azure-funktioner som är i en förhandsversionsperiod i rekommendationen. (Standard: false)

Avancerade inställningar för SKU-rekommendationerna finns i filen Console.Settings.json i rotkatalogen. För närvarande innehåller den följande anpassningsbara parametrar:

CommandTimeoutGroupSetting: Tiden i sekunder att vänta på att SQL-frågekommandon ska köras innan tidsgränsen nås.

  • PerfCollectionCommandTimeout: Tidsgräns för kommandon för potentiellt tidskrävande frågor som rör insamling av prestandadata (standard: 300)
  • DefaultCollectionCommandTimeout: Tidsgräns för kommandon för alla andra frågor (standard: 120)

ThrottlingGroupSetting: Antal parallella uppgifter som ska skapas baserat på antalet kärnor på datorn

  • ServerInstancesParallelCount: Antal serverinstanser som ska utvärderas parallellt (standard: 2)
  • DatabasesParallelCount: Antal databaser som ska utvärderas parallellt (standard: 4)
  • UserDefinedObjectsParallelCountPerDb: Antal användardefinierade objekt (lagrade procedurer, vyer, utlösare osv.) som ska utvärderas parallellt per databas (standard: 4)

AllowTelemetry: Om du vill tillåta insamling och överföring av anonym funktionsanvändning och diagnostikdata till Microsoft. (Standard: true)

Alternativt kan SKU-rekommendationsprocessen anropas genom att ange lämpliga argument i en JSON-konfigurationsfil och skicka konfigurationsfilen till verktyget genom att köra den körbara filen utan en åtgärd, enligt följande:

.\SqlAssessment.exe --configFile C:\path\to\config.json

Följande ConfigFile motsvarar den SKU-rekommendationsåtgärd som beskrevs tidigare:

{
    "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"
}

För att få SKU-rekommendationer för en specifik Azure SQL-plattform i stället för att välja en automatiskt anger du ett värde för alternativet --targetPlatform enligt följande:

Exempel 1: Hämta SKU-rekommendationer för Azure SQL Database.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlDatabase

Exempel 2: Få SKU-rekommendationer med elastisk strategi för Azure SQL Managed Instance.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlManagedInstance
--elasticStrategy true

Exempel 3: Få SKU-rekommendationer för azure SQL Virtual Machine.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine

Exempel 4: Få SKU-rekommendationer för Azure SQL Virtual Machine och förhindra förhandsgranskningsfunktioner.

.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine
--suppressPreviewFeatures True

Följande skärmbild är ett exempel på utdata från en Azure SQL Database-rekommendation:

Skärmbild av Azure SQL Database SKU-nivån och storleksrekommendationer som visas i SQLAssessment-konsolen.

Följande skärmbild är ett exempel på utdata från en Azure SQL Managed Instance-rekommendation:

Skärmbild av SKU-nivå och storleksrekommendationer för Azure SQL Managed Instance som visas i konsolen.

Följande skärmbild är ett exempel på utdata från en SQL Server på Azure VM-rekommendation:

Skärmbild av utdata för SQL Server på Azure VM SKU-nivå och storleksrekommendationer som visas i konsolfönstret.

Utdata från SKU-rekommendationen sparas både som en detaljerad rapport i JSON-format och en sammanfattad HTML-fil som är lättläst. Utdata omfattar följande avsnitt:

  • Instansnamn: Namnet på den lokala SQL Server-instansen.
  • Databasnamn: Namnet på den lokala SQL Server-databasen.
  • SKU-rekommendation: Det lägsta kostnadseffektiva SKU-erbjudandet bland alla prestandaberättigade SKU:er som kan hantera dina arbetsbelastningar.
  • Rekommendationsorsak: För varje nivå som rekommenderas anger vi orsakerna och de insamlade datavärdena som driver rekommendationerna.

Den slutliga rekommenderade nivån och konfigurationsvärdena för den nivån återspeglar den minsta SKU som krävs för att dina frågor ska kunna köras i Azure med en framgångsgrad som liknar dina lokala databaser.