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:

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

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

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

    Avaliar migração de dados

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

  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:

    Criar Projeto do Assistente de Migração de Dados

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

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

    Detalhes da Ligação de Origem do Assistente de Migração de Dados

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

    Detalhes da Ligação de Destino do Assistente de Migração de Dados

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

    Gerar scripts do SQL

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

    Script do esquema

  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.

    Implementar o esquema

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. Procure e selecione Subscrições.

    Mostrar subscrições no portal

  2. Selecione a subscrição na qual pretende criar a instância de Azure Database Migration Service e, em seguida, selecione Fornecedores de recursos.

    Mostrar fornecedores de recursos

  3. Procure migração e, em seguida, selecione Registar para Microsoft.DataMigration.

    Registar fornecedor de recursos

Criar uma instância do Azure Database Migration Service

  1. No menu portal do Azure ou na Home page, selecione Criar um recurso. Procure e selecione Azure Database Migration Service.

    Azure Marketplace

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

    Criar instância do Azure Database Migration Service

    Selecione o tipo de servidor de Origem adequado e Tipo de servidor de destino e escolha a opção Database Migration Service (Clássico).

    Selecionar Database Migration Service cenário (Clássico)

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

    Configurar as definições básicas da instância Azure Database Migration Service

    • Selecione Seguinte: Rede.
  4. 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.

    Configurar Azure Database Migration Service definições de rede de instâncias

    • 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:

    O serviço de migração foi criado

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 portal do Azure, selecione Todos os serviços. Procure e selecione Azure Database Migration Services.

    Localizar todas as instâncias de Azure Database Migration Service

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

  3. Selecione Novo Projeto de Migração.

    Localize a sua instância de Azure Database Migration Service

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

    Criar Projeto do Azure Database Migration Service

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

Especificar os detalhes da origem

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

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

    Detalhes da Origem

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

  1. Escolha as bases de dados que pretende migrar a partir da lista de bases de dados disponíveis.

  2. Reveja o período de indisponibilidade esperado. Se for aceitável, selecione Seguinte: Selecionar destino >>

    Bases de dados de origem

Especificar os detalhes do destino

  1. No ecrã Selecionar destino, forneça definições de autenticação à base de dados SQL do Azure.

    Selecionar destino

    Nota

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

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

    Mapear para as bases de dados de destino

  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.

    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.

    Selecionar tabelas

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

    Escolher a opção de validação

Executar a migração

  • Selecione Iniciar migração.

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

    Estado da Atividade

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

    Estado da Atividade Concluída

  2. Verifique as bases de dados de destino no destino SQL do Azure Base de Dados.

Recursos adicionais