Obter recomendações do Azure para migrar seu banco de dados do SQL Server

A extensão de Migração SQL do Azure para o Azure Data Studio ajuda você a avaliar seus requisitos de banco de dados, obter as recomendações de SKU de tamanho certo para recursos do Azure e migrar seu banco de dados do SQL Server para o Azure.

Saiba como usar essa experiência unificada, coletando dados de desempenho de sua instância do SQL Server de origem para obter recomendações do Azure do tamanho certo para seus destinos SQL do Azure.

Descrição geral

Antes de migrar para o Azure SQL, você pode usar a extensão de Migração SQL no Azure Data Studio para ajudá-lo a gerar recomendações de tamanho certo para o Banco de Dados SQL do Azure, a Instância Gerenciada do SQL do Azure e o SQL Server em destinos de Máquinas Virtuais do Azure. A ferramenta ajuda você a coletar dados de desempenho de sua instância SQL de origem (executando no local ou em outra nuvem) e recomenda uma configuração de computação e armazenamento para atender às necessidades da sua carga de trabalho.

O diagrama apresenta o fluxo de trabalho para recomendações do Azure na extensão de migração SQL do Azure para o Azure Data Studio:

Diagram that shows the workflow of the SKU recommendation process.

Nota

A avaliação e o recurso de recomendação do Azure na extensão de migração do SQL do Azure para o Azure Data Studio dão suporte a instâncias de origem do SQL Server em execução no Windows ou Linux.

Pré-requisitos

Para começar com as recomendações do Azure para sua migração de banco de dados do SQL Server, você deve atender aos seguintes pré-requisitos:

Fontes e destinos suportados

As recomendações do Azure podem ser geradas para as seguintes versões do SQL Server:

  • SQL Server 2008 e versões posteriores no Windows ou Linux são suportados.
  • O SQL Server em execução em outras nuvens pode ser suportado, mas a precisão dos resultados pode variar

As recomendações do Azure podem ser geradas para os seguintes destinos SQL do Azure:

  • Banco de Dados SQL do Azure
    • Famílias de hardware: Série Standard (Gen5)
    • Níveis de serviço: Propósito Geral, Crítico para os Negócios, Hiperescala
  • Instância gerenciada SQL do Azure
    • Famílias de hardware: Série Standard (Gen5), Série Premium, Série Premium otimizada para memória
    • Níveis de serviço: Uso geral, Crítico para os negócios
  • SQL Server na Máquina Virtual do Azure
    • Famílias VM: Uso geral, memória otimizada
    • Famílias de armazenamento: SSD Premium

Recolha de dados de desempenho

Antes que as recomendações possam ser geradas, os dados de desempenho precisam ser coletados da instância de origem do SQL Server. Durante esta etapa de coleta de dados, várias exibições dinâmicas do sistema (DMVs) de sua instância do SQL Server são consultadas para capturar as características de desempenho de sua carga de trabalho. A ferramenta captura métricas, incluindo CPU, memória, armazenamento e uso de E/S a cada 30 segundos, e salva os contadores de desempenho localmente em sua máquina como um conjunto de arquivos CSV.

Nível da instância

Esses dados de desempenho são coletados uma vez por instância do SQL Server:

Dimensão do desempenho Description Visualização de gerenciamento dinâmico (DMV)
SqlInstanceCpuPercent A quantidade de CPU que o processo do SQL Server estava usando, como uma porcentagem sys.dm_os_ring_buffers
PhysicalMemoryInUse Pegada de memória geral do processo do SQL Server sys.dm_os_process_memory
MemoryUtilizationPercentage Utilização da memória do SQL Server sys.dm_os_process_memory

Nível do banco de dados

Dimensão do desempenho Description Visualização de gerenciamento dinâmico (DMV)
Banco de dadosCpuPercent A porcentagem total de CPU usada por um banco de dados sys.dm_exec_query_stats
CachedSizeInMb Tamanho total em Megabytes de cache usado por um banco de dados sys.dm_os_buffer_descriptors

Nível de ficheiro

Dimensão do desempenho Description Visualização de gerenciamento dinâmico (DMV)
ReadIOInMb O número total de megabytes lidos a partir deste ficheiro sys.dm_io_virtual_file_stats
WriteIOInMb O número total de megabytes gravados neste arquivo sys.dm_io_virtual_file_stats
NumOfReads O número total de leituras emitidas neste ficheiro sys.dm_io_virtual_file_stats
NumOfWrites O número total de gravações emitidas neste arquivo sys.dm_io_virtual_file_stats
ReadLatency A latência de leitura de E/S neste arquivo sys.dm_io_virtual_file_stats
WriteLatency A latência de gravação de E/S neste arquivo sys.dm_io_virtual_file_stats

É necessário um mínimo de 10 minutos de coleta de dados antes que uma recomendação possa ser gerada, mas para avaliar com precisão sua carga de trabalho, é recomendável executar a coleta de dados por um período suficientemente longo para capturar o uso no pico e fora do pico.

Para iniciar o processo de coleta de dados, comece conectando-se à sua instância SQL de origem no Azure Data Studio e, em seguida, inicie o assistente de Migração SQL. Na etapa 2, selecione "Obter recomendação do Azure". Selecione "Coletar dados de desempenho agora" e selecione uma pasta em sua máquina onde os dados coletados serão salvos.

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

Importante

O processo de recolha de dados decorre durante 10 minutos para gerar a primeira recomendação. É importante iniciar o processo de coleta de dados quando a carga de trabalho do banco de dados ativo refletir um uso semelhante aos cenários de produção.

Depois que a primeira recomendação for gerada, você poderá continuar a executar o processo de coleta de dados para refinar as recomendações. Esta opção é especialmente útil se os seus padrões de utilização variarem ao longo do tempo.

O processo de coleta de dados começa quando você seleciona Iniciar. A cada 10 minutos, os pontos de dados coletados são agregados e o máximo, a média e a variância de cada contador serão gravados em disco em um conjunto de três arquivos CSV.

Normalmente, você vê um conjunto de arquivos CSV com os seguintes sufixos na pasta selecionada:

  • SQLServerInstance_CommonDbLevel_Counters.csv: Contém dados de configuração estática sobre o layout do arquivo de banco de dados e metadados.
  • SQLServerInstance_CommonInstanceLevel_Counters.csv: Contém dados estáticos sobre a configuração de hardware da instância do servidor.
  • SQLServerInstance_PerformanceAggregated_Counters.csv: contém dados de desempenho agregados que são atualizados com frequência.

Durante esse período, deixe o Azure Data Studio aberto, embora você possa continuar com outras operações. A qualquer momento, você pode interromper o processo de coleta de dados retornando a esta página e selecionando Parar coleta de dados.

Gerando recomendações do tamanho certo

Se você já tiver coletado dados de desempenho de uma sessão anterior ou usando uma ferramenta diferente (como o Assistente de Migração de Banco de Dados), poderá importar quaisquer dados de desempenho existentes selecionando a opção Eu já tenho os dados de desempenho. Prossiga para selecionar a pasta onde seus dados de desempenho (três arquivos .csv) são salvos e selecione Iniciar para iniciar o processo de recomendação.

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

Nota

A etapa um do assistente de migração SQL solicita que você selecione um conjunto de bancos de dados para avaliar, e esses são os únicos bancos de dados que serão levados em consideração durante o processo de recomendação.

No entanto, o processo de coleta de dados de desempenho coleta contadores de desempenho para todos os bancos de dados da instância do SQL Server de origem, não apenas os que foram selecionados.

Isso significa que os dados de desempenho coletados anteriormente podem ser usados para regenerar repetidamente recomendações para um subconjunto diferente de bancos de dados, especificando uma lista diferente na etapa um.

Parâmetros de recomendação

Existem várias definições configuráveis que podem afetar as suas recomendações.

Screenshot that shows the recommendation parameters section.

Selecione a opção Editar parâmetros para ajustar esses parâmetros de acordo com suas necessidades.

Screenshot that shows the different recommendation parameters.

  • Fator de escala:
    Essa opção permite que você forneça um buffer para aplicar a cada dimensão de desempenho. Essa opção leva em conta problemas como uso sazonal, histórico de desempenho curto e prováveis aumentos no uso futuro. Por exemplo, se você determinar que um requisito de CPU de quatro vCore tem um fator de escala de 150%, o verdadeiro requisito de CPU é seis vCores.

    O volume do fator de escala padrão é 100%.

  • Percentagem de utilização:
    O percentil de pontos de dados a ser usado como dados de desempenho é agregado.

    O valor padrão é o percentil 95.

  • Habilite os recursos de visualização:
    Essa opção permite que sejam recomendadas configurações que podem ainda não estar disponíveis para todos os usuários em todas as regiões.

    Esta opção está desativada por predefinição.

  • Habilite a recomendação elástica:

    Essa opção usa um modelo de recomendação alternativo que utiliza perfil personalizado de preço-desempenho em relação aos clientes existentes na nuvem.

    Esta opção está desativada por predefinição.

Importante

O processo de coleta de dados será encerrado se você fechar o Azure Data Studio. Os dados recolhidos até esse ponto são guardados na sua pasta.

Se você fechar o Azure Data Studio enquanto a coleta de dados estiver em andamento, use uma das seguintes opções para reiniciar a coleta de dados:

  • Reabra o Azure Data Studio e importe os arquivos de dados salvos em sua pasta local. Em seguida, gere uma recomendação a partir dos dados coletados.
  • Reabra o Azure Data Studio e inicie a coleta de dados novamente usando o assistente de migração.

Permissões mínimas

Para consultar as exibições do sistema necessárias para a coleta de dados de desempenho, são necessárias permissões específicas para o logon do SQL Server usado para essa tarefa. Você pode criar um usuário privilegiado mínimo para avaliação e coleta de dados de desempenho usando o seguinte script:

-- 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];

Cenários e limitações sem suporte

  • As Recomendações do Azure não incluem estimativas de preço, pois essa situação pode variar dependendo da região, moeda e descontos, como o Benefício Híbrido do Azure. Para obter estimativas de preço, use a Calculadora de Preços do Azure ou crie uma avaliação SQL no Azure Migrate.
  • Não há suporte para recomendações para o Banco de Dados SQL do Azure com o modelo de compra baseado em DTU.
  • Atualmente, não há suporte para recomendações do Azure para a camada de computação sem servidor do Banco de Dados SQL do Azure e Pools Elásticos.

Resolução de problemas

  • Nenhuma recomendação gerada
    • Se nenhuma recomendação for gerada, essa situação pode significar que nenhuma configuração foi identificada que possa satisfazer plenamente os requisitos de desempenho da sua instância de origem. Para ver os motivos pelos quais um determinado tamanho, camada de serviço ou família de hardware foi desqualificado:
      • Acesse os logs do Azure Data Studio indo para Ajuda > Mostrar Todos os Comandos > Abrir Pasta de Logs de Extensão
      • Navegue até Microsoft.mssql > SqlAssessmentLogs > abra SkuRecommendationEvent.log
      • O log contém um rastreamento de cada configuração potencial que foi avaliada e o motivo pelo qual foi/não foi considerada uma configuração elegível: Screenshot that shows SKU recommendations log.
    • Tente regenerar a recomendação com a recomendação elástica ativada. Essa opção usa um modelo de recomendação alternativo, que utiliza perfis personalizados de preço-desempenho em relação aos clientes existentes na nuvem.

Próximos passos