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 do 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.
Visão geral
Antes de migrar para o SQL do Azure, você pode usar a extensão de Migração do SQL no Azure Data Studio para ajudá-lo a gerar recomendações do 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 a coletar dados de desempenho da instância SQL de origem (em execução local ou em outra nuvem) e recomenda uma configuração de computação e armazenamento para atender às necessidades da 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:
Observação
O recurso de avaliação e de recomendação do Azure na extensão de Migração de SQL do Azure para o Azure Data Studio oferece suporte às instâncias do SQL Server de origem em execução no Windows ou Linux.
Pré-requisitos
Para começar a usar as recomendações do Azure para sua migração de banco de dados do SQL Server, você deve atender aos seguintes pré-requisitos:
- Baixe e instale o Azure Data Studio.
- Instale a extensão de Migração do SQL do Azure do Marketplace do Azure Data Studio.
- Verifique se o logon usado para conectar a instância do SQL Server de origem tem as permissões mínimas.
Origens e destinos com suporte
As recomendações do Azure podem ser geradas para as seguintes versões do SQL Server:
- Há suporte para o SQL Server 2008 e versões posteriores no Windows ou Linux.
- O SQL Server em execução em outras nuvens pode ter suporte, 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 padrão (Gen5)
- Níveis de serviço: Uso geral, Crítico de negócios, Hiperescala
- Instância Gerenciada de 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ítica para os negócios
- SQL Server na Máquina Virtual do Azure
- Famílias de VM: uso geral, otimizado para memória
- Famílias de armazenamento: SSD Premium
Coleta de dados de desempenho
Antes que as recomendações possam ser geradas, os dados de desempenho precisam ser coletados da instância do SQL Server de origem. Durante essa etapa de coleta de dados, várias exibições dinâmicas do sistema (DMVs ) da instância do SQL Server são consultadas para capturar as características de desempenho da 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 de instância
Esses dados de desempenho são coletados uma vez por instância do SQL Server:
Dimensão desempenho | Descrição | Visão de Gerenciamento Dinâmico (Detran) |
---|---|---|
SqlInstanceCpuPercent | A quantidade de CPU que o processo do SQL Server estava usando, como uma porcentagem | sys.dm_os_ring_buffers |
PhysicalMemoryInUse | Ocupado geral pela memória do processo do SQL Server | sys.dm_os_process_memory |
MemoryUtilizationPercentage | Utilização de memória do SQL Server | sys.dm_os_process_memory |
Nível de banco de dados
Dimensão desempenho | Descrição | Visão de Gerenciamento Dinâmico (Detran) |
---|---|---|
DatabaseCpuPercent | 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 arquivo
Dimensão desempenho | Descrição | Visão de Gerenciamento Dinâmico (Detran) |
---|---|---|
LeiaIOInMb | O número total de megabytes lidos deste arquivo | 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 arquivo | sys.dm_io_virtual_file_stats |
NumOfWrites | O número total de gravações emitidas neste arquivo | sys.dm_io_virtual_file_stats |
Latência de leitura | A latência de leitura de E/S neste arquivo | sys.dm_io_virtual_file_stats |
Latência de gravação | A latência de gravação de E/S neste arquivo | sys.dm_io_virtual_file_stats |
Um mínimo de 10 minutos de coleta de dados é necessário 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 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.
Importante
O processo de coleta de dados é executado por 10 minutos a fim de gerar a primeira recomendação. É importante iniciar o processo de coleta de dados quando a carga de trabalho do banco de dados ativo refletir o uso semelhante aos dos seus 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. Essa opção será especialmente útil se os padrões de uso 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 no 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 e os metadados do arquivo de banco de dados.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 tempo, 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.
Observação
A primeira etapa do assistente de Migração SQL pede 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
Há várias configurações configuráveis que podem afetar suas recomendações.
Selecione a opção Editar parâmetros para ajustar esses parâmetros de acordo com suas necessidades.
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 é de seis vCores.O volume de fator de escala padrão é de 100%.
Percentual de utilização:
O percentil de pontos de dados a serem usados como dados de desempenho é agregado.O valor padrão é o 95º percentil.
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.Por padrão, essa opção é desativada.
Habilite a recomendação elástica:
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.
Por padrão, essa opção é desativada.
Importante
O processo de coleta de dados é encerrado se você fechar o Azure Data Studio. Os dados que foram coletados até esse ponto são salvos em 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 para sua pasta local. Em seguida, gere uma recomendação 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 mínimo privilegiado 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, da moeda e dos 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, as recomendações do Azure para a camada de computação sem servidor do Banco de Dados SQL do Azure e os Pools Elásticos não têm suporte.
Soluçã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 totalmente os requisitos de desempenho da 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 > abrir SkuRecommendationEvent.log
- O log contém um rastreamento de cada configuração potencial que foi avaliada e o motivo pelo qual ela foi/não foi considerada uma configuração qualificada:
- 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.
- Se nenhuma recomendação for gerada, essa situação pode significar que nenhuma configuração foi identificada que possa satisfazer totalmente os requisitos de desempenho da instância de origem. Para ver os motivos pelos quais um determinado tamanho, camada de serviço ou família de hardware foi desqualificado: