Identifiez la bonne référence SKU Azure SQL Database, Azure SQL Managed Instance ou SQL Server sur une machine virtuelle Azure pour votre base de données locale

La migration de bases de données vers le cloud peut être compliquée. C’est en particulier vrai lorsque vous essayez de sélectionner la meilleure base de données Azure SQL, SQL Managed Instance ou SQL Server sur la cible de machine virtuelle Azure et la référence SKU pour votre base de données. L’Assistant Migration de base de données (DMA) permet de répondre à ces questions et de faciliter la migration de votre base de données en fournissant ces recommandations de référence SKU dans une sortie conviviale. L’utilisation de données de performances DMA peut désormais recommander une référence SKU Azure SQL cible appropriée et une explication de la recommandation.

La fonctionnalité recommandation de référence SKU vous permet de collecter des données de performances à partir de vos instances SQL Server sources hébergeant vos bases de données et de recommander une référence SKU minimale de base de données Azure SQL, Azure SQL Managed Instance ou SQL Server sur machine virtuelle Azure en fonction des données collectées. La fonctionnalité fournit des recommandations relatives au niveau tarifaire, au niveau de calcul et à la taille des données. Cette fonctionnalité est actuellement disponible uniquement via l’interface de ligne de commande (CLI).

Voici des instructions pour vous aider à déterminer les recommandations de référence SKU et à approvisionner des bases de données correspondantes dans Azure à l’aide de DMA.

Remarque

Si vous évaluez l’ensemble du patrimoine de données SQL Server à grande échelle sur VMware, utilisez Azure Migrate pour obtenir des recommandations de déploiement Azure SQL, le dimensionnement de la cible et des estimations mensuelles.

Prérequis

  • Téléchargez et installez la toute dernière version de DMA. Si vous avez déjà une version antérieure de l'outil, ouvrez-la. Vous serez invité à mettre à niveau DMA.
  • Installez la version minimale .NET Core 6.0 sur l'ordinateur avec les outils où l'application console de recommandation de SKU est en cours d'exécution.
  • Vérifiez que le compte utilisé pour se connecter à votre source locale SQL Server dispose de l’autorisation sysadmin.

Remarque

Il est recommandé que l'outil soit utilisé à partir d'un ordinateur avec outils (client) distinct avec connectivité à l'instance SQL cible, plutôt qu'à partir de l'ordinateur hébergeant SQL Server lui-même, afin de réduire toute surcharge potentielle. Lors de la collecte des données de performances pour les recommandations de référence SKU, il est recommandé que l'outil soit exécuté avec des valeurs d'option par défaut sur plusieurs heures, couvrant à la fois les charges de travail hors pic et les charges de travail maximales, et excluant les tâches de maintenance comme la reconstruction d'index ou la base de données de sauvegarde. Les tâches de maintenance peuvent avoir un impact sur la consommation de processeur, de mémoire et d’E/S, et ainsi générer des niveaux de référence SKU recommandés plus élevés.

Collecter des données de performances

Les données collectées incluent des informations limitées sur la configuration matérielle de votre serveur et des données de performances spécifiques à SQL agrégées à partir de vues de gestion dynamique système (DMV), comme le processeur, la mémoire, l'utilisation du stockage, le débit d'E/S et la latence d'E/S. Les données collectées sont stockées localement sur votre ordinateur pour une agrégation et une analyse ultérieures. Les caractéristiques de performances de votre instance source sont analysées pour activer les recommandations de référence SKU pour les offres Azure SQL (y compris SQL Database, SQL Managed Instance et SQL sur machine virtuelle Azure) qui conviennent le mieux à votre charge de travail tout en étant rentables.

Dans le chemin d'installation de DMA, recherchez le dossier SQLAssessmentConsole et l'application SqlAssessment.exe

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

Pour démarrer le processus de collecte de données, spécifiez l’action PerfDataCollection dans l’application console, avec les arguments suivants :

  • sqlConnectionStrings (obligatoire) : chaînes de connexion formelles placées entre guillemets pour les instances SQL cibles.
  • perfQueryIntervalInSec (facultatif) : intervalle auquel interroger les données de performances, en secondes. (Valeur par défaut : 30).
  • staticQueryIntervalInSec (facultatif) : intervalle auquel interroger et conserver les données de configuration statiques, en secondes. (Valeur par défaut : 60).
  • numberOfIterations (facultatif) : nombre d'itérations de collecte de données de performances à effectuer avant la persistance dans le fichier. Par exemple, avec les valeurs par défaut, les données de performances sont rendues persistantes toutes les 30 secondes * 20 itérations = 10 minutes. (Valeur par défaut : 20).
  • outputFolder (facultatif) : dossier dans lequel les données, rapports et journaux de performances sont écrits et à partir duquel ils sont lus. (Valeur par défaut : %LocalAppData%/Microsoft/SqlAssessmentConsole).

Voici un exemple d'invocation :

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

Vous pouvez également appeler le processus de collecte de données en fournissant les arguments appropriés dans un fichier de configuration JSON et en transmettant le fichier de configuration à l’outil en exécutant l’exécutable sans action, comme suit :

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

Voici un exemple de ConfigFile équivalent à l'action de collecte de données de performances décrite précedemment :

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

Vous trouverez des exemples de fichiers de configuration pour toutes les actions dans le dossier Example sous le chemin d’installation de DMA : GetMetadataSampleConfigFile.json, PerfDataCollectionSampleConfigFile.json et GetSkuRecommendationSampleConfigFile.json.

Une fois la commande exécutée, les points de données de performance et de configuration sont enregistrés sous la forme d’un ensemble de trois fichiers *_Counters.csv par instance cible, chacun contenant le serveur et le nom de l’instance. Vous pouvez utiliser ce fichier comme entrée pour la prochaine partie du processus, qui fournira des recommandations de référence SKU pour Azure SQL Database, Azure SQL Managed Instance ou SQL Server sur machine virtuelle Azure.

Utiliser l’application console pour obtenir des recommandations de référence SKU

Les points de données collectés par l'étape précédente sont utilisés comme entrée pour le processus de recommandation de référence SKU.

Pour l'option de base de données unique, DMA fournit des recommandations pour le niveau de base de données unique Azure SQL Database, le niveau de calcul et la configuration de stockage recommandée pour chaque base de données sur votre instance SQL.

Pour Azure SQL Managed Instance et SQL Server sur machine virtuelle Azure, les recommandations prennent en charge un scénario lift-and-shift. Par conséquent, l’application console de recommandations de référence SKU peut vous fournir des recommandations de niveau Azure SQL Managed Instance ou SQL Server sur machine virtuelle Azure, de niveau de calcul et de configuration de stockage recommandée pour l’ensemble de bases de données de votre instance SQL. Vous pouvez également spécifier uniquement un sous-ensemble de bases de données à inclure ou exclure des recommandations de référence SKU.

GetSkuRecommendation utilise par défaut une stratégie de base, qui mappe des valeurs de données de performances représentatives collectées pour la charge de travail (en fonction de la valeur centile spécifiée) à la bonne référence SKU Azure SQL. Nous offrons également une stratégie élastique (approche statistique), qui génère une courbe de rapport prix/performances unique basée sur les données de performances collectées en analysant les modèles de charge de travail par rapport à un modèle basé sur les clients qui ont déjà migré vers Azure SQL.

Pour démarrer le processus de recommandation de référence SKU, spécifiez l’action GetSkuRecommendation dans l’application console, avec les arguments suivants :

  • perfQueryIntervalInSec (facultatif) : intervalle auquel les données de performances ont été interrogées, en secondes. Remarque : La valeur fournie doit correspondre à la valeur utilisée à l’origine pendant la collecte de données de performances. (Valeur par défaut : 30)
  • targetPlatform (facultatif) : plateforme cible pour la recommandation de référence SKU : soit AzureSqlDatabase, AzureSqlManagedInstance, AzureSqlVirtualMachine, ou Any. La valeur Any permet aux recommandations de référence SKU pour les trois plateformes cibles d'être évaluées et de retourner le meilleur ajustement. (Valeur par défaut : Any)
  • targetSqlInstance (facultatif) : nom de l'instance SQL que la recommandation de référence SKU cible. (Par défaut : outputFolder est analysé pour les fichiers créés par l'action PerfDataCollection, et les recommandations sont fournies pour chaque instance trouvée)
  • targetPercentile (facultatif) : centile des points de données à utiliser lors de l'agrégation des données de performances. Utilisé uniquement pour la stratégie de base (non élastique). Utilisé uniquement pour la stratégie de base (non élastique). (Valeur par défaut : 95)
  • scalingFactor (facultatif) : facteur de mise à l'échelle (« comfort ») utilisé lors de la recommandation de référence SKU. Par exemple, si une exigence de 4 UC vCore est déterminée avec un facteur d'échelle de 150 %, l'exigence d'UC s'élève à 6 vCores. (Valeur par défaut : 100)
  • startTime (facultatif) : heure de début UTC des points de données de performances à prendre en compte pendant l'agrégation, au format yyyy-MM-dd HH:mm. Utilisé uniquement pour la stratégie de base (non élastique). (Par défaut : tous les points de données collectés sont pris en compte)
  • endTime (facultatif) : heure de fin UTC des points de données de performances à prendre en compte pendant l'agrégation, au format yyyy-MM-dd HH:mm. Utilisé uniquement pour la stratégie de base (non élastique). (Par défaut : tous les points de données collectés sont pris en compte)
  • elasticStrategy (facultatif) : indique s'il faut utiliser ou non la stratégie élastique pour les recommandations de référence SKU en fonction du profilage de l'utilisation des ressources et de l'analyse des performances des coûts. La stratégie élastique est actuellement disponible pour les bases de données Azure SQL et SQL Managed Instance, mais pas encore pour la cible SQL Server sur machine virtuelle Azure. (Valeur par défaut : false)
  • databaseAllowList (facultatif) : liste séparée par espaces des noms de bases de données à autoriser pour la recommandation de référence SKU tout en excluant tous les autres. Définissez un seul des éléments suivants ou aucun : databaseAllowList, databaseDenyList. (Valeur par défaut : null)
  • databaseDenyList (facultatif) : liste séparée par espaces des noms de bases de données à exclure pour la recommandation de référence SKU. Définissez un seul des éléments suivants ou aucun : databaseAllowList, databaseDenyList. (Valeur par défaut : null)
  • overwrite (facultatif) : indique si vous souhaitez remplacer ou non les rapports de recommandation de référence SKU existants. (Valeur par défaut : true)
  • displayResult (facultatif) : indique si vous souhaitez imprimer ou non les résultats de la recommandation de référence SKU dans la console. (Valeur par défaut : true)
  • outputFolder (facultatif) : dossier dans lequel les données, rapports et journaux de performances sont écrits et à partir duquel ils sont lus. (Valeur par défaut : %LocalAppData%\Microsoft\SqlAssessment)
  • suppressPreviewFeatures (facultatif) : si sa valeur est true, toute fonctionnalité Azure qui se trouve dans une période de préversion n'est pas incluse dans la recommandation. (Valeur par défaut : false)

Les paramètres avancés des recommandations de référence SKU sont disponibles dans le fichier Console.Settings.json dans le répertoire racine. Actuellement, il inclut les paramètres personnalisables suivants :

CommandTimeoutGroupSetting : le temps en nombre de secondes d’attente pour l’exécution de requêtes SQL avant l’expiration du délai.

  • PerfCollectionCommandTimeout : Délai d’expiration des commandes pour les requêtes potentiellement longues liées à la collecte de données de performances (par défaut : 300)
  • DefaultCollectionCommandTimeout : délai d'expiration de commandes pour toutes les autres requêtes (valeur par défaut : 120)

ThrottlingGroupSetting : nombre de tâches parallèles à créer en fonction du nombre de cœurs sur la machine

  • ServerInstancesParallelCount : nombre d'instances de serveur à évaluer en parallèle (valeur par défaut : 2)
  • DatabasesParallelCount : nombre de bases de données à évaluer en parallèle (valeur par défaut : 4)
  • UserDefinedObjectsParallelCountPerDb : nombre d'objets définis par l'utilisateur (procédures stockées, vues, déclencheurs, etc.) à évaluer en parallèle par base de données (valeur par défaut : 4)

AllowTelemetry : indique s’il faut autoriser ou non la collecte et la transmission des données d’utilisation et de diagnostic des fonctionnalités anonymes à Microsoft. (Valeur par défaut : true)

Vous pouvez également appeler le processus de recommandations de référence SKU en fournissant les arguments appropriés dans un fichier de configuration JSON et en transmettant le fichier de configuration à l’outil en exécutant l’exécutable sans action, comme suit :

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

Le ConfigFile suivant équivaut à l'action de recommandations de référence SKU décrite précedemment :

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

Pour obtenir des recommandations de référence SKU pour une plateforme Azure SQL spécifique au lieu de sélectionner une plateforme automatiquement, fournissez une valeur pour l’option --targetPlatform, comme suit :

Exemple 1 : Obtention de recommandations de référence SKU pour Azure SQL Database.

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

Exemple 2 : Obtention de recommandations de référence SKU à l’aide d’une stratégie élastique pour Azure SQL Managed Instance.

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

Exemple 3 : Obtention de recommandations de référence SKU pour une machine virtuelle Azure SQL.

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

Exemple 4 : obtention de recommandations de référence SKU pour une machine virtuelle Azure SQL machine virtuelle en excluant les fonctionnalités en préversion.

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

La capture d'écran suivante est un exemple de sortie d'une recommandation de base de données Azure SQL :

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

La capture d'écran suivante est un exemple de sortie d'une recommandation Azure SQL Managed Instance :

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

La capture d'écran suivante est un exemple de sortie d'une recommandation SQL Server sur machine virtuelle Azure :

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

La sortie de la recommandation de référence SKU est enregistrée en tant que rapport détaillé au format JSON et un fichier HTML résumé facile à lire. La sortie couvre les sections suivantes :

  • Nom de l'instance : nom de la ou des instances locales SQL Server
  • Nom de base de données : nom de la table dans les bases de données SQL Server locales
  • Recommandation de référence SKU : Offre SKU rentable minimale parmi toutes les références SKU éligibles aux performances qui peuvent soutenir vos charges de travail.
  • Raison de la recommandation : Pour chaque niveau recommandé, nous fournissons les raisons et les valeurs de données collectées qui ont mené aux recommandations.

Les valeurs de niveau et de configuration recommandées pour ce niveau reflètent la référence SKU minimale requise pour que vos requêtes s’exécutent dans Azure avec un taux de réussite similaire à vos bases de données locales.

Étapes suivantes