Identifique o Banco de Dados SQL do Azure, a Instância Gerenciada do SQL do Azure ou o SQL Server no SKU da VM do Azure corretos para seu banco de dados local
Importante
O DMA (Assistente de Migração de Dados) foi preterido. Para obter opções de migração do SQL Server para o Azure SQL, consulte opções de migração do SQL Server para o Azure SQL.
Migrar bancos de dados para a nuvem pode ser complicado. Especialmente ao tentar selecionar o melhor Banco de Dados SQL do Azure, Instância Gerenciada do SQL ou SQL Server no destino da VM do Azure e SKU para seu banco de dados.
O DMA (Database Migration Assistant) ajuda a resolver essas questões e facilita sua experiência de migração de banco de dados, fornecendo essas recomendações de SKU em uma saída amigável. Usando dados de desempenho, o DMA agora pode recomendar uma SKU SQL do Azure de destino apropriada e uma explicação para a recomendação.
O recurso de recomendações de SKU permite que você colete dados de desempenho de suas instâncias do SQL Server de origem que hospedam seus bancos de dados e recomenda o mínimo do Banco de Dados SQL do Azure, a Instância Gerenciada do SQL do Azure ou o SQL Server no SKU da VM do Azure com base nos dados coletados. O recurso fornece recomendações relacionadas à camada de preço, nível de computação e tamanho dos dados. Atualmente, essa funcionalidade está disponível apenas por meio da interface de linha de comando (CLI).
A seguir estão instruções para ajudá-lo a determinar as recomendações de SKU e provisionar bancos de dados correspondentes no Azure usando DMA.
Observação
Se estiver a avaliar todo o conjunto de dados do SQL Server em escala no VMware, use Azure Migrate para obter recomendações de implementação do Azure SQL, dimensionamento de destino e estimativas mensais.
Pré-requisitos
- Transfira e instale a versão mais recente do DMA. Se você já tiver uma versão anterior da ferramenta, abra-a e você será solicitado a atualizar o DMA.
- Instale a versão mínima .NET Core 6.0 na máquina de ferramentas onde o aplicativo de console de recomendações de SKU está sendo executado.
- Verifique se a conta usada para se conectar à fonte local do SQL Server tem permissão sysadmin.
Observação
É recomendável que a ferramenta seja utilizada a partir de uma máquina de ferramentas (cliente) separada com conectividade com a(s) instância(s) SQL(s) de destino, em vez da máquina que hospeda o SQL Server em si, a fim de minimizar qualquer sobrecarga potencial. Ao coletar dados de desempenho para recomendações de SKU, é recomendável que a ferramenta seja executada com valores de opção padrão ao longo de várias horas, cobrindo cargas de trabalho fora e no pico e excluindo tarefas de manutenção, como reconstrução de índice ou banco de dados de backup. As tarefas de manutenção podem afetar o consumo de CPU, memória e E/S e, subsequentemente, gerar níveis de SKU recomendados mais altos.
Coletar dados de desempenho
Os dados coletados incluem informações limitadas sobre a configuração de hardware do seu servidor e dados de desempenho agregados específicos do SQL das Exibições de Gerenciamento Dinâmico (DMVs) do sistema, como CPU, memória, uso de armazenamento, taxa de transferência de E/S e latência de E/S. Os dados recolhidos são armazenados localmente na sua máquina para posterior agregação e análise. As características de desempenho da sua instância de origem são analisadas para habilitar recomendações de SKU para ofertas SQL do Azure (incluindo Banco de Dados SQL, Instância Gerenciada SQL e SQL na VM do Azure) que melhor se adequam à sua carga de trabalho e, ao mesmo tempo, são econômicas.
No caminho de instalação do DMA, localize a pasta SQLAssessmentConsole e o aplicativo SqlAssessment.exe.
Para iniciar o processo de coleta de dados, especifique a ação PerfDataCollection
no aplicativo de console, com os seguintes argumentos:
-
sqlConnectionStrings
: (required) Cadeias de conexão formais cercadas por aspas para as instâncias SQL de destino. -
perfQueryIntervalInSec
(opcional): Intervalo para consultar dados de desempenho, em segundos. (Padrão:30
). -
staticQueryIntervalInSec
(opcional): Intervalo no qual consultar e persistir dados de configuração estática, em segundos. (Padrão:60
). -
numberOfIterations
(opcional ): Número de iterações da coleta de dados de desempenho a serem executadas antes de persistir no arquivo. Por exemplo, com valores padrão, os dados de desempenho são persistidos a cada 30 segundos * 20 iterações = 10 minutos. (Padrão:20
). -
outputFolder
(opcional ): Pasta na qual os dados de desempenho, relatórios e logs são gravados/lidos. (Padrão:%LocalAppData%/Microsoft/SqlAssessmentConsole
).
O exemplo a seguir é um exemplo de invocação:
.\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
Como alternativa, o processo de coleta de dados pode ser invocado fornecendo os argumentos apropriados em um arquivo de configuração JSON e passando o arquivo de configuração para a ferramenta executando o executável sem uma ação, da seguinte maneira:
.\SqlAssessment.exe --configFile C:\path\to\config.json
O exemplo ConfigFile a seguir é equivalente à ação de coleta de dados de desempenho descrita anteriormente:
{
"action": "PerfDataCollection",
"sqlConnectionStrings": [
"Data Source=Server1;Initial Catalog=master;Integrated Security=True;",
"Data Source=Server2;Initial Catalog=master;Integrated Security=True;"
],
"outputFolder": "C:\\Output"
}
Exemplos de arquivos de configuração para todas as ações podem ser encontrados na pasta Example
no caminho de instalação do DMA: GetMetadataSampleConfigFile.json, PerfDataCollectionSampleConfigFile.jsone GetSkuRecommendationSampleConfigFile.json.
Depois que o comando é executado, os pontos de dados de desempenho e configuração são salvos como um conjunto de três arquivos *_Counters.csv por instância de destino, cada um contendo o servidor e o nome da instância. Você pode usar esse arquivo como entrada para a próxima parte do processo, que fornecerá recomendações de SKU para o Banco de Dados SQL do Azure, a Instância Gerenciada do SQL do Azure ou o SQL Server na VM do Azure.
Use o aplicativo de console para obter recomendações de SKU
Os pontos de dados coletados pela etapa anterior são usados como entrada para o processo de recomendação de SKU.
Para a opção de banco de dados único, o DMA fornece recomendações para a camada de banco de dados única do Banco de Dados SQL do Azure, o nível de computação e a configuração de armazenamento recomendada para cada banco de dados em sua instância SQL.
Para a Instância Gerenciada do SQL do Azure e o SQL Server na VM do Azure, as recomendações dão suporte a um cenário de elevação e mudança. Como resultado, o aplicativo de console de recomendações de SKU pode fornecer recomendações para a Instância Gerenciada SQL do Azure ou o SQL Server na camada de VM do Azure, o nível de computação e a configuração de armazenamento recomendada para o conjunto de bancos de dados em sua instância SQL. Você também pode especificar apenas um subconjunto de bancos de dados a serem incluídos ou excluídos das recomendações de SKU.
GetSkuRecommendation
usa por padrão uma estratégia de linha de base, que mapeia os valores de dados de desempenho coletados representativos da carga de trabalho (com base no valor de percentil especificado) para a SKU SQL do Azure correta.
Também oferecemos uma estratégia elástica (abordagem estatística), que gera uma curva preço-desempenho exclusiva com base nos dados de desempenho coletados, analisando os padrões de carga de trabalho em relação a um modelo baseado em clientes que já migraram para o Azure SQL.
Para iniciar o processo de recomendação de SKU, especifique a ação GetSkuRecommendation
no aplicativo de console, com os seguintes argumentos:
-
perfQueryIntervalInSec
(opcional ): Intervalo no qual os dados de desempenho foram consultados, em segundos. Nota: O valor fornecido deve corresponder ao valor originalmente usado durante a coleta de dados de desempenho. (Padrão:30
) -
targetPlatform
(opcional): Plataforma de destino para recomendação de SKU:AzureSqlDatabase
,AzureSqlManagedInstance
,AzureSqlVirtualMachine
ouAny
. EscolherAny
permite que as recomendações de SKU para as três plataformas de destino sejam avaliadas e o melhor ajuste seja retornado. (Padrão:Any
) -
targetSqlInstance
(opcional ): Nome da instância SQL que a recomendação de SKU tem como alvo. (Padrão:outputFolder
é verificado em busca de arquivos criados pela ação PerfDataCollection e recomendações são fornecidas para cada instância encontrada) -
targetPercentile
(opcional ): Percentil de pontos de dados a serem usados durante a agregação dos dados de desempenho. Usado apenas para a estratégia de linha de base (não elástica). Usado apenas para a estratégia de linha de base (não elástica). (Padrão:95
) -
scalingFactor
(opcional ): Fator de escala ('conforto') usado durante a recomendação de SKU. Por exemplo, se for determinado que há um requisito de CPU de 4 vCore com um fator de escala de 150%, então o verdadeiro requisito de CPU é 6 vCores. (Padrão:100
) -
startTime
(opcional ): Hora de início UTC dos pontos de dados de desempenho a considerar durante a agregação, no formatoyyyy-MM-dd HH:mm
. Usado apenas para a estratégia de linha de base (não elástica). (Padrão: todos os pontos de dados coletados são considerados) -
endTime
(opcional): Hora de término UTC dos pontos de dados de desempenho a serem considerados durante a agregação, em formatoyyyy-MM-dd HH:mm
. Usado apenas para a estratégia de linha de base (não elástica). (Padrão: todos os pontos de dados coletados são considerados) -
elasticStrategy
(opcional ): Usar ou não a estratégia elástica para recomendações de SKU com base no perfil de uso de recursos e na análise de custo-desempenho. A estratégia elástica está atualmente disponível para os Bancos de Dados SQL do Azure e a Instância Gerenciada do SQL, ainda não disponível para o SQL Server no destino da VM do Azure. (Padrão:false
) -
databaseAllowList
(opcionalmente,,): Lista de nomes de bancos de dados separados por espaço que devem ser permitidos para consideração na recomendação de SKU, excluindo todos os outros. Defina apenas um dos seguintes ou nenhum: databaseAllowList, databaseDenyList. (Padrão:null
) -
databaseDenyList
(opcional): Lista de nomes de bases de dados separados por espaço a excluir para recomendação de SKU. Defina apenas um dos seguintes ou nenhum: databaseAllowList, databaseDenyList. (Padrão:null
) -
overwrite
(opcional): Se deve substituir ou não quaisquer relatórios de recomendação de SKU existentes. (Padrão:true
) -
displayResult
(opcional): Determinar se os resultados da recomendação de SKU serão impressos para o console. (Padrão:true
) -
outputFolder
(opcional): Pasta em que os dados de desempenho, relatórios e logs são gravados e lidos. (Padrão:%LocalAppData%\Microsoft\SqlAssessment
) -
suppressPreviewFeatures
(opcional): Se definido como true, qualquer recurso do Azure que esteja em um período de visualização não será incluído na recomendação. (Padrão:false
)
Configurações avançadas para as recomendações de SKU podem ser encontradas no arquivo Console.Settings.json
no diretório raiz. Atualmente, inclui os seguintes parâmetros personalizáveis:
CommandTimeoutGroupSetting
: O tempo, em segundos, para aguardar a execução dos comandos de consulta SQL antes do tempo limite.
-
PerfCollectionCommandTimeout
: Tempo limite de comando para consultas potencialmente de execução longa relacionadas à coleta de dados de desempenho (padrão: 300) -
DefaultCollectionCommandTimeout
: Tempo limite de comando para todas as outras consultas (padrão:120
)
ThrottlingGroupSetting
: Número de tarefas paralelas a criar com base no número de núcleos na máquina
-
ServerInstancesParallelCount
: Número de instâncias do servidor a serem avaliadas em paralelo (padrão:2
) -
DatabasesParallelCount
: Número de bases de dados a avaliar em paralelo (Padrão:4
) -
UserDefinedObjectsParallelCountPerDb
: Número de objetos definidos pelo usuário (procedimentos armazenados, exibições, gatilhos, etc.) para avaliar em paralelo por banco de dados (padrão:4
)
AllowTelemetry
: Permitir ou não a recolha e transmissão de utilização anónima de funcionalidades e dados de diagnóstico para a Microsoft. (Padrão: true
)
Como alternativa, o processo de recomendação de SKU pode ser invocado fornecendo os argumentos apropriados em um arquivo de configuração JSON e passando o arquivo de configuração para a ferramenta executando o executável sem uma ação, da seguinte maneira:
.\SqlAssessment.exe --configFile C:\path\to\config.json
O ConfigFile a seguir é equivalente à ação de recomendações de SKU descrita anteriormente:
{
"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"
}
Para obter recomendações de SKU para uma plataforma SQL do Azure específica em vez de selecionar uma automaticamente, forneça um valor para a opção --targetPlatform
, da seguinte maneira:
Exemplo 1: Obtendo recomendações de SKU para o Banco de Dados SQL do Azure.
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlDatabase
Exemplo 2: Obtendo recomendações de SKU usando a estratégia elástica para a Instância Gerenciada SQL do Azure.
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlManagedInstance
--elasticStrategy true
Exemplo 3: Obtendo recomendações de SKU para a Máquina Virtual SQL do Azure.
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine
Exemplo 4: Obtendo recomendações de SKU para a Máquina Virtual SQL do Azure e suprimindo recursos de visualização.
.\SqlAssessment.exe GetSkuRecommendation
--outputFolder C:\Output
--targetPlatform AzureSqlVirtualMachine
--suppressPreviewFeatures True
A captura de tela a seguir é um exemplo de saída de uma recomendação do Banco de Dados SQL do Azure:
A captura de tela a seguir é um exemplo de saída de uma recomendação de Instância Gerenciada SQL do Azure:
A captura de tela a seguir é um exemplo de saída de uma recomendação do SQL Server na VM do Azure:
A saída da recomendação SKU é salva como um relatório detalhado no formato JSON e um arquivo HTML resumido e fácil de ler. A saída abrange as seguintes seções:
- Nome da instância: Nome da instância local do SQL Server.
- Nome do Banco de Dados: Nome do banco de dados SQL Server local.
- Recomendação de SKU: A oferta mínima de SKU com melhor custo-benefício entre todas as SKUs elegíveis para desempenho que pode acomodar a sua carga de trabalho.
- Motivo da Recomendação: Para cada nível recomendado, fornecemos os motivos e os valores de dados coletados que orientam as recomendações.
A camada final recomendada e os valores de configuração para essa camada refletem a SKU mínima necessária para que suas consultas sejam executadas no Azure com uma taxa de sucesso semelhante aos seus bancos de dados locais.