Identificare lo SKU corretto del database SQL di Azure, dell'Istanza gestita di SQL di Azure o dell'SQL Server sulla macchina virtuale di Azure per il database locale.

La migrazione dei database nel cloud può essere complicata, in particolare quando si tenta di selezionare la destinazione e lo SKU migliori del database di Azure SQL, dell'Istanza gestita di SQL o dell'SQL Server nella macchina virtuale di Azure per il database. Database Migration Assistant (DMA) consente di risolvere queste domande e semplificare l'esperienza di migrazione del database fornendo queste raccomandazioni per gli SKU in un output intuitivo. L'uso dei dati sulle prestazioni DMA può ora consigliare uno SKU di Azure SQL di destinazione appropriato e una spiegazione per la raccomandazione.

La funzionalità delle raccomandazioni degli SKU consente di raccogliere dati sulle prestazioni dalle istanze di SQL Server di origine che ospitano i database e di consigliare lo SKU minimo del database SQL di Azure, dell'Istanza gestita di SQL di Azure o dell'SQL Server nella macchina virtuale di Azure in base ai dati raccolti. La funzionalità fornisce raccomandazioni relative al piano tariffario, al livello di calcolo e alle dimensioni dei dati. Questa funzionalità è attualmente disponibile solo tramite l'interfaccia della riga di comando (CLI).

Di seguito sono riportate le istruzioni per determinare le raccomandazioni relative allo SKU e il provisioning dei database corrispondenti in Azure tramite DMA.

Nota

Se si valuta l'intero patrimonio di dati SQL Server su larga scala in VMWare, usare Azure Migrate per ottenere raccomandazioni per la distribuzione di Azure SQL, il ridimensionamento delle entità di destinazione e le stime mensili.

Prerequisiti

  • Scaricare e installare la versione più recente di DMA. Se si dispone già di una versione precedente dello strumento, aprirla e verrà richiesto di aggiornare DMA.
  • Installare la versione minima di .NET Core 6.0 nel computer degli strumenti in cui è in esecuzione l'applicazione della console di raccomandazioni dello SKU.
  • Verificare che l'account usato per connettersi all'origine locale SQL Server disponga dell'autorizzazione sysadmin.

Nota

È consigliabile usare lo strumento da un computer di strumenti (client) separato con connettività alle istanze SQL di destinazione anziché dal computer che ospita SQL Server stesso, per ridurre al minimo il potenziale sovraccarico. Quando si raccolgono dati sulle prestazioni per le raccomandazioni relative allo SKU, è consigliabile eseguire lo strumento con valori di opzione predefiniti nell'arco di diverse ore, coprendo sia carichi di lavoro fuori picco che nel picco ed escludendo attività di manutenzione come la ricompilazione dell'indice o il database di backup. Le attività di manutenzione possono influire sul consumo di CPU, memoria e I/O e successivamente sui livelli di SKU consigliati più elevati.

Raccogliere i dati sulle prestazioni

I dati raccolti includono informazioni limitate sulla configurazione hardware del server e dati aggregati sulle prestazioni specifiche di SQL da DMV di sistema, ad esempio CPU, memoria, utilizzo dell'archiviazione, velocità effettiva di I/O e latenza di I/O. I dati raccolti vengono archiviati localmente nel computer per ulteriori aggregazioni e analisi. Le caratteristiche delle prestazioni dell'istanza di origine vengono analizzate per abilitare le raccomandazioni relative agli SKU per le offerte di Azure SQL (tra cui database SQL, Istanza gestita di SQL e SQL nella macchina virtuale di Azure) più adatte al carico di lavoro, garantendo al tempo stesso costi contenuti.

Nel percorso di installazione di DMA individuare la cartella SQLAssessmentConsole e l'applicazione SqlAssessment.exe

Screenshot of SKUConsoleApplication.exe file shown in DMA installation folder location.

Per avviare il processo di raccolta dati, specificare l'azione PerfDataCollection nell'applicazione console, con gli argomenti seguenti:

  • sqlConnectionStrings: (obbligatorio): le stringhe di connessione formali racchiuse tra virgolette per le istanze SQL di destinazione.
  • perfQueryIntervalInSec (facoltativo): l'intervallo in cui eseguire query sui dati sulle prestazioni, in secondi. Impostazione predefinita: 30.
  • staticQueryIntervalInSec (facoltativo): l'intervallo in secondi in cui eseguire query e rendere persistenti i dati di configurazione statici. Impostazione predefinita: 60.
  • numberOfIterations (facoltativo): il numero di iterazioni della raccolta di dati sulle prestazioni da eseguire prima di eseguire il salvataggio permanente in un file. Ad esempio, con i valori predefiniti, i dati sulle prestazioni vengono salvati in modo permanente ogni 30 secondi * 20 iterazioni = 10 minuti. Impostazione predefinita: 20.
  • outputFolder (facoltativo): la cartella da cui verranno scritti/letti i dati sulle prestazioni, i report e i log. Impostazione predefinita: %LocalAppData%/Microsoft/SqlAssessmentConsole.

Quanto segue è un richiamo di esempio:

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

In alternativa, il processo di raccolta dati può essere richiamato fornendo gli argomenti appropriati in un file di configurazione JSON e passando il file di configurazione allo strumento eseguendo l'eseguibile senza un'azione, come indicato di seguito:

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

Di seguito è riportato un esempio di ConfigFile equivalente all'azione di raccolta dei dati sulle prestazioni descritta in precedenza:

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

I file di configurazione di esempio per tutte le azioni sono disponibili nella cartella Example nel percorso di installazione di DMA: GetMetadataSampleConfigFile.json, PerfDataCollectionSampleConfigFile.json e GetSkuRecommendationSampleConfigFile.json.

Dopo l'esecuzione del comando, i punti dati di configurazione e prestazioni vengono salvati come set di tre file *_Counters.csv per ogni istanza di destinazione, ognuno contenente il server e il nome dell'istanza. È possibile usare questo file come input per la parte successiva del processo, che fornirà consigli sullo SKU per il database SQL di Azure, l'Istanza gestita di SQL di Azure o l'SQL Server nella macchina virtuale di Azure.

Usare l'applicazione console per ottenere consigli sullo SKU

I punti dati raccolti dal passaggio precedente verranno usati come input per il processo di raccomandazione dello SKU.

Per l'opzione database singolo, DMA fornirà raccomandazioni per il livello di database singolo, il livello di calcolo e la configurazione di archiviazione consigliata del database SQL di Azure per ogni database nell'istanza di SQL.

Per Istanza gestita di SQL di Azure e SQL Server nella macchina virtuale di Azure, i consigli supportano uno scenario lift-and-shift. Di conseguenza, l'app console per le raccomandazioni per gli SKU può fornire consigli per il livello, il livello di calcolo e la configurazione di archiviazione consigliata per l'Istanza gestita di SQL di Azure o l'SQL Server nel livello di macchina virtuale di Azure per il set di database nell'istanza di SQL. È anche possibile specificare solo un subset di database da includere o escludere dalle raccomandazioni relative allo SKU.

GetSkuRecommendationusa per impostazione predefinita una strategia di base, che esegue il mapping dei valori dei dati delle prestazioni raccolti rappresentativi per il carico di lavoro (in base al valore percentile specificato) allo SKU dell'Azure SQL corretto. È disponibile anche una strategia elastica (approccio statistico), che genera una curva di prezzo a prestazioni univoca in base ai dati sulle prestazioni raccolti analizzando i modelli di carico di lavoro in base a un modello basato sui clienti che hanno già eseguito la migrazione a Azure SQL.

Per avviare il processo di raccomandazione relativa allo SKU, specificare l'azione GetSkuRecommendation nell'applicazione console, con gli argomenti seguenti:

  • perfQueryIntervalInSec (facoltativo): l'intervallo in cui sono stati sottoposti a query i dati sulle prestazioni, in secondi. Nota: il valore specificato deve corrispondere al valore usato in origine durante la raccolta dei dati sulle prestazioni. Impostazione predefinita: 30
  • targetPlatform (facoltativo): la piattaforma di destinazione per la raccomandazione dello SKU: AzureSqlDatabase, AzureSqlManagedInstance, AzureSqlVirtualMachine o Any. Scegliendo Any è possibile valutare le raccomandazioni relative allo SKU per tutte e tre le piattaforme di destinazione e viene restituita la scelta migliore. Impostazione predefinita: Any
  • targetSqlInstance (facoltativo): il nome dell'istanza di SQL destinata alla raccomandazione dello SKU. (Impostazione predefinita: outputFolder viene analizzato per i file creati dall'azione PerfDataCollection e vengono fornite le la raccomandazioni per ogni istanza trovata)
  • targetPercentile (facoltativo): il percentile dei punti dati da usare durante l'aggregazione dei dati sulle prestazioni. Usato solo per la strategia per la baseline (non elastica). Usato solo per la strategia per la baseline (non elastica). Impostazione predefinita: 95
  • scalingFactor (facoltativo): il fattore di ridimensionamento ('comfort') usato durante la raccomandazione dello SKU. Ad esempio, se viene determinato che esiste un requisito di CPU da 4 vCore con un fattore di ridimensionamento pari al 150%, il requisito effettivo della CPU sarà 6 vCore. Impostazione predefinita: 100
  • startTime (facoltativo): l'ora di inizio UTC dei punti dati delle prestazioni da considerare durante l'aggregazione, in formato yyyy-MM-dd HH:mm. Usato solo per la strategia per la baseline (non elastica). (Impostazione predefinita: verranno considerati tutti i punti dati raccolti)
  • endTime (facoltativo): l'ora di fine UTC dei punti dati delle prestazioni da considerare durante l'aggregazione, in formato yyyy-MM-dd HH:mm. Usato solo per la strategia per la baseline (non elastica). (Impostazione predefinita: verranno considerati tutti i punti dati raccolti)
  • elasticStrategy (facoltativo): indica se usare o meno la strategia elastica per le raccomandazioni dello SKU in base alla profilatura dell'utilizzo delle risorse e all'analisi delle prestazioni dei costi. La strategia elastica è attualmente disponibile per Database SQL di Azure e Istanza gestita di SQL. Non è ancora disponibile per SQL Server nella destinazione della macchina virtuale di Azure. Impostazione predefinita: false
  • databaseAllowList (facoltativo): l'elenco delimitato da spazi di nomi di database consentiti per la considerazione della raccomandazione dello SKU, escludendo tutti gli altri. Impostare solo uno dei valori seguenti: databaseAllowList, databaseDenyList. Impostazione predefinita: null
  • databaseDenyList (facoltativo): l'elenco di nomi di database delimitato da spazi da escludere per la raccomandazione dello SKU. Impostare solo uno dei valori seguenti: databaseAllowList, databaseDenyList. Impostazione predefinita: null
  • overwrite (facoltativo): indica se sovrascrivere o meno eventuali report delle raccomandazioni dello SKU esistenti. Impostazione predefinita: true
  • displayResult (facoltativo): indica se stampare o meno i risultati della raccomandazione dello SKU nella console. Impostazione predefinita: true
  • outputFolder (facoltativo): la cartella in cui verranno scritti/letti i dati sulle prestazioni, i report e i log. Impostazione predefinita: %LocalAppData%\Microsoft\SqlAssessment
  • suppressPreviewFeatures (facoltativo): se impostato su true, qualsiasi funzionalità di Azure inclusa in un periodo di anteprima non verrà inclusa nella raccomandazione. Impostazione predefinita: false

Le impostazioni avanzate per le raccomandazioni per lo SKU sono disponibili nel file Console.Settings.json nella directory radice. Attualmente include i parametri personalizzabili seguenti:

CommandTimeoutGroupSetting: l'intervallo di attesa in secondi relativo all'esecuzione di una query SQL prima che si verifichi il timeout.

  • PerfCollectionCommandTimeout: timeout dei comandi per query potenzialmente a esecuzione prolungata correlate alla raccolta dei dati sulle prestazioni (impostazione predefinita: 300)
  • DefaultCollectionCommandTimeout: il timeout dei comandi per tutte le altre query (impostazione predefinita: 120)

ThrottlingGroupSetting: numero di attività parallele da creare in base al numero di core nel computer

  • ServerInstancesParallelCount: il numero di istanze del server da valutare in parallelo (impostazione predefinita: 2)
  • DatabasesParallelCount: il numero di database da valutare in parallelo (impostazione predefinita: 4)
  • UserDefinedObjectsParallelCountPerDb: il numero di oggetti definiti dall'utente (stored procedure, visualizzazioni, trigger e così via) da valutare in parallelo per database (impostazione predefinita: 4)

AllowTelemetry: indica se consentire o meno la raccolta e la trasmissione di dati di funzionalità anonimi e dati di diagnostica a Microsoft. Impostazione predefinita: true

In alternativa, il processo di raccomandazione dello SKU può essere richiamato fornendo gli argomenti appropriati in un file di configurazione JSON e passando il file di configurazione allo strumento eseguendo l'eseguibile senza un'azione, come indicato di seguito:

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

Il file di configurazione seguente equivale all'azione delle raccomandazioni dello SKU descritta in precedenza:

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

Per ottenere raccomandazioni sullo SKU per una piattaforma Azure SQL specifica anziché selezionarne una automaticamente, specificare un valore per l'opzione--targetPlatform, come indicato di seguito:

Esempio 1: recupero di raccomandazioni sullo SKU per il database SQL di Azure.

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

Esempio 2: recupero di raccomandazioni sullo SKU usando la strategia elastica per Istanza gestita di SQL di Azure.

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

Esempio 3: recupero di raccomandazioni sullo SKU per la macchina virtuale SQL di Azure.

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

Esempio 4: Recupero delle raccomandazioni dello SKU per la macchina virtuale Azure SQL ed eliminazione delle funzionalità di anteprima.

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

Di seguito è riportato uno screenshot dell'output di esempio di un suggerimento del database SQL di Azure:

Screenshot of Azure SQL Database SKU tier and sizing recommendations shown in SQLAssessment console.

Di seguito è riportato uno screenshot dell'output di esempio di una raccomandazione dell'istanza gestita di SQL di Azure:

Screenshot of Azure SQL Managed Instance SKU tier and size recommendations shown in console.

Di seguito è riportato uno screenshot dell'output di esempio di un SQL Server nella raccomandazione della macchina virtuale di Azure:

Screenshot of SQL Server on Azure VM SKU tier and size recommendations output shown in console.

L'output della raccomandazione SKU viene salvato sia come report dettagliato in formato JSON che come file HTML riepilogato. L'output illustra le sezioni seguenti:

  • Nome istanza: il nome dell'istanza di SQL Server locale.
  • Nome database: il nome del database di SQL Server locale.
  • Raccomandazione SKU: l'offerta di SKU minima efficiente per i costi tra tutte le SKU idonee alle prestazioni che possono supportare i carichi di lavoro.
  • Motivo della raccomandazione: per ogni livello consigliato, vengono forniti i motivi e i valori dei dati raccolti che guidano le raccomandazioni.

I valori di livello e configurazione consigliati finali per tale livello riflettono lo SKU minimo necessario per l'esecuzione delle query in Azure con una frequenza di esito positivo simile ai database locali.

Passaggi successivi