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:
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 do SQL Server de origem 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:
Instale a extensão de migração SQL do Azure a partir do Azure Data Studio Marketplace.
Verifique se o logon usado para conectar a instância do SQL Server de origem tem as permissões mínimas.
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, Essencial 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) |
---|---|---|
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 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 que você execute 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.
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.
Gere 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.
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.
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 é 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 recomendar 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.
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.
Resolver 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 > abrir 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:
- 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 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: