Определение правильного База данных SQL Azure, Управляемый экземпляр SQL Azure или SQL Server на SKU виртуальной машины Azure для локальной базы данных

Перенос баз данных в облако может быть сложным. Особенно при попытке выбрать лучшие База данных SQL Azure, Управляемый экземпляр SQL или SQL Server на целевом объекте виртуальной машины Azure и SKU для базы данных. База данных Помощник по миграции (DMA) помогает решить эти вопросы и упростить миграцию базы данных, предоставив эти рекомендации по SKU в понятных выходных данных. Использование DMA для производительности теперь может рекомендовать соответствующий целевой номер SKU SQL Azure и объяснение рекомендации.

Функция рекомендаций SKU позволяет собирать данные о производительности из исходных экземпляров SQL Server, в котором размещены базы данных, и рекомендует минимальные База данных SQL Azure, Управляемый экземпляр SQL Azure или SQL Server на номере SKU виртуальной машины Azure на основе собранных данных. Эта функция предоставляет рекомендации, связанные с ценовой категорией, уровнем вычислений и размером данных. Эта функция в настоящее время доступна только через интерфейс командной строки (CLI).

Ниже приведены инструкции по определению рекомендаций SKU и подготовке соответствующих баз данных в Azure с помощью DMA.

Примечание.

Если вы оцениваете весь объем данных SQL Server в масштабе VMware, используйте службу "Миграция Azure" для получения рекомендаций по развертыванию SQL Azure, целевого размера и ежемесячных оценок.

Необходимые компоненты

  • Скачайте и установите последнюю версию DMA. Если у вас уже есть более ранняя версия средства, откройте его и вам будет предложено обновить DMA.
  • Установите минимальную версию .NET Core 6.0 на компьютере с инструментами, где запущено консольное приложение SKU рекомендаций.
  • Убедитесь, что учетная запись, используемая для подключения к локальному источнику SQL Server, имеет разрешение sysadmin.

Примечание.

Рекомендуется использовать средство из отдельного компьютера (клиента) с подключением к целевым экземплярам SQL, а не с компьютера, на котором размещен SQL Server, чтобы свести к минимуму возможные издержки. При сборе данных о производительности для рекомендаций SKU рекомендуется запускать средство со значениями параметров по умолчанию в течение нескольких часов, охватывая как пиковые, так и пиковые рабочие нагрузки и исключая задачи обслуживания, такие как перестроение индекса или база данных резервного копирования. Задачи обслуживания могут повлиять на потребление ЦП, памяти и операций ввода-вывода, а затем повысить рекомендуемые уровни SKU.

Сбор данных производительности

Собранные данные включают ограниченные сведения о конфигурации оборудования сервера и агрегированные данные о производительности SQL из системных динамических административных представлений (DMV), таких как ЦП, память, использование хранилища, пропускная способность ввода-вывода и задержка операций ввода-вывода. Собранные данные хранятся локально на компьютере для дальнейшего агрегирования и анализа. Характеристики производительности исходного экземпляра анализируются для включения рекомендаций SKU для предложений SQL Azure (включая База данных SQL, Управляемый экземпляр SQL и SQL на виртуальной машине Azure), которые лучше всего подходят для вашей рабочей нагрузки, а также являются экономически эффективными.

В пути установки DMA найдите папку SQLAssessmentConsole и приложение SqlAssessment.exe.

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

Чтобы запустить процесс сбора данных, укажите PerfDataCollection действие в консольном приложении со следующими аргументами:

  • sqlConnectionStrings: (обязательно) Вложенные в кавычки формальные строка подключения для целевых экземпляров SQL.
  • perfQueryIntervalInSec (необязательно): интервал, с которого запрашивать данные о производительности в секундах. (по умолчанию: 30).
  • staticQueryIntervalInSec (необязательно): интервал, в течение которого запрашивать и сохранять статические данные конфигурации в секундах. (по умолчанию: 60).
  • numberOfIterations (необязательно): количество итерации сбора данных о производительности перед сохранением в файле. Например, при использовании значений по умолчанию данные о производительности сохраняются каждые 30 секунд * 20 итераций = 10 минут. (по умолчанию: 20).
  • outputFolder (необязательно): папка, из которой записываются данные о производительности, отчеты и журналы. (по умолчанию: %LocalAppData%/Microsoft/SqlAssessmentConsole).

Ниже приведен пример вызова.

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

Кроме того, процесс сбора данных можно вызвать, указав соответствующие аргументы в файле конфигурации JSON и передав файл конфигурации средству, выполнив исполняемый файл без действия, как показано ниже.

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

Следующий пример ConfigFile эквивалентен действиям сбора данных производительности, описанным ранее:

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

Примеры файлов конфигурации для всех действий можно найти в папке по Example пути установки DMA: GetMetadataSampleConfigFile.json, PerfDataCollectionSampleConfigFile.json и GetSkuRecommendationSampleConfigFile.json.

После выполнения команды точки данных производительности и конфигурации сохраняются в виде набора из трех *_Counters.csv-файлов на целевой экземпляр, каждый из которых содержит сервер и имя экземпляра. Этот файл можно использовать в качестве входных данных для следующей части процесса, которая предоставит рекомендации SKU для База данных SQL Azure, Управляемый экземпляр SQL Azure или SQL Server на виртуальной машине Azure.

Использование консольного приложения для получения рекомендаций SKU

Точки данных, собранные на предыдущем шаге, используются в качестве входных данных для процесса рекомендаций SKU.

Для параметра отдельной базы данных DMA предоставляет рекомендации для уровня База данных SQL Azure одной базы данных, уровня вычислений и рекомендуемой конфигурации хранилища для каждой базы данных в экземпляре SQL.

Для Управляемый экземпляр SQL Azure и SQL Server на виртуальной машине Azure рекомендации поддерживают сценарий лифта и смены. В результате консольное приложение SKU рекомендаций SKU может предоставить вам рекомендации по Управляемый экземпляр SQL Azure или SQL Server на уровне виртуальных машин Azure, уровне вычислений и рекомендуемой конфигурации хранилища для набора баз данных в экземпляре SQL. Кроме того, можно указать только подмножество баз данных для включения или исключения из рекомендаций SKU.

GetSkuRecommendation использует по умолчанию базовую стратегию, которая сопоставляет собранные значения данных производительности для рабочей нагрузки (на основе указанного значения процентиля) с правильным номером SKU SQL Azure. Мы также предлагаем эластичную стратегию (статистический подход), которая создает уникальную кривую цен на производительность на основе собранных данных о производительности путем анализа шаблонов рабочих нагрузок на основе модели, которая уже перенесена в SQL Azure.

Чтобы запустить процесс рекомендации SKU, укажите GetSkuRecommendation действие в консольном приложении со следующими аргументами:

  • perfQueryIntervalInSec (необязательно): интервал, в течение которого запрашивались данные о производительности в секундах. Примечание. Указанное значение должно соответствовать значению, которое изначально использовалось во время сбора данных о производительности. (Значение по умолчанию: 30.)
  • targetPlatform(необязательно): целевая платформа для рекомендации SKU: AzureSqlDatabaseлибо , AzureSqlManagedInstanceлибо AzureSqlVirtualMachineAny. Выбор Any позволяет оценивать рекомендации SKU для всех трех целевых платформ, и возвращается оптимальное соответствие. (Значение по умолчанию: Any.)
  • targetSqlInstance (необязательно): имя экземпляра SQL, предназначенного для рекомендаций SKU. (По умолчанию outputFolder проверяется наличие файлов, созданных действием PerfDataCollection, а рекомендации предоставляются для каждого найденного экземпляра).
  • targetPercentile (необязательно): процентиль точек данных, используемых во время агрегирования данных производительности. Используется только для базовой (не эластичной) стратегии). Используется только для базовой (не эластичной) стратегии. (Значение по умолчанию: 95.)
  • scalingFactor (необязательно): коэффициент масштабирования ('comfort'), используемый во время рекомендации SKU. Например, если определено, что требуется 4-виртуальный ЦП с коэффициентом масштабирования 150%, то истинное требование ЦП составляет 6 виртуальных ядер. (Значение по умолчанию: 100.)
  • startTime (необязательно): время начала в формате UTC точек данных о производительности, которые следует учитывать во время агрегирования yyyy-MM-dd HH:mm . Используется только для базовой (не эластичной) стратегии. (По умолчанию учитываются все собранные точки данных)
  • endTime (необязательно): время окончания utc точек данных производительности, которые следует учитывать во время агрегирования в yyyy-MM-dd HH:mm формате. Используется только для базовой (не эластичной) стратегии. (По умолчанию учитываются все собранные точки данных)
  • elasticStrategy (необязательно): следует ли использовать эластичную стратегию для рекомендаций SKU на основе профилирования использования ресурсов и анализа производительности затрат. В настоящее время эластичная стратегия доступна для База данных SQL Azure и Управляемый экземпляр SQL, пока недоступна для SQL Server на целевом объекте виртуальной машины Azure. (Значение по умолчанию: false.)
  • databaseAllowList (необязательно): разделенный пробелами список имен баз данных, которые должны быть разрешены для рекомендации SKU при исключении всех остальных. Задайте только один из следующих или ни один из следующих вариантов: databaseAllowList, databaseDenyList. (Значение по умолчанию: null.)
  • databaseDenyList (необязательно): разделенный пробелами список имен баз данных, которые следует исключить для рекомендации SKU. Задайте только один из следующих или ни один из следующих вариантов: databaseAllowList, databaseDenyList. (Значение по умолчанию: null.)
  • overwrite (необязательно): следует ли перезаписать существующие отчеты о рекомендациях SKU. (Значение по умолчанию: true.)
  • displayResult (необязательно): следует ли выводить результаты рекомендаций SKU в консоль. (Значение по умолчанию: true.)
  • outputFolder (необязательно): папка, из которой записываются данные о производительности, отчеты и журналы. (Значение по умолчанию: %LocalAppData%\Microsoft\SqlAssessment.)
  • suppressPreviewFeatures (необязательно): если задано значение true для любой функции Azure, которая находится в предварительной версии, не включена в рекомендацию. (Значение по умолчанию: false.)

Дополнительные параметры рекомендаций SKU можно найти в Console.Settings.json файле в корневом каталоге. В настоящее время он включает следующие настраиваемые параметры:

CommandTimeoutGroupSetting: время в секундах для ожидания выполнения команд SQL-запросов до истечения времени ожидания.

  • PerfCollectionCommandTimeout: время ожидания команды для потенциально длительных запросов, связанных с сбором данных о производительности (по умолчанию: 300)
  • DefaultCollectionCommandTimeout: время ожидания команды для всех других запросов (по умолчанию: 120)

ThrottlingGroupSetting: число параллельных задач для создания на основе числа ядер на компьютере

  • ServerInstancesParallelCount: число экземпляров сервера для параллельной оценки (по умолчанию: 2)
  • DatabasesParallelCount: число баз данных для параллельной оценки (по умолчанию: 4)
  • UserDefinedObjectsParallelCountPerDb: количество определяемых пользователем объектов (хранимые процедуры, представления, триггеры и т. д.) для параллельной оценки для каждой базы данных (по умолчанию: 4)

AllowTelemetry: следует ли разрешать сбор и передачу анонимных данных об использовании функций и диагностических данных в корпорацию Майкрософт. (Значение по умолчанию: true.)

Кроме того, процесс рекомендаций SKU можно вызвать, указав соответствующие аргументы в файле конфигурации JSON и передав файл конфигурации средству, выполнив исполняемый файл без действия, как показано ниже.

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

Следующий ConfigFile эквивалентен действию рекомендаций SKU, описанным ранее:

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

Чтобы получить рекомендации по SKU для определенной платформы SQL Azure, а не выбрать ее автоматически, укажите значение для --targetPlatform параметра следующим образом:

Пример 1. Получение рекомендаций SKU для База данных SQL Azure.

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

Пример 2. Получение рекомендаций SKU с помощью эластичной стратегии для Управляемый экземпляр SQL Azure.

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

Пример 3. Получение рекомендаций SKU для виртуальной машины SQL Azure.

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

Пример 4. Получение рекомендаций SKU для виртуальной машины SQL Azure и отключение предварительных версий функций.

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

На следующем снимку экрана приведен пример выходных данных рекомендации по База данных SQL Azure:

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

На следующем снимок экрана приведен пример выходных данных рекомендации по Управляемый экземпляр SQL Azure:

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

На следующем снимок экрана показан пример выходных данных SQL Server на виртуальной машине Azure:

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

Выходные данные рекомендации SKU сохраняются как в виде подробного отчета в формате JSON, так и в сводном виде, который легко читать HTML-файл. Выходные данные охватывают следующие разделы:

  • Имя экземпляра: имя локального экземпляра SQL Server.
  • Имя базы данных: имя локальной базы данных SQL Server.
  • Рекомендация по SKU. Минимальное экономичное предложение SKU среди всех подходящих номеров SKU для производительности, которые могут соответствовать вашим рабочим нагрузкам.
  • Причина рекомендаций. Для каждого уровня, который рекомендуется, мы предоставляем причины и собранные значения данных, определяющие рекомендации.

Последние рекомендуемые значения уровня и конфигурации для этого уровня отражают минимальный номер SKU, необходимый для выполнения запросов в Azure с частотой успешного выполнения, аналогичной локальным базам данных.

Следующие шаги