Определите подходящую SKU для базы данных SQL Azure, управляемого экземпляра SQL Azure или SQL Server на виртуальной машине Azure для вашей локальной базы данных.
Внимание
Помощник по миграции данных (DMA) не рекомендуется. Варианты миграции из SQL Server в SQL Azure см. в параметрах миграции SQL Server в Sql Azure.
Перенос баз данных в облако может быть сложным. Особенно, когда нужно выбрать лучшие базы данных SQL Azure, управляемые экземпляры SQL или SQL Server на виртуальных машинах Azure, а также определить нужные SKU для вашей базы данных.
Помощник по миграции баз данных (DMA) помогает ответить на эти вопросы и упростить процесс миграции вашей базы данных, предоставляя рекомендации по SKU в удобном для пользователя формате. Используя данные о производительности, DMA теперь может рекомендовать соответствующий целевой SKU для Azure SQL и предоставить объяснение своей рекомендации.
Функция рекомендаций SKU позволяет собирать данные о производительности из исходных экземпляров SQL Server, на которых размещены базы данных, и на основе этих данных рекомендует минимальные SKU для базы данных Azure SQL, управляемого экземпляра Azure SQL или SQL Server на виртуальной машине Azure. Эта функция предоставляет рекомендации, связанные с ценовой категорией, уровнем вычислений и размером данных. Эта функция в настоящее время доступна только через интерфейс командной строки (CLI).
Ниже приведены инструкции по определению рекомендаций SKU и подготовке соответствующих баз данных в Azure с помощью DMA.
Примечание.
Если вы оцениваете всю серверную инфраструктуру данных SQL Server в среде VMware, используйте Azure Migrate для получения рекомендаций по развертыванию Azure SQL, целевого размера и ежемесячных оценок.
Предварительные условия
- Скачайте и установите последнюю версию 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.
Чтобы запустить процесс сбора данных, укажите 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 предоставляет рекомендации для уровня одной базы данных в Azure SQL Database, уровня вычислительных ресурсов и рекомендуемой конфигурации хранилища для каждой базы данных в вашем экземпляре SQL.
Для управляемого экземпляра Azure SQL и SQL Server на виртуальной машине Azure данные рекомендации поддерживают сценарий переноса и миграции. В результате консольное приложение по рекомендациям SKU может предоставить вам рекомендации по использованию Управляемого экземпляра SQL Azure или SQL Server на виртуальных машинах Azure, уровня вычислительной мощности и рекомендуемой конфигурации хранилища для набора баз данных в вашем экземпляре SQL. Кроме того, можно указать только подмножество баз данных для включения или исключения из рекомендаций SKU.
GetSkuRecommendation
использует по умолчанию базовую стратегию, которая сопоставляет собранные значения данных производительности для рабочей нагрузки (на основе указанного значения процентиля) с правильным номером SKU SQL Azure.
Мы также предлагаем эластичную стратегию (статистический подход), которая создает уникальную кривую соотношения цена-производительность на основе собранных данных о производительности. Это достигается путем анализа шаблонов рабочих нагрузок с использованием модели, основанной на опыте клиентов, уже мигрировавших на Azure SQL.
Чтобы запустить процесс рекомендации SKU, укажите GetSkuRecommendation
действие в консольном приложении со следующими аргументами:
-
perfQueryIntervalInSec
(необязательно): интервал, в течение которого запрашивались данные о производительности в секундах. Примечание. Указанное значение должно соответствовать значению, которое изначально использовалось во время сбора данных о производительности. (Значение по умолчанию:30
.) -
targetPlatform
(необязательно): целевая платформа для рекомендации SKU:AzureSqlDatabase
, либоAzureSqlManagedInstance
, либоAzureSqlVirtualMachine
, либоAny
. Выбор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
На следующем снимке экрана приведен пример результата рекомендации для базы данных Azure SQL.
На следующем снимке экрана приведен пример результатов рекомендации по управляемому экземпляру SQL Azure.
На следующем снимок экрана показан пример выходных данных SQL Server на виртуальной машине Azure:
Результаты рекомендации SKU сохраняются в виде подробного отчета в формате JSON и удобочитаемого HTML-файла. Выходные данные охватывают следующие разделы:
- Имя экземпляра: имя локального экземпляра SQL Server.
- Имя базы данных: имя локальной базы данных SQL Server.
- Рекомендация по SKU. Минимальное экономичное предложение SKU среди всех подходящих номеров SKU для производительности, которые могут соответствовать вашим рабочим нагрузкам.
- Причина рекомендаций. Для каждого уровня, который рекомендуется, мы предоставляем причины и собранные значения данных, определяющие рекомендации.
Последние рекомендуемые значения уровня и конфигурации для этого уровня отражают минимальный номер SKU, необходимый для выполнения запросов в Azure с частотой успешного выполнения, аналогичной локальным базам данных.