Tutorial: Migrar SQL Server para a Base de Dados SQL do Azure com o DMS (clássico)
Importante
Azure Database Migration Service (clássico) – os cenários SQL estão num caminho de preterição. A partir de 01 de agosto de 2023, deixará de poder criar um novo recurso de Database Migration Service (clássico) para cenários de SQL Server a partir de portal do Azure e será descontinuado a 15 de março de 2026 para todos os clientes. Migre para SQL do Azure serviços de base de dados com a versão de Azure Database Migration Service mais recente que está disponível como uma extensão no Azure Data Studio ou através do Azure PowerShell e da CLI do Azure. Saiba mais.
Nota
Este tutorial utiliza uma versão mais antiga do Azure Database Migration Service. Para melhorar a funcionalidade e a capacidade de suporte, considere migrar para a Base de Dados SQL do Azure com a extensão de migração SQL do Azure para o Azure Data Studio.
Para comparar funcionalidades entre versões, veja comparar versões.
Pode utilizar Azure Database Migration Service para migrar as bases de dados de uma instância SQL Server para SQL do Azure Base de Dados. Neste tutorial, vai migrar a base de dados AdventureWorks2016 restaurada para uma instância no local do SQL Server 2016 (ou posterior) para uma base de dados individual ou uma base de dados agrupada na Base de Dados SQL do Azure com Azure Database Migration Service.
Vai aprender a:
- Avalie e avalie a base de dados no local para quaisquer problemas de bloqueio com a Assistente de Migração de Dados.
- Utilize o Assistente de Migração de Dados para migrar o esquema de exemplo da base de dados.
- Registe o fornecedor de recursos do Azure DataMigration.
- Crie uma instância do Azure Database Migration Service.
- Crie um projeto de migração com Azure Database Migration Service.
- Executar a migração.
- Monitorizar a migração.
Pré-requisitos
Para concluir este tutorial, precisa de:
Transfira e instale SQL Server 2016 ou posterior.
Ativar o protocolo TCP/IP, que está desativado por predefinição durante a instalação do SQL Server Express, através das instruções no artigo Enable or Disable a Server Network Protocol (Ativar ou desativar um Protocolo de Rede de Servidor).
Restaure a base de dados AdventureWorks2016 para a instância SQL Server.
Crie uma base de dados na Base de Dados SQL do Azure, o que faz ao seguir os detalhes no artigo Criar uma base de dados na Base de Dados SQL do Azure com o portal do Azure. Para efeitos deste tutorial, pressupõe-se que o nome da Base de Dados SQL do Azure é AdventureWorksAzure, mas pode indicar um nome à sua escolha.
Nota
Se utilizar SQL Server Integration Services (SSIS) e quiser migrar a base de dados de catálogo para os seus projetos/pacotes SSIS (SSISDB) de SQL Server para a Base de Dados SQL do Azure, o SSISDB de destino será criado e gerido automaticamente em seu nome quando aprovisionar o SSIS no Azure Data Factory (ADF). Para obter mais informações sobre a migração de pacotes SSIS, veja o artigo Migrar pacotes do SQL Server Integration Services para o Azure.
Transfira e instale a versão mais recente do Assistente de Migração de Dados.
Crie um Rede Virtual do Microsoft Azure para Azure Database Migration Service com o modelo de implementação do Azure Resource Manager, que fornece conectividade site a site aos servidores de origem no local com o ExpressRoute ou a VPN. Para obter mais informações sobre como criar uma rede virtual, veja a Documentação do Rede Virtual e, especialmente, os artigos de início rápido com detalhes passo a passo.
Nota
Durante a configuração da rede virtual, se utilizar o ExpressRoute com peering de rede à Microsoft, adicione os seguintes pontos finais de serviço à sub-rede na qual o serviço será aprovisionado:
- Ponto final da base de dados de destino (por exemplo, ponto final do SQL, ponto final do Azure Cosmos DB, etc.)
- Ponto final de armazenamento
- Ponto final do Service Bus
Esta configuração é necessária porque o Azure Database Migration Service não tem conectividade à Internet.
Se não tiver conectividade site a site entre a rede no local e o Azure ou se existir uma largura de banda de conectividade site a site limitada, considere utilizar Azure Database Migration Service no modo híbrido (Pré-visualização). O modo híbrido tira partido de uma função de trabalho de migração no local, juntamente com uma instância de Azure Database Migration Service em execução na cloud. Para criar uma instância de Azure Database Migration Service no modo híbrido, veja o artigo Criar uma instância de Azure Database Migration Service no modo híbrido com o portal do Azure.
Certifique-se de que as regras de segurança de saída do Grupo de Segurança de Rede da rede virtual não bloqueiam a porta de saída 443 do ServiceTag para ServiceBus, Armazenamento e AzureMonitor. Para obter mais detalhes sobre a filtragem de tráfego NSG da rede virtual do Azure, veja o artigo Filtrar o tráfego de rede com grupos de segurança de rede.
Configurar a sua Firewall do Windows para acesso ao motor de bases de dados.
Abra a firewall do Windows para permitir que Azure Database Migration Service acedam ao SQL Server de origem, que por predefinição é a porta TCP 1433. Se a instância predefinida estiver a escutar noutra porta, adicione-a à firewall.
Se estiver a executar várias instâncias com o nome SQL Server através de portas dinâmicas, poderá querer ativar o Serviço do SQL Browser e permitir o acesso à porta UDP 1434 através das firewalls para que Azure Database Migration Service possam ligar a uma instância com nome no servidor de origem.
Ao utilizar uma aplicação de firewall à frente das bases de dados de origem, poderá ter de adicionar regras de firewall para permitir que Azure Database Migration Service acedam às bases de dados de origem para migração.
Crie uma regra de firewall de IP ao nível do servidor para SQL do Azure Base de Dados para permitir Azure Database Migration Service acesso às bases de dados de destino. Forneça o intervalo de sub-rede da rede virtual utilizada para Azure Database Migration Service.
Confirmar que as credenciais utilizadas para ligar à instância de origem do SQL Server têm permissões CONTROLAR SERVIDOR.
Certifique-se de que as credenciais utilizadas para ligar à instância de base de dados de destino SQL do Azure têm a permissão BASE de Dados DE CONTROLO nas bases de dados de destino.
Importante
A criação de uma instância de Azure Database Migration Service requer acesso às definições de rede virtual que normalmente não se encontram no mesmo grupo de recursos. Como resultado, o utilizador que está a criar uma instância do DMS requer permissão ao nível da subscrição. Para criar as funções necessárias, que pode atribuir conforme necessário, execute o seguinte script:
$readerActions = ` "Microsoft.Network/networkInterfaces/ipConfigurations/read", ` "Microsoft.DataMigration/*/read", ` "Microsoft.Resources/subscriptions/resourceGroups/read" $writerActions = ` "Microsoft.DataMigration/services/*/write", ` "Microsoft.DataMigration/services/*/delete", ` "Microsoft.DataMigration/services/*/action", ` "Microsoft.Network/virtualNetworks/subnets/join/action", ` "Microsoft.Network/virtualNetworks/write", ` "Microsoft.Network/virtualNetworks/read", ` "Microsoft.Resources/deployments/validate/action", ` "Microsoft.Resources/deployments/*/read", ` "Microsoft.Resources/deployments/*/write" $writerActions += $readerActions # TODO: replace with actual subscription IDs $subScopes = ,"/subscriptions/00000000-0000-0000-0000-000000000000/","/subscriptions/11111111-1111-1111-1111-111111111111/" function New-DmsReaderRole() { $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new() $aRole.Name = "Azure Database Migration Reader" $aRole.Description = "Lets you perform read only actions on DMS service/project/tasks." $aRole.IsCustom = $true $aRole.Actions = $readerActions $aRole.NotActions = @() $aRole.AssignableScopes = $subScopes #Create the role New-AzRoleDefinition -Role $aRole } function New-DmsContributorRole() { $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new() $aRole.Name = "Azure Database Migration Contributor" $aRole.Description = "Lets you perform CRUD actions on DMS service/project/tasks." $aRole.IsCustom = $true $aRole.Actions = $writerActions $aRole.NotActions = @() $aRole.AssignableScopes = $subScopes #Create the role New-AzRoleDefinition -Role $aRole } function Update-DmsReaderRole() { $aRole = Get-AzRoleDefinition "Azure Database Migration Reader" $aRole.Actions = $readerActions $aRole.NotActions = @() Set-AzRoleDefinition -Role $aRole } function Update-DmsConributorRole() { $aRole = Get-AzRoleDefinition "Azure Database Migration Contributor" $aRole.Actions = $writerActions $aRole.NotActions = @() Set-AzRoleDefinition -Role $aRole } # Invoke above functions New-DmsReaderRole New-DmsContributorRole Update-DmsReaderRole Update-DmsConributorRole
Avaliar a base de dados no local
Antes de poder migrar dados de uma instância SQL Server para uma única base de dados ou base de dados agrupada na Base de Dados SQL do Azure, tem de avaliar a base de dados SQL Server para quaisquer problemas de bloqueio que possam impedir a migração. Com o Assistente de Migração de Dados, siga os passos descritos no artigo Executar uma avaliação de migração SQL Server para concluir a avaliação da base de dados no local. Segue-se um resumo dos passos necessários:
No Assistente de Migração de Dados, selecione o ícone Novo (+) e, em seguida, selecione o tipo de projeto Avaliação.
Especifique um nome de projeto. Na lista pendente Tipo de avaliação, selecione Motor de Base de Dados, na caixa de texto Tipo de servidor de origem, selecione SQL Server, na caixa de texto Tipo de servidor de destino, selecione SQL do Azure Base de Dados e, em seguida, selecione Criar para criar o projeto.
Quando estiver a avaliar a origem SQL Server base de dados a migrar para uma base de dados individual ou uma base de dados agrupada na Base de Dados SQL do Azure, pode escolher um ou ambos os seguintes tipos de relatório de avaliação:
- Verificar a compatibilidade da base de dados
- Verificar a paridade de funcionalidades
Ambos os tipos de relatórios estão selecionados por predefinição.
No Assistente de Migração de Dados, no ecrã Options (Opções), selecione Next (Seguinte).
No ecrã Select sources (Selecionar origens), na caixa de diálogo Connect to a server (Ligar a um servidor), indique os detalhes da ligação ao SQL Server e selecione Connect (Ligar).
Na caixa de diálogo Adicionar origens , selecione AdventureWorks2016, selecione Adicionar e, em seguida, selecione Iniciar Avaliação.
Nota
Se utilizar o SSIS, o DMA não suporta atualmente a avaliação do SSISDB de origem. No entanto, os projetos/pacotes do SSIS serão avaliados/validados à medida que forem reimplementados para o SSISDB de destino alojado pela Base de Dados SQL do Azure. Para obter mais informações sobre a migração de pacotes SSIS, veja o artigo Migrar pacotes do SQL Server Integration Services para o Azure.
Quando a avaliação estiver concluída, os resultados são apresentados tal como no gráfico abaixo:
Para bases de dados na Base de Dados SQL do Azure, as avaliações identificam problemas de paridade de funcionalidades e problemas de bloqueio de migração para implementação numa base de dados individual ou numa base de dados agrupada.
- A categoria paridade de funcionalidades do SQL Server oferece um conjunto abrangente de recomendações, abordagens alternativas disponíveis no Azure e passos de migração para o ajudar a planear o esforço necessário para os seus projetos de migração.
- A categoria Problemas de compatibilidade identifica funcionalidades parcialmente suportadas ou não suportadas que refletem problemas de compatibilidade que podem bloquear a migração de bases de dados SQL Server para SQL do Azure Base de Dados. As recomendações também são disponibilizadas para o ajudar a resolver esses problemas.
Selecione as opções relevantes para rever os resultados da avaliação relativamente a problemas de bloqueio que impedem a migração e problemas de paridade de funcionalidades.
Migrar o esquema de exemplo
Depois de se sentir confortável com a avaliação e de ter a certeza de que a base de dados selecionada é um candidato viável para migração para uma base de dados individual ou uma base de dados agrupada na Base de Dados SQL do Azure, utilize o DMA para migrar o esquema para SQL do Azure Base de Dados.
Nota
Antes de criar um projeto de migração no Assistente de Migração de Dados, certifique-se de que já aprovisionou uma base de dados no Azure, conforme mencionado nos pré-requisitos.
Importante
Se utilizar o SSIS, o DMA não suporta atualmente a migração do SSISDB de origem, mas pode reimplementar os seus projetos/pacotes SSIS para o SSISDB de destino alojado pela Base de Dados SQL do Azure. Para obter mais informações sobre a migração de pacotes SSIS, veja o artigo Migrar pacotes do SQL Server Integration Services para o Azure.
Para migrar o esquema AdventureWorks2016 para uma base de dados individual ou base de dados agrupada SQL do Azure Base de Dados, execute os seguintes passos:
No Assistente de Migração de Dados, selecione o ícone New (Novo) (+) e, em Project type (Tipo de projeto), selecione Migration (Migração).
Indique um nome para o projeto, na caixa de texto Source server type (Tipo de servidor de origem), selecione SQL Server e, na caixa de texto Target server type (Tipo de servidor de destino), selecione Azure SQL Database (Base de Dados SQL do Azure).
Em Migration Scope (Âmbito da migração), selecione Schema only (Apenas esquema).
Depois de realizar os passos anteriores, a interface do Assistente de Migração de Dados deverá ser apresentada, conforme mostrado na imagem abaixo:
Selecione Create (Criar) para criar o projeto.
Na Assistente de Migração de Dados, especifique os detalhes da ligação de origem para o seu SQL Server, selecione Ligar e, em seguida, selecione a base de dados AdventureWorks2016.
Selecione Seguinte, em Ligar ao servidor de destino, especifique os detalhes de ligação de destino da Base de Dados SQL do Azure, selecione Ligar e, em seguida, selecione a base de dados AdventureWorksAzure que tinha pré-aprovisionada na Base de Dados SQL do Azure.
Selecione Seguinte para avançar para o ecrã Selecionar objetos, no qual pode especificar os objetos de esquema na base de dados AdventureWorks2016 que precisam de ser implementados na Base de Dados SQL do Azure.
Por predefinição, estão selecionados todos os objetos.
Selecione Generate SQL script (Gerar script do SQL) para criar os scripts do SQL e reveja-os para ver se têm erros.
Selecione Deploy schema (Implementar esquema) para implementar o esquema na Base de Dados SQL do Azure e, após a implementação, verifique o servidor de destino quanto a anomalias.
Registar o fornecedor de recursos
Registe o fornecedor de recursos Microsoft.DataMigration antes de criar a primeira instância do Database Migration Service.
Inicie sessão no portal do Azure. Procure e selecione Subscrições.
Selecione a subscrição na qual pretende criar a instância de Azure Database Migration Service e, em seguida, selecione Fornecedores de recursos.
Procure migração e, em seguida, selecione Registar para Microsoft.DataMigration.
Criar uma instância do Azure Database Migration Service
No menu portal do Azure ou na Home page, selecione Criar um recurso. Procure e selecione Azure Database Migration Service.
No ecrã Azure Database Migration Service, selecione Criar.
Selecione o tipo de servidor de Origem adequado e Tipo de servidor de destino e escolha a opção Database Migration Service (Clássico).
No ecrã Noções básicas do Create Migration Service :
- Selecione uma subscrição.
- Crie um novo grupo de recursos ou escolha um existente.
- Especifique um nome para a instância do Azure Database Migration Service.
- Selecione a localização na qual pretende criar a instância de Azure Database Migration Service.
- Selecione Azure como o modo de serviço.
- Selecione um escalão de preço. Para obter mais informações sobre os custos e os escalões de preços, veja a página de preços.
- Selecione Seguinte: Rede.
No ecrã Criar rede do Serviço de Migração :
- Selecione uma rede virtual existente ou crie uma nova. A rede virtual fornece Azure Database Migration Service com acesso ao servidor de origem e à instância de destino. Para obter mais informações sobre como criar uma rede virtual no portal do Azure, consulte o artigo Criar uma rede virtual com o portal do Azure.
Selecione Rever + Criar para rever os detalhes e, em seguida, selecione Criar para criar o serviço.
Após alguns momentos, a instância do serviço de Migração da Base de Dados do Azure é criada e pronta a utilizar:
Criar um projeto de migração
Após a criação do serviço, localize-o no portal do Azure, abra-o e crie um projeto de migração novo.
No menu portal do Azure, selecione Todos os serviços. Procure e selecione Azure Database Migration Services.
No ecrã Azure Database Migration Services( Serviços de Migração de Bases de Dados do Azure), selecione a instância Azure Database Migration Service que criou.
Selecione Novo Projeto de Migração.
No ecrã Novo projeto de migração, especifique um nome para o projeto, na caixa de texto Tipo de servidor de origem, selecione SQL Server, na caixa de texto Tipo de servidor de destino, selecione SQL do Azure Base de Dados e, em seguida, selecione Migração tipo de atividade, selecione Migração de dados.
Selecione Criar e executar atividade para criar o projeto e executar a atividade de migração.
Especificar os detalhes da origem
No ecrã Selecionar origem, especifique os detalhes de ligação da instância de SQL Server de origem.
Confirme que utiliza um Nome de Domínio Completamente Qualificado (FQDN) no nome da instância do SQL Server de origem. Também pode utilizar o endereço IP em situações nas quais a resolução de nomes DNS não é possível.
Se não tiver um certificado fidedigno instalado no servidor de origem, selecione a caixa de verificação Confiar no certificado de servidor.
Se não tiver um certificado fidedigno instalado, o SQL Server gera um certificado autoassinado quando a instância é iniciada. Este certificado é utilizado para encriptar as credenciais para as ligações de cliente.
Atenção
As ligações TLS encriptadas através de um certificado autoassinado não fornecem segurança forte. São suscetíveis a ataques man-in-the-middle. Não deve depender do TLS com certificados autoassinados num ambiente de produção ou em servidores ligados à Internet.
Importante
Se utilizar o SSIS, o DMS não suporta atualmente a migração do SSISDB de origem, mas pode reimplementar os seus projetos/pacotes SSIS para o SSISDB de destino alojado pela Base de Dados SQL do Azure. Para obter mais informações sobre a migração de pacotes SSIS, veja o artigo Migrar pacotes do SQL Server Integration Services para o Azure.
Selecione Seguinte: selecionar bases de dados.
Selecionar bases de dados para migração
Selecione todas as bases de dados ou bases de dados específicas que pretende migrar para SQL do Azure Base de Dados. O DMS fornece-lhe o tempo de migração esperado para bases de dados selecionadas. Se os tempos de indisponibilidade da migração forem aceitáveis, continue com a migração. Se os tempos de indisponibilidade da migração não forem aceitáveis, considere migrar para SQL Managed Instance com um período de indisponibilidade quase nulo ou submeter ideias/sugestões para melhoramento e outros comentários no fórum da Comunidade do Azure , Azure Database Migration Service.
Escolha as bases de dados que pretende migrar a partir da lista de bases de dados disponíveis.
Reveja o período de indisponibilidade esperado. Se for aceitável, selecione Seguinte: Selecionar destino >>
Especificar os detalhes do destino
No ecrã Selecionar destino, forneça definições de autenticação à base de dados SQL do Azure.
Nota
Atualmente, a autenticação SQL é o único tipo de autenticação suportado.
Selecione Seguinte: mapear para o ecrã de bases de dados de destino , mapear a origem e a base de dados de destino para migração.
Se a base de dados de destino contiver o mesmo nome de base de dados que a base de dados de origem, Azure Database Migration Service seleciona a base de dados de destino por predefinição.
Selecione Seguinte: Definições de migração de configuração, expanda a listagem de tabelas e, em seguida, reveja a lista de campos afetados.
Azure Database Migration Service seleciona automaticamente todas as tabelas de origem vazias que existem na instância de base de dados SQL do Azure de destino. Se quiser voltar a emigrar tabelas que já incluem dados, tem de selecionar explicitamente as tabelas neste painel.
Selecione Seguinte: Resumo, reveja a configuração da migração e, na caixa de texto Nome da atividade , especifique um nome para a atividade de migração.
Executar a migração
Selecione Iniciar migração.
É apresentada a janela de atividade da migração e o Estado da atividade é Pendente.
Monitorizar a migração
No ecrã de atividade da migração, selecione Atualizar para atualizar a vista até que o Estado da migração apareça como Concluída.
Verifique as bases de dados de destino no destino SQL do Azure Base de Dados.
Recursos adicionais
- Para obter informações sobre Azure Database Migration Service, consulte o artigo O que é Azure Database Migration Service?.
- Para obter informações sobre SQL do Azure Base de Dados, consulte o artigo O que é o serviço base de dados SQL do Azure?.