Tutorial: Migrar o SQL Server para o Banco de Dados SQL do Azure usando DMS (clássico)

Importante

Serviço de Migração de Banco de Dados do Azure (clássico) - os cenários SQL estão em um caminho de descontinuação. Desde 1º de agosto de 2023, você não pode mais criar novos recursos do Serviço de Migração de Banco de Dados (clássico) para cenários do SQL Server a partir do portal do Azure. O serviço será retirado no dia 15 de março de 2026 para todos os clientes. Para migrações contínuas de várias fontes de banco de dados para Destinos SQL do Azure, a Microsoft recomenda usar a versão mais recente do Serviço de Migração de Banco de Dados do Azure, que está disponível como uma extensão da Migração SQL do Azure no Azure Data Studio, ou por meio do Portal do Azure ou por meio do Azure PowerShell e da CLI do Azure. Para obter mais informações, consulte Aviso de desativação: Serviço de Migração de Banco de Dados (clássico).

Nota

Este tutorial usa uma versão mais antiga do Serviço de Migração de Banco de Dados do Azure. Para melhorar a funcionalidade e a capacidade de suporte, considere migrar para o Banco de Dados SQL do Azure usando a extensão de migração SQL do Azure para o Azure Data Studio.

Para comparar recursos entre versões, revise Comparar versões.

Você pode usar o Serviço de Migração de Banco de Dados do Azure para migrar os bancos de dados de uma instância do SQL Server para o Banco de Dados SQL do Azure. Neste tutorial, você migra o banco de dados AdventureWorks2016 restaurado para uma instância local do SQL Server 2016 (ou posterior) para um único banco de dados ou banco de dados em pool no Banco de Dados SQL do Azure usando o Serviço de Migração de Banco de Dados do Azure.

Vai aprender a:

  • Avalie e avalie seu banco de dados local quanto a quaisquer problemas de bloqueio usando o Assistente de Migração de Dados.
  • Use o Assistente de Migração de Dados para migrar o esquema de exemplo de banco de dados.
  • Registre o provedor de recursos do Azure DataMigration.
  • Crie uma instância do Azure Database Migration Service.
  • Crie um projeto de migração usando o Serviço de Migração de Banco de Dados do Azure.
  • Executar a migração.
  • Monitorizar a migração.

Pré-requisitos

Para concluir este tutorial, precisa de:

  • Baixe e instale o 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 o banco de dados AdventureWorks2016 para a instância do SQL Server.

  • Crie um banco de dados no Banco de Dados SQL do Azure, o que você faz seguindo os detalhes no artigo Criar um banco de dados no Banco de Dados SQL do Azure usando 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 você usar o SQL Server Integration Services (SSIS) e quiser migrar o banco de dados de catálogo para seus projetos/pacotes SSIS (SSISDB) do SQL Server para o Banco de Dados SQL do Azure, o SSISDB de destino será criado e gerenciado automaticamente em seu nome quando você provisionar o SSIS no Azure Data Factory (ADF). Para obter mais informações sobre como migrar pacotes SSIS, consulte 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.

  • Criar uma Rede Virtual do Microsoft Azure para o Azure Database Migration Service com o modelo de implementação Azure Resource Manager, que proporciona conectividade site a site aos seus servidores de origem no local através do ExpressRoute ou de uma VPN. Para obter mais informações sobre como criar uma rede virtual, consulte a Documentação da 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 você usar a Rota Expressa com emparelhamento de rede para a Microsoft, adicione os seguintes pontos de extremidade de serviço à sub-rede na qual o serviço será provisionado:

    • 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 você não tiver conectividade site a site entre a rede local e o Azure ou se houver largura de banda de conectividade site a site limitada, considere usar o Serviço de Migração de Banco de Dados do Azure no modo híbrido (Visualização). O modo híbrido aproveita um operador de migração local juntamente com uma instância do Serviço de Migração de Banco de Dados do Azure em execução na nuvem. Para criar uma instância do Serviço de Migração de Banco de Dados do Azure no modo híbrido, consulte o artigo Criar uma instância do Serviço de Migração de Banco de Dados do Azure no modo híbrido usando 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 bloqueiem 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, consulte o artigo Filtrar 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 seu firewall no Windows para permitir que o Serviço de Migração de Banco de Dados do Azure acesse o SQL Server de origem, que por padrão é a porta TCP 1433. Se sua instância padrão estiver escutando em alguma outra porta, adicione-a ao firewall.

  • Se você estiver executando várias instâncias nomeadas do SQL Server usando portas dinâmicas, convém habilitar o Serviço Navegador SQL e permitir o acesso à porta UDP 1434 por meio de seus firewalls para que o Serviço de Migração de Banco de Dados do Azure possa se conectar a uma instância nomeada em seu servidor de origem.

  • Ao usar um dispositivo de firewall na frente do(s) seu(s) banco(s) de dados de origem, talvez seja necessário adicionar regras de firewall para permitir que o Serviço de Migração de Banco de Dados do Azure acesse o(s) banco(s) de dados de origem para migração.

  • Crie uma regra de firewall IP no nível de servidor para o Banco de Dados SQL do Azure para permitir que o Serviço de Migração de Banco de Dados do Azure acesse os bancos de dados de destino. Forneça o intervalo de sub-redes da rede virtual utilizada no Azure Database Migration Service.

  • Confirmar que as credenciais utilizadas para ligar à instância de origem do SQL Server têm permissões CONTROLAR SERVIDOR.

  • Verifique se as credenciais usadas para se conectar à instância do Banco de Dados SQL do Azure de destino têm a permissão CONTROL DATABASE nos bancos de dados de destino.

    Importante

    A criação de uma instância do Azure Database Migration Service requer acesso às definições da rede virtual que normalmente não estão no mesmo grupo de recursos. Como resultado, o utilizador que cria uma instância do DMS requer permissão ao nível da subscrição. Para criar as funções necessárias, que você 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 migrar dados de uma instância do SQL Server para um único banco de dados ou banco de dados em pool no Banco de Dados SQL do Azure, você precisa avaliar o banco de dados do SQL Server para quaisquer problemas de bloqueio que possam impedir a migração. Usando o Assistente de Migração de Dados, siga as etapas descritas no artigo Executando uma avaliação de migração do SQL Server para concluir a avaliação do banco de dados local. Segue-se um resumo dos passos necessários:

  1. No Assistente de Migração de Dados, selecione o ícone New (Novo) (+) e selecione o tipo de projeto Assessment (Avaliação).

  2. Especifique um nome de projeto. Na lista suspensa Tipo de avaliação, selecione Mecanismo de Banco de Dados, na caixa de texto Tipo de servidor de origem, selecione SQL Server, na caixa de texto Tipo de servidor de destino, selecione Banco de Dados SQL do Azure e selecione Criar para criar o projeto.

    Ao avaliar o banco de dados SQL Server de origem migrando para um único banco de dados ou banco de dados em pool no Banco de Dados SQL do Azure, você 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.

  3. No Assistente de Migração de Dados, no ecrã Options (Opções), selecione Next (Seguinte).

  4. 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).

  5. Na caixa de diálogo Adicionar fontes, selecione AdventureWorks2016, selecione Adicionar e, em seguida, selecione Iniciar Avaliação.

    Nota

    Se você usar o SSIS, o DMA atualmente não oferece suporte à avaliação do SSISDB de origem. No entanto, os projetos/pacotes do SSIS serão avaliados/validados à medida que forem reimplantados no SSISDB de destino hospedado pelo Banco de Dados SQL do Azure. Para obter mais informações sobre como migrar pacotes SSIS, consulte 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:

    Assess data migration

    Para bancos de dados no Banco de Dados SQL do Azure, as avaliações identificam problemas de paridade de recursos e problemas de bloqueio de migração para implantação em um único banco de dados ou banco de dados em pool.

    • 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 recursos parcialmente suportados ou sem suporte que refletem problemas de compatibilidade que podem bloquear a migração de bancos de dados do SQL Server para o Banco de Dados SQL do Azure. As recomendações também são disponibilizadas para o ajudar a resolver esses problemas.
  6. 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 satisfeito que o banco de dados selecionado é um candidato viável para migração para um único banco de dados ou banco de dados em pool no Banco de Dados SQL do Azure, use o DMA para migrar o esquema para o Banco de Dados SQL do Azure.

Nota

Antes de criar um projeto de migração no Assistente de Migração de Dados, certifique-se de que já provisionou um banco de dados no Azure, conforme mencionado nos pré-requisitos.

Importante

Se você usar o SSIS, o DMA atualmente não oferece suporte à migração do SSISDB de origem, mas você pode reimplantar seus projetos/pacotes do SSIS no SSISDB de destino hospedado pelo Banco de Dados SQL do Azure. Para obter mais informações sobre como migrar pacotes SSIS, consulte o artigo Migrar pacotes do SQL Server Integration Services para o Azure.

Para migrar o esquema AdventureWorks2016 para um único banco de dados ou banco de dados em pool do Banco de Dados SQL do Azure, execute as seguintes etapas:

  1. No Assistente de Migração de Dados, selecione o ícone New (Novo) (+) e, em Project type (Tipo de projeto), selecione Migration (Migração).

  2. 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).

  3. 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:

    Create Data Migration Assistant Project

  4. Selecione Create (Criar) para criar o projeto.

  5. No Assistente de Migração de Dados, especifique os detalhes da conexão de origem para o SQL Server, selecione Conectar e selecione o banco de dados AdventureWorks2016 .

    Data Migration Assistant Source Connection Details

  6. Selecione Avançar, em Conectar ao servidor de destino, especifique os detalhes da conexão de destino para o Banco de Dados SQL do Azure, selecione Conectar e selecione o banco de dados AdventureWorksAzure que você pré-provisionou no Banco de Dados SQL do Azure.

    Data Migration Assistant Target Connection Details

  7. Selecione Avançar para avançar para a tela Selecionar objetos , na qual você pode especificar os objetos de esquema no banco de dados AdventureWorks2016 que precisam ser implantados no Banco de Dados SQL do Azure.

    Por predefinição, estão selecionados todos os objetos.

    Generate SQL Scripts

  8. Selecione Generate SQL script (Gerar script do SQL) para criar os scripts do SQL e reveja-os para ver se têm erros.

    Schema Script

  9. 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.

    Deploy Schema

Registar o fornecedor de recursos

Registe o fornecedor de recursos Microsoft.DataMigration antes de criar a primeira instância do Database Migration Service.

  1. Inicie sessão no portal do Azure. Pesquise e selecione Subscrições.

    Show portal subscriptions

  2. Selecione a assinatura na qual você deseja criar a instância do Serviço de Migração de Banco de Dados do Azure e selecione Provedores de recursos.

    Show resource providers

  3. Procure migração e selecione Registrar para Microsoft.DataMigration.

    Register resource provider

Criar uma instância do Azure Database Migration Service

  1. No menu do portal do Azure ou na página inicial , selecione Criar um recurso. Procure e selecione Serviço de Migração de Banco de Dados do Azure.

    Azure Marketplace

  2. No ecrã Azure Database Migration Service, selecione Criar.

    Create Azure Database Migration Service instance

    Selecione o tipo de servidor de origem e o tipo de servidor de destino apropriados e escolha a opção Serviço de Migração de Banco de Dados (Clássico).

    Select Database Migration Service (Classic) scenario

  3. Na tela Criar noções básicas do Serviço de Migração:

    • Selecione uma subscrição.
    • Crie um novo grupo de recursos ou escolha um existente.
    • Especifique um nome para a instância do Serviço de Migração de Banco de Dados do Azure.
    • Selecione o local no qual você deseja criar a instância do Serviço de Migração de Banco de Dados do Azure.
    • Escolha 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.

    Configure Azure Database Migration Service instance basics settings

    • Selecione Next: Networking.
  4. Na tela Criar rede do Serviço de Migração:

    • Selecione uma rede virtual existente ou crie uma nova. A rede virtual fornece ao Serviço de Migração de Banco de Dados do Azure 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 usando o portal do Azure.

    Configure Azure Database Migration Service instance networking settings

    • Selecione Rever + Criar para rever os detalhes e, em seguida, selecione Criar para criar o serviço.

    • Após alguns momentos, sua instância do serviço de Migração de Banco de Dados do Azure é criada e está pronta para uso:

    Migration service created

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.

  1. No menu do portal do Azure, selecione Todos os serviços. Procure e selecione Serviços de Migração de Banco de Dados do Azure.

    Locate all instances of Azure Database Migration Service

  2. Na tela Serviços de Migração de Banco de Dados do Azure, selecione a instância do Serviço de Migração de Banco de Dados do Azure que você criou.

  3. Selecione Novo projeto de migração.

    Locate your instance of Azure Database Migration Service

  4. Na tela 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 Banco de Dados SQL do Azure e, em seguida, para Escolher tipo de atividade de migração, selecione Migração de dados.

    Create Database Migration Service Project

  5. Selecione Criar e executar atividade para criar o projeto e executar a atividade de migração.

Especifique os detalhes da origem

  1. Na tela Selecionar origem, especifique os detalhes da conexão para a instância do 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.

  2. 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 conexões TLS criptografadas usando um certificado autoassinado não fornecem segurança forte. São suscetíveis a ataques man-in-the-middle. Você não deve confiar no TLS usando certificados autoassinados em um ambiente de produção ou em servidores conectados à Internet.

    Importante

    Se você usar o SSIS, o DMS atualmente não oferece suporte à migração do SSISDB de origem, mas você pode reimplantar seus projetos/pacotes do SSIS no SSISDB de destino hospedado pelo Banco de Dados SQL do Azure. Para obter mais informações sobre como migrar pacotes SSIS, consulte o artigo Migrar pacotes do SQL Server Integration Services para o Azure.

    Source Details

  3. Selecione Avançar: Selecionar bancos de dados.

Selecionar bancos de dados para migração

Selecione todos os bancos de dados ou bancos de dados específicos que você deseja migrar para o Banco de Dados SQL do Azure. O DMS fornece o tempo de migração esperado para bancos de dados selecionados. Se os períodos de inatividade da migração forem aceitáveis, continue com a migração. Se os períodos de inatividade da migração não forem aceitáveis, considere migrar para a Instância Gerenciada do SQL com tempo de inatividade quase nulo ou envie ideias/sugestões de melhoria e outros comentários no fórum da Comunidade do Azure — Serviço de Migração de Banco de Dados do Azure.

  1. Escolha o(s) banco(s) de dados que deseja migrar na lista de bancos de dados disponíveis.

  2. Revise o tempo de inatividade esperado. Se for aceitável, selecione Avançar: Selecionar destino >>

    Source databases

Especifique os detalhes do destino

  1. Na tela Selecionar destino, forneça configurações de autenticação para seu Banco de Dados SQL do Azure.

    Select target

    Nota

    Atualmente, a autenticação SQL é o único tipo de autenticação suportado.

  2. Selecione Next: Map to target databases screen, mapeie o banco de dados de origem e de destino para migração.

    Se o banco de dados de destino contiver o mesmo nome de banco de dados que o banco de dados de origem, o Serviço de Migração de Banco de Dados do Azure selecionará o banco de dados de destino por padrão.

    Map to target databases

  3. Selecione Seguinte: Definições de migração de configuração, expanda a listagem de tabelas e, em seguida, reveja a lista de campos afetados.

    O Serviço de Migração de Banco de Dados do Azure seleciona automaticamente todas as tabelas de origem vazias existentes na instância de destino do Banco de Dados SQL do Azure. Se quiser voltar a emigrar tabelas que já incluem dados, tem de selecionar explicitamente as tabelas neste painel.

    Select tables

  4. Selecione Avançar: Resumo, revise a configuração da migração e, na caixa de texto Nome da atividade, especifique um nome para a atividade de migração.

    Choose validation option

Execute a migração

  • Selecione Iniciar migração.

    É apresentada a janela de atividade da migração e o Estado da atividade é Pendente.

    Activity Status

Monitorize a migração

  1. 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.

    Activity Status Completed

  2. Verifique o(s) banco(s) de dados de destino no Banco de Dados SQL do Azure de destino.

Recursos adicionais