Ottenere consigli di Azure per eseguire la migrazione del database di SQL Server

L'estensione Migrazione SQL di Azure per Azure Data Studio consente di valutare i requisiti del database, ottenere le raccomandazioni per lo SKU di dimensioni appropriate per le risorse di Azure ed eseguire la migrazione del database DI SQL Server ad Azure.

Informazioni su come usare questa esperienza unificata, raccogliendo i dati sulle prestazioni dall'istanza di SQL Server di origine per ottenere consigli di Azure di dimensioni appropriate per le destinazioni SQL di Azure.

Panoramica

Prima di eseguire la migrazione a SQL di Azure, è possibile usare l'estensione Migrazione SQL in Azure Data Studio per generare raccomandazioni di dimensioni appropriate per database SQL di Azure, Istanza gestita di SQL di Azure e SQL Server nelle destinazioni Macchine virtuali di Azure. Lo strumento consente di raccogliere dati sulle prestazioni dall'istanza SQL di origine (in esecuzione in locale o altro cloud) e di consigliare una configurazione di calcolo e archiviazione per soddisfare le esigenze del carico di lavoro.

Il diagramma presenta il flusso di lavoro per le raccomandazioni di Azure nell'estensione Migrazione SQL di Azure per Azure Data Studio:

Diagram that shows the workflow of the SKU recommendation process.

Nota

Valutazione e funzionalità di raccomandazione di Azure nell'estensione Migrazione SQL di Azure per Azure Data Studio supporta le istanze di SQL Server di origine in esecuzione in Windows o Linux.

Prerequisiti

Per iniziare a usare le raccomandazioni di Azure per la migrazione del database di SQL Server, è necessario soddisfare i prerequisiti seguenti:

Origini e destinazioni supportate

È possibile generare raccomandazioni di Azure per le versioni di SQL Server seguenti:

  • Sono supportati SQL Server 2008 e versioni successive in Windows o Linux.
  • SQL Server in esecuzione in altri cloud può essere supportato, ma l'accuratezza dei risultati può variare

È possibile generare raccomandazioni di Azure per le destinazioni SQL di Azure seguenti:

  • Database SQL di Azure
    • Famiglie hardware: serie Standard (Gen5)
    • Livelli di servizio: Utilizzo generico, Business Critical, Hyperscale
  • Istanza gestita di SQL di Azure
    • Famiglie hardware: Serie Standard (Gen5), Serie Premium, Serie Premium ottimizzata per la memoria
    • Livelli di servizio: Utilizzo generico, Business Critical
  • SQL Server in una macchina virtuale di Azure
    • Famiglie di macchine virtuali: utilizzo generico, ottimizzato per la memoria
    • famiglie Archiviazione: SSD Premium

Raccolta dei dati sulle prestazioni

Prima di poter generare raccomandazioni, è necessario raccogliere i dati sulle prestazioni dall'istanza di SQL Server di origine. Durante questo passaggio di raccolta dati, vengono eseguite query su più viste di sistema dinamiche dell'istanza di SQL Server per acquisire le caratteristiche delle prestazioni del carico di lavoro. Lo strumento acquisisce le metriche, tra cui CPU, memoria, archiviazione e utilizzo di I/O ogni 30 secondi e salva i contatori delle prestazioni in locale nel computer come set di file CSV.

Livello di istanza

Questi dati sulle prestazioni vengono raccolti una volta per ogni istanza di SQL Server:

Dimensione prestazioni Descrizione Dmv (Dynamic Management View)
SqlInstanceCpuPercent Quantità di CPU usata dal processo di SQL Server, come percentuale sys.dm_os_ring_buffers
PhysicalMemoryInUse Footprint complessivo della memoria del processo di SQL Server sys.dm_os_process_memory
MemoryUtilizationPercentage Utilizzo della memoria di SQL Server sys.dm_os_process_memory

A livello di database

Dimensione prestazioni Descrizione Dmv (Dynamic Management View)
DatabaseCpuPercent Percentuale totale di CPU usata da un database sys.dm_exec_query_stats
CachedSizeInMb Dimensioni totali in megabyte di cache usate da un database sys.dm_os_buffer_descriptors

Livello file

Dimensione prestazioni Descrizione Dmv (Dynamic Management View)
ReadIOInMb Numero totale di megabyte letti da questo file sys.dm_io_virtual_file_stats
WriteIOInMb Numero totale di megabyte scritti in questo file sys.dm_io_virtual_file_stats
NumOfReads Numero totale di letture rilasciate in questo file sys.dm_io_virtual_file_stats
NumOfWrites Numero totale di scritture eseguite in questo file sys.dm_io_virtual_file_stats
ReadLatency Latenza di lettura di I/O in questo file sys.dm_io_virtual_file_stats
WriteLatency Latenza di scrittura di I/O in questo file sys.dm_io_virtual_file_stats

Prima di generare una raccomandazione, è necessario almeno 10 minuti di raccolta dei dati, ma per valutare con precisione il carico di lavoro, è consigliabile eseguire la raccolta dati per una durata sufficientemente lunga per acquisire sia l'utilizzo on-peak che off-peak.

Per avviare il processo di raccolta dati, iniziare connettendosi all'istanza SQL di origine in Azure Data Studio, quindi avviare la Migrazione guidata SQL. Nel passaggio 2 selezionare "Ottieni raccomandazione di Azure". Selezionare "Raccogli dati sulle prestazioni ora" e selezionare una cartella nel computer in cui verranno salvati i dati raccolti.

Screenshot that shows the wizard pane to collect performance data for SKU recommendations.

Importante

Il processo di raccolta dati viene eseguito per 10 minuti per generare la prima raccomandazione. È importante avviare il processo di raccolta dati quando il carico di lavoro del database attivo riflette l'utilizzo simile agli scenari di produzione.

Dopo aver generato la prima raccomandazione, è possibile continuare a eseguire il processo di raccolta dati per perfezionare le raccomandazioni. Questa opzione è particolarmente utile se i modelli di utilizzo variano nel tempo.

Il processo di raccolta dati inizia dopo aver selezionato Avvia. Ogni 10 minuti, i punti dati raccolti vengono aggregati e il numero massimo, medio e varianza di ogni contatore verrà scritto su disco in un set di tre file CSV.

In genere viene visualizzato un set di file CSV con i suffissi seguenti nella cartella selezionata:

  • SQLServerInstance_CommonDbLevel_Counters.csv: contiene dati di configurazione statici relativi al layout e ai metadati del file di database.
  • SQLServerInstance_CommonInstanceLevel_Counters.csv: contiene dati statici sulla configurazione hardware dell'istanza del server.
  • SQLServerInstance_PerformanceAggregated_Counters.csv: contiene dati aggregati sulle prestazioni aggiornati di frequente.

Durante questo periodo, lasciare aperto Azure Data Studio, anche se è possibile continuare con altre operazioni. In qualsiasi momento, è possibile arrestare il processo di raccolta dati restituendo a questa pagina e selezionando Arresta raccolta dati.

Generazione di raccomandazioni di dimensioni corrette

Se sono già stati raccolti dati sulle prestazioni da una sessione precedente o usando uno strumento diverso, ad esempio Database Migration Assistant, è possibile importare eventuali dati sulle prestazioni esistenti selezionando l'opzione Ho già i dati sulle prestazioni. Passare alla cartella in cui vengono salvati i dati sulle prestazioni (tre file CSV) e selezionare Avvia per avviare il processo di raccomandazione.

Screenshot that shows the pane to import performance data for a SKU recommendation.

Nota

Il passaggio uno della migrazione guidata SQL richiede di selezionare un set di database da valutare e questi sono gli unici database che verranno presi in considerazione durante il processo di raccomandazione.

Tuttavia, il processo di raccolta dei dati sulle prestazioni raccoglie i contatori delle prestazioni per tutti i database dall'istanza di SQL Server di origine, non solo quelli selezionati.

Ciò significa che i dati sulle prestazioni raccolti in precedenza possono essere usati per rigenerare ripetutamente le raccomandazioni per un subset diverso di database specificando un elenco diverso al passaggio 1.

Parametri di raccomandazione

Esistono più impostazioni configurabili che potrebbero influire sulle raccomandazioni.

Screenshot that shows the recommendation parameters section.

Selezionare l'opzione Modifica parametri per regolare questi parametri in base alle proprie esigenze.

Screenshot that shows the different recommendation parameters.

  • Fattore di scala:
    Questa opzione consente di fornire un buffer da applicare a ogni dimensione delle prestazioni. Questa opzione consente di risolvere problemi come l'utilizzo stagionale, la cronologia delle prestazioni breve e probabilmente l'aumento dell'utilizzo futuro. Ad esempio, se si determina che un requisito di CPU a quattro vCore ha un fattore di scala pari al 150%, il requisito della CPU reale è di sei vCore.

    Il volume del fattore di scala predefinito è 100%.

  • Percentuale di utilizzo:
    Il percentile dei punti dati da usare come dati sulle prestazioni viene aggregato.

    Il valore predefinito è il 95° percentile.

  • Abilitare le funzionalità di anteprima:
    Questa opzione consente di consigliare le configurazioni che potrebbero non essere disponibili a livello generale per tutti gli utenti in tutte le aree.

    Per impostazione predefinita, questa opzione è disabilitata.

  • Abilitare la raccomandazione elastica:

    Questa opzione usa un modello di raccomandazione alternativo che usa la profilatura personalizzata delle prestazioni dei prezzi rispetto ai clienti esistenti nel cloud.

    Per impostazione predefinita, questa opzione è disabilitata.

Importante

Il processo di raccolta dati termina se si chiude Azure Data Studio. I dati raccolti fino a quel punto vengono salvati nella cartella.

Se si chiude Azure Data Studio mentre è in corso la raccolta dati, usare una delle opzioni seguenti per riavviare la raccolta dati:

  • Riaprire Azure Data Studio e importare i file di dati salvati nella cartella locale. Generare quindi una raccomandazione dai dati raccolti.
  • Riaprire Azure Data Studio e avviare di nuovo la raccolta dati usando la migrazione guidata.

Autorizzazioni minime

Per eseguire query sulle viste di sistema necessarie per la raccolta dei dati sulle prestazioni, sono necessarie autorizzazioni specifiche per l'account di accesso di SQL Server usato per questa attività. È possibile creare un utente con privilegi minimi per la raccolta dei dati di valutazione e prestazioni usando lo script seguente:

-- Create a login to run the assessment
USE master;
GO

CREATE LOGIN [assessment] WITH PASSWORD = '<STRONG PASSWORD>';

-- Create user in every database other than TempDB and model and provide minimal read-only permissions
EXECUTE sp_MSforeachdb '
   USE [?];
   IF (''?'' NOT IN (''TempDB'',''model''))  
   BEGIN TRY
      CREATE USER [assessment] FOR LOGIN [assessment]
   END TRY
   BEGIN CATCH
      PRINT ERROR_MESSAGE()
   END CATCH'
   
EXECUTE sp_MSforeachdb '
   USE [?];
   IF (''?'' NOT IN (''tempdb'',''model''))  
   BEGIN TRY
      GRANT SELECT ON sys.sql_expression_dependencies TO [assessment]
   END TRY
   BEGIN CATCH
      PRINT ERROR_MESSAGE()
   END CATCH'
   
EXECUTE sp_MSforeachdb '
   USE [?];
   IF (''?'' NOT IN (''tempdb'',''model''))  
   BEGIN TRY
      GRANT VIEW DATABASE STATE TO [assessment]
   END TRY
   BEGIN CATCH
      PRINT ERROR_MESSAGE()
   END CATCH'

-- Provide server level read-only permissions
GRANT SELECT ON sys.sql_expression_dependencies TO [assessment];
GRANT SELECT ON sys.sql_expression_dependencies TO [assessment];
GRANT EXECUTE ON OBJECT::sys.xp_regenumkeys TO [assessment];
GRANT VIEW DATABASE STATE TO assessment;
GRANT VIEW SERVER STATE TO assessment;
GRANT VIEW ANY DEFINITION TO assessment;

-- Provide msdb specific permissions
USE msdb;
GO

GRANT EXECUTE ON [msdb].[dbo].[agent_datetime] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysjobsteps] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[syssubsystems] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysjobhistory] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[syscategories] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysjobs] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmaintplan_plans] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[syscollector_collection_sets] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmail_profile] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmail_profileaccount] TO [assessment];
GRANT SELECT ON [msdb].[dbo].[sysmail_account] TO [assessment];

-- USE master;
-- GO
-- EXECUTE sp_MSforeachdb 'USE [?]; BEGIN TRY DROP USER [assessment] END TRY BEGIN CATCH SELECT ERROR_MESSAGE() END CATCH';
-- DROP LOGIN [assessment];

Scenari e limitazioni non supportati

  • Azure Consigli non include stime dei prezzi, in quanto questa situazione può variare a seconda dell'area, della valuta e degli sconti, ad esempio il Vantaggio Azure Hybrid. Per ottenere stime dei prezzi, usare il Calcolatore prezzi di Azure o creare una valutazione SQL in Azure Migrate.
  • Consigli per database SQL di Azure con il modello di acquisto basato su DTU non sono supportati.
  • Attualmente, le raccomandazioni di Azure per database SQL di Azure livello di calcolo serverless e i pool elastici non sono supportati.

Risoluzione dei problemi

  • Nessuna raccomandazione generata
    • Se non sono state generate raccomandazioni, questa situazione potrebbe indicare che non sono state identificate configurazioni che possono soddisfare completamente i requisiti di prestazioni dell'istanza di origine. Per verificare i motivi per cui una determinata dimensione, un livello di servizio o una famiglia hardware non è stata qualificata:
      • Accedere ai log da Azure Data Studio passando alla Guida > Per visualizzare tutti i > comandi Aprire la cartella dei log dell'estensione
      • Passare a Microsoft.mssql > SqlAssessmentLogs > aprire SkuRecommendationEvent.log
      • Il log contiene una traccia di ogni potenziale configurazione che è stata valutata e il motivo per cui è stata o non è stata considerata una configurazione idonea: Screenshot that shows SKU recommendations log.
    • Provare a rigenerare la raccomandazione con la raccomandazione elastica abilitata. Questa opzione usa un modello di raccomandazione alternativo, che usa la profilatura personalizzata delle prestazioni dei prezzi rispetto ai clienti esistenti nel cloud.

Passaggi successivi