Compartilhar via


Tutorial: Migrar o SQL Server para o SQL Server em uma Máquina Virtual do Azure com o DMS do Azure (offline)

Você pode usar o Azure DMS (Serviço de Migração de Banco de Dados do Azure) por meio do portal do Azure para migrar bancos de dados de uma instância local do SQL Server para o que é o SQL Server em Máquinas Virtuais do Windows do Azure? (VM do Azure) com tempo de inatividade mínimo.

Para conhecer os métodos de migração de banco de dados que podem exigir configuração manual, consulte Migração da instância do SQL Server para o SQL Server nas Máquinas Virtuais do Azure.

Neste tutorial, você migrará o AdventureWorks2025 banco de dados de uma instância local do SQL Server para um SQL Server na VM do Azure com tempo de inatividade mínimo, usando o DMS do Azure.

Observação

Este tutorial usa o modo de migração offline, que inclui algum tempo de inatividade aceitável durante o processo de migração. Para obter opções de migração online, consulte Tutorial: Migrar o SQL Server para o SQL Server em uma Máquina Virtual do Azure com o DMS do Azure (online).

Neste tutorial, você aprenderá como:

  • Inicie o assistente Migrar para SQL do Azure no portal do Azure.
  • Especifique os detalhes do SQL Server de origem, do local de backup e do SQL Server de destino na VM do Azure.
  • Configure o assistente para acessar o servidor de origem e backups.
  • Inicie e monitore o progresso da migração.
  • Realizar a substituição da migração quando você estiver pronto.

Opções de migração

A seção a seguir descreve como usar o Serviço de Migração de Banco de Dados do Azure com a extensão de migração do SQL do Azure ou no portal do Azure.

Pré-requisitos

Antes de começar o tutorial:

  • Verifique se você pode acessar o portal do Azure.

  • Verifique se o provedor de recursos Microsoft.DataMigration está registrado em sua assinatura.

  • Tenha uma conta do Azure atribuída a uma das seguintes funções internas:

    • Colaborador para a instância de destino do SQL Server em uma VM do Azure e para a conta de armazenamento em que você carrega seus arquivos de backup de banco de dados de um compartilhamento de rede do SMB (Server Message Block).

    • Função de leitor para o grupo de recursos do Azure que contém a instância de destino do SQL Server em uma VM do Azure ou para sua conta de Armazenamento do Azure.

    • Função de proprietário ou colaborador para a assinatura do Azure.

    • Como alternativa ao uso de uma dessas funções internas, você pode atribuir funções personalizadas.

    Quando você usa o portal do Azure para migrar, o usuário conectado deve ter acesso ao Leitor de Dados de Blob de Armazenamento no contêiner de blob que contém os arquivos de backup para poder listar arquivos e pastas durante a instalação da migração.

  • Crie uma instância de destino do SQL Server nas Máquinas Virtuais do Azure.

    Se você tiver uma VM do Azure existente, registre-a na extensão do Agente IaaS do SQL Server no modo de gerenciamento completo.

  • Verifique se os logons usados para se conectar à instância do SQL Server de origem são membros da função de servidor sysadmin ou têm CONTROL SERVER permissão.

  • Forneça um compartilhamento de rede SMB, um compartilhamento de arquivos da conta de Armazenamento do Azure ou um contêiner de blob da conta de Armazenamento do Azure que contenha seus arquivos de backup de banco de dados completos e arquivos de backup de log de transações subsequentes. O DMS do Azure usa o local de backup durante a migração de banco de dados.

    • Sempre use uma conta de armazenamento dedicada para migração. Compartilhá-lo com outras cargas de trabalho pode levar a conflitos e riscos de segurança.

    • Depois que a migração for concluída, gire a Chave da Conta de Armazenamento para manter os backups seguros ou exclua a conta de armazenamento se ela não for mais necessária.

    • O DMS do Azure não faz backups de banco de dados e não inicia nenhum backup de banco de dados em seu nome. Em vez disso, o serviço usa arquivos de backup de banco de dados existentes para a migração.

    • Se os arquivos de backup do banco de dados estiverem em um compartilhamento de rede SMB, crie uma conta de Armazenamento do Azure que permita que o DMS do Azure carregue os arquivos de backup do banco de dados e migre bancos de dados. Crie a conta de Armazenamento do Azure na mesma região em que você cria sua instância do DMS do Azure.

    • Você pode gravar cada backup em um arquivo de backup separado ou em vários arquivos de backup. Não há suporte para acrescentar vários backups, como logs completos e de transações, em apenas uma mídia de backup.

    • É possível fornecer backups compactados para reduzir a probabilidade de ocorrência de problemas potenciais associados à migração de backups de grande porte.

  • Verifique se a conta de serviço executando a instância de SQL Server de origem tem permissões de leitura e gravação no compartilhamento de rede SMB que contém arquivos de backup de banco de dados.

  • Se você estiver migrando um banco de dados protegido pela TDE (transparent Data Encryption), migre o certificado da instância do SQL Server de origem para o SQL Server em uma VM do Azure antes de migrar dados. Para obter mais informações, consulte Mover um banco de dados protegido por TDE para outro SQL Server.

    Dica

    Se o banco de dados contiver dados confidenciais protegidos pelo Always Encrypted, o processo de migração migrará automaticamente suas chaves Always Encrypted para sua instância de destino do SQL Server em uma VM do Azure.

  • Se os backups de banco de dados estiverem em um compartilhamento de arquivos de rede, forneça um computador no qual você possa instalar um runtime de integração auto-hospedada para acessar e migrar backups de banco de dados. O assistente de migração fornece o link de download e as chaves de autenticação para baixar e instalar seu runtime de integração auto-hospedada.

    Em preparação para a migração, verifique se o computador de instalação do runtime de integração auto-hospedada tem as seguintes regras de firewall de saída e nomes de domínio habilitados:

    Nomes de domínios Porta de saída Description
    Nuvem pública: {datafactory}.{region}.datafactory.azure.net
    ou*.frontend.clouddatahub.net

    Azure Governamental: {datafactory}.{region}.datafactory.azure.us
    Microsoft Azure operado pela 21Vianet: {datafactory}.{region}.datafactory.azure.cn
    443 Exigido pelo runtime de integração auto-hospedada para se conectar ao DMS do Azure.
    Para um data factory recém-criado em uma nuvem pública, localize o FQDN (nome de domínio totalmente qualificado) da chave do runtime de integração auto-hospedada, no formato {datafactory}.{region}.datafactory.azure.net.
    Para um data factory existente, se você não vir o FQDN na chave de integração auto-hospedada, use *.frontend.clouddatahub.net.
    download.microsoft.com 443 Exigido pelo runtime de integração auto-hospedada para fazer o download das atualizações. Se você desabilitar a atualização automática, poderá ignorar a configuração desse domínio.
    *.core.windows.net 443 Usado pelo runtime de integração auto-hospedada que se conecta à conta de Armazenamento do Azure para carregar backups de banco de dados do seu compartilhamento de rede

    Dica

    Se você já armazenar seus arquivos de backup de banco de dados em uma conta de Armazenamento do Azure, não precisará de um runtime de integração auto-hospedada durante o processo de migração.

  • Se você usa um runtime de integração auto-hospedada, certifique-se de que o computador onde o runtime está instalado possa se conectar à instância do SQL Server de origem e ao compartilhamento de arquivo de rede onde os arquivos de backup estão localizados.

  • Habilite a porta de saída 445 para permitir o acesso ao compartilhamento de arquivo de rede. Para saber mais, confira recomendações para usar um runtime de integração auto-hospedada.

  • Se você estiver usando o DMS do Azure pela primeira vez, verifique se o Microsoft.DataMigrationprovedor de recursos está registrado em sua assinatura.

Iniciar uma nova migração

Este tutorial descreve uma migração offline do SQL Server para o SQL Server em uma VM do Azure.

Para iniciar uma nova migração:

  1. Acesse o Serviço de Migração de Banco de Dados do Azure no portal do Azure. Use +Criar para criar uma nova instância do Serviço de Migração de Banco de Dados ou selecione uma instância existente. Em seguida, vá para a instância do Serviço de Migração de Banco de Dados.

  2. No painel Visão geral da instância do DMS do Azure, selecione Nova migração.

  3. Em Selecionar novo cenário de migração , escolha sua origem, tipo de servidor de destino, local de armazenamento de arquivos de backup, modo de migração como migração offline e escolha Selecionar.

    Seus backups de banco de dados podem estar localizados em um compartilhamento de rede local ou em um contêiner de blob do Armazenamento do Azure.

    Captura de tela do novo cenário de migração.

    No modo de migração offline, o banco de dados do SQL Server de origem não deve ser usado para atividade de gravação enquanto os arquivos de backup do banco de dados são restaurados na instância de destino do SQL Server em uma VM do Azure. O tempo de inatividade do aplicativo persiste do início até a conclusão do processo de migração.

  4. No Assistente de Migração Online de Blobs do SQL Azure Virtual Machine, siga estas etapas:

    1. Na guia Detalhes da origem , insira detalhes para a instância do SQL Server de origem e selecione Avançar: Conectar-se ao SQL Server de origem.

    2. Na guia Selecionar destino de migração , insira detalhes para a assinatura, o grupo de recursos e a VM do SQL Server de destino. Em seguida, selecione Avançar: Configuração da fonte de dados.

      Captura de tela do assistente de migração de blobs offline.

      • Sempre use uma conta de armazenamento dedicada para migração. Compartilhá-lo com outras cargas de trabalho pode levar a conflitos e riscos de segurança.

      • Depois que a migração for concluída, gire a Chave da Conta de Armazenamento para manter os backups seguros ou exclua a conta de armazenamento se ela não for mais necessária.

      • O DMS do Azure não faz backups de banco de dados e não inicia nenhum backup de banco de dados em seu nome. Em vez disso, o serviço usa arquivos de backup de banco de dados existentes para a migração.

      • Se os arquivos de backup do banco de dados estiverem em um compartilhamento de rede SMB, crie uma conta de Armazenamento do Azure que permita que o DMS do Azure carregue os arquivos de backup do banco de dados e migre bancos de dados. Crie a conta de Armazenamento do Azure na mesma região em que você cria sua instância do DMS do Azure.

      • Você pode gravar cada backup em um arquivo de backup separado ou em vários arquivos de backup. Não há suporte para acrescentar vários backups, como logs completos e de transações, em apenas uma mídia de backup.

      • É possível fornecer backups compactados para reduzir a probabilidade de ocorrência de problemas potenciais associados à migração de backups de grande porte.

    3. Na etapa de configuração da fonte de dados, selecione o local dos backups do banco de dados. Seus backups de banco de dados podem estar localizados em um compartilhamento de rede local ou em um contêiner de blob do Armazenamento do Azure.

      Se você fornecer backups de banco de dados em um compartilhamento de rede local, configure um runtime de integração auto-hospedado na etapa seguinte do assistente. Você precisa de um runtime de integração auto-hospedada para acessar os backups do banco de dados de origem, verificar a validade do conjunto de backup e carregar backups na conta de armazenamento do Azure. Se os backups de banco de dados já estiverem em um contêiner de blob de armazenamento do Azure, você não precisará de um runtime de integração autogerenciado.

      • Para backups armazenados em um contêiner de blob do Armazenamento do Azure, insira ou selecione as seguintes informações:

        Nome Description
        Grupo de recursos O grupo de recursos em que os arquivos de backup estão localizados.
        Detalhes da conta de armazenamento A conta de armazenamento em que os arquivos de backup estão localizados.
        Contêiner de blob O contêiner de blob em que os arquivos de backup estão localizados.
        Folder A pasta em que os arquivos de backup estão localizados.
        Último arquivo de backup O nome do arquivo do último backup do banco de dados que você está migrando.
        Nome do banco de dados de destino Você só pode modificar o nome do banco de dados de destino durante o processo de migração.

        Se a funcionalidade de verificação de loopback estiver habilitada e o SQL Server de origem e o compartilhamento de arquivos estiverem no mesmo computador, a origem não poderá acessar o compartilhamento de arquivos com o FQDN. Para corrigir esse problema, desabilite a funcionalidade de verificação de loopback.

        Captura de tela da configuração da fonte de dados do assistente de migração de blobs offline.

      • Para backups localizados em um compartilhamento de rede, insira as seguintes informações adicionais nas respectivas páginas.

        Nome Description
        Nome do servidor de origem O FQDN ou o IP do servidor de origem. Verifique se a conta de serviço que executa a instância do SQL Server de origem tem privilégios de leitura no compartilhamento de rede.
        Tipo de Autenticação Selecione o tipo de autenticação: SQL ou Windows
        Credenciais de origem - nome de usuário A credencial (autenticação do Windows e de SQL) para se conectar à instância do SQL Server de origem e validar os arquivos de backup.
        Credenciais de origem - senha A credencial (autenticação do Windows e de SQL) para se conectar à instância do SQL Server de origem e validar os arquivos de backup.
        Local de compartilhamento de rede que contém os backups O local de compartilhamento de rede que contém os arquivos de backup completos e de logs de transações. O processo de migração ignora automaticamente arquivos inválidos ou arquivos de backup no compartilhamento de rede que não pertencem ao conjunto de backup válido.
        Conta de usuário do Windows com acesso de leitura ao local de compartilhamento de rede A credencial do Windows (nome de usuário) que tem acesso de leitura ao compartilhamento de rede para recuperar os arquivos de backup.
        Senha A credencial do Windows (senha) que tem acesso de leitura ao compartilhamento de rede para recuperar os arquivos de backup.
        Nome do banco de dados de destino Você só pode modificar o nome do banco de dados de destino durante o processo de migração.

Cenários de armazenamento de backup

A extensão de migração do SQL do Azure para o Azure Data Studio não requer configurações específicas nas configurações de rede da conta de Armazenamento do Azure para migrar seus bancos de dados do SQL Server para o Azure.

Verifique se os recursos podem acessar a conta de Armazenamento do Azure. Dependendo do local de backup do banco de dados e das configurações de rede de conta de armazenamento desejadas, consulte a tabela a seguir para os vários cenários de migração e configurações de rede:

Scenario Compartilhamento de rede SMB Contêiner da conta de Armazenamento do Microsoft Azure
Habilitado de todas as redes Sem etapas extras Sem etapas extras
Habilitado a partir das redes virtuais e endereços IP selecionados SHIR (runtime de integração auto-hospedada) local Backups armazenados no contêiner do Armazenamento do Azure
Habilitado em redes virtuais selecionadas e endereços IP + ponto de extremidade privado SHIR (runtime de integração auto-hospedada) da VM do Azure Backups armazenados no contêiner de Armazenamento do Azure (ponto de extremidade privado)

SHIR (runtime de integração local auto-hospedada)

Se você instalar o SHIR em sua rede local, siga estas etapas:

  1. Conecte-se ao portal do Azure a partir do computador SHIR.

  2. Abra sua conta de Armazenamento do Azure e vá para o painel Rede .

  3. Verifique se o acesso à rede pública está definido como Habilitado em redes virtuais selecionadas e endereços IP.

  4. Na seção Firewall , selecione a caixa de seleção Adicionar o endereço IP do cliente .

  5. Insira o endereço IP do cliente do computador host e selecione Salvar.

Criar uma instância do Serviço de Migração de Banco de Dados

Etapa 1: no portal do Azure, navegue até a página do Serviço de Migração de Banco de Dados do Azure. Crie uma nova instância do Serviço de Migração de Banco de Dados do Azure ou reutilize uma instância existente criada anteriormente.

Usar uma instância existente do Serviço de Migração de Banco de Dados

Para usar uma instância existente do Serviço de Migração de Banco de Dados:

  • No portal do Azure, em os Serviços de Migração de Banco de Dados do Azure, selecione uma instância existente do Serviço de Migração de Banco de Dados a ser usada, garantindo que ela esteja presente no Grupo de Recursos e na região corretos.

    Captura de tela que mostra a visão geral do Serviço de Migração de Banco de Dados.

Criar uma instância do Serviço de Migração de Banco de Dados

Para criar uma instância do Serviço de Migração de Banco de Dados:

  1. No portal do Azure, em Serviço de Migração de Banco de Dados do Azure, selecione Criar.

    Captura de tela que mostra a opção criar do Serviço de Migração de Banco de Dados.

  2. Em Selecionar cenário de migração e Serviço de Migração de Banco de Dados, selecione a entrada desejada, como o tipo de servidor de Origem e de Destino, selecione o Serviço de Migração de Banco de Dados e Selecionar.

    Captura de tela que mostra cenários de migração do Serviço de Migração de Banco de Dados.

  3. Na próxima tela Criar Serviço de Migração de Dados, selecione sua assinatura e grupo de recursos, selecione Locale insira o nome do Serviço de Migração de Banco de Dados. Selecione Examinar + criar. Isso cria o Serviço de Migração de Banco de Dados do Azure.

    Captura de tela que mostra os detalhes de entradas obrigatórias do Serviço de Migração de Banco de Dados.

  4. Se o SHIR (runtime de integração auto-hospedada) for requerido, na página de visão geral do Serviço de Migração de Banco de Dados e em Configurações, selecione Runtime de Integração e conclua as etapas a seguir:

    1. Selecione Configurar o runtime de integração e escolha o link Baixar e instalar o runtime de integração, para abrir o link de download em um navegador da Web. Baixe o runtime de integração e instale-o em um computador que atenda aos pré-requisitos para se conectar à instância do SQL Server de origem. Para obter mais informações, consulte as Recomendações do SHIR.

      Captura de tela que mostra o link Baixar e instalar o runtime de integração.

      Quando a instalação for concluída, o Microsoft Integration Runtime Configuration Manager será aberto automaticamente para dar início ao processo de registro.

    2. Na tabela de chaves de autenticação, copie uma das chaves de autenticação fornecidas no assistente e cole-a no Microsoft Integration Runtime Configuration Manager.

      Captura de tela que realça a tabela de chaves de autenticação no assistente.

      Se a chave de autenticação for válida, um ícone de verificação verde aparecerá no Integration Runtime Configuration Manager. Uma verificação verde indica que você pode continuar a Registrar.

      Depois de registrar o runtime de integração auto-hospedada, feche o Microsoft Integration Runtime Configuration Manager. Pode levar vários minutos para refletir os detalhes do Nó no portal do Azure para o Serviço de Migração de Banco de Dados, em Configurações > Runtime de integração.

      Captura de tela que destaca o status do SHIR no portal do Azure.

      Observação

      Para obter mais informações sobre o runtime de integração auto-hospedada, consulte Criar e configurar um runtime de integração auto-hospedada.

Iniciar a migração de banco de dados

Na guia Resumo da migração do banco de dados, examine os detalhes e selecione Iniciar migração. O serviço inicia a migração de banco de dados e o leva automaticamente de volta ao painel do DMS do Azure.

Captura de tela do resumo da migração de dados do assistente de migração de blobs offline.

Monitorar a migração de banco de dados

  1. Para monitorar a migração de banco de dados, no painel Visão geral da instância do DMS, selecione Monitorar migrações.

  2. Na guia Migrações, acompanhe as migrações que estão em andamento, que foram concluídas e que falharam (se houver) ou exiba todas as migrações de banco de dados. Na barra de menus, selecione Atualizar para atualizar o status da migração.

    Captura de tela do monitoramento da migração.

O DMS do Azure retorna o status de migração mais recente conhecido sempre que o status de migração for atualizado. A seguinte tabela descreve os possíveis status:

Situação Description
Chegou O arquivo de backup foi recebido no local de backup de origem e validado.
Carregando O runtime de integração está carregando o arquivo de backup no armazenamento do Azure.
Carregado O arquivo de backup foi carregado no armazenamento do Azure.
Restaurando O serviço está restaurando o arquivo de backup para o SQL Server em uma VM do Azure.
Restaurado O arquivo de backup foi restaurado com êxito no SQL Server em uma VM do Azure.
Cancelada O processo de migração foi cancelado.
Ignorado O arquivo de backup foi ignorado pois não pertence a uma cadeia de backup de banco de dados válida.

Depois que todos os backups de banco de dados são restaurados na instância do SQL Server em uma VM do Azure, o DMS do Azure inicia uma substituição de migração automática para garantir que o banco de dados migrado esteja pronto para uso. O status da migração muda de Em andamento para Êxito.

Limitações

Se você migrar um banco de dados individual, deverá colocar os backups de banco de dados em uma estrutura de arquivo simples dentro de uma pasta de banco de dados (incluindo a pasta raiz do contêiner). Não é possível aninhar essas pastas, pois não há suporte para aninhamento.

Quando migra vários bancos de dados usando o mesmo contêiner do Armazenamento de Blobs do Azure, você deve colocar os arquivos de backup de bancos de dados diferentes em pastas separadas dentro do contêiner.

Você não pode substituir bancos de dados existentes em seu SQL Server de destino em uma VM do Azure usando DMS.

O DMS do Azure não dá suporte à configuração de alta disponibilidade e recuperação de desastre em seu destino para corresponder à topologia de origem.

Não há suporte para os seguintes objetos do servidor:

  • trabalhos do SQL Server Agent
  • Credentials
  • Pacotes do SSIS (SQL Server Integration Services)
  • Auditoria de servidor

Você não pode usar um runtime de integração auto-hospedada existente criado a partir do ADF (Azure Data Factory) para migrações de banco de dados com DMS. Inicialmente, você deve criar o runtime de integração auto-hospedada usando a extensão de migração do SQL do Azure no Azure Data Studio. Você pode reutilizá-lo para migrações de banco de dados adicionais.

VMs com versões de destino do SQL Server 2008 e anteriores não têm suporte ao migrar para o SQL Server em uma VM do Azure.

Se você usar uma VM com o SQL Server 2012 ou o SQL Server 2014, precisará armazenar os arquivos de backup do banco de dados de origem em um contêiner de blob do Armazenamento do Azure em vez de usar a opção de compartilhamento de rede. Armazene os arquivos de backup como blobs de página, pois os blobs de blocos só têm suporte no SQL Server 2016 e versões posteriores.

Você deve verificar se a Extensão do Agente IaaS do SQL Server na VM do Azure de destino está no modo Completo em vez do modo Lightweight.

Migração para VM SQL do Azure usando DMS utiliza internamente o agente IaaS do SQL Server. A Extensão do Agente IaaS do SQL Server dá suporte apenas ao gerenciamento de instância de servidor padrão ou instância nomeada única.

Você pode migrar no máximo 100 bancos de dados para a mesma VM do Azure que o destino usando uma ou mais migrações simultaneamente. Além disso, depois que uma migração com 100 bancos de dados for concluída, aguarde pelo menos 30 minutos antes de iniciar uma nova migração para o mesmo SQL Server em uma VM do Azure que o destino. Além disso, cada operação de migração (início da migração, substituição) para cada banco de dados levará alguns minutos sequencialmente. Por exemplo, para migrar 100 bancos de dados, pode levar aproximadamente 200 (2 x 100) minutos para criar as filas de migração e aproximadamente 100 (1 x 100) minutos para recortar todos os 100 bancos de dados (excluindo o tempo de backup e restauração). Portanto, a migração se torna mais lenta à medida que o número de bancos de dados aumentar. Você deve agendar uma janela de migração mais longa com antecedência com base em testes de migração rigorosos ou particionar um grande número de bancos de dados em lotes ao migrar para o SQL Server em uma VM do Azure.

Além de configurar a Rede/Firewall da sua conta de Armazenamento do Azure para permitir que sua VM acesse arquivos de backup, você também precisa configurar a Rede/Firewall do SQL Server em uma VM do Azure para permitir a conexão de saída com sua conta de armazenamento.

Você precisa manter a VM do Azure de destino ativada enquanto a migração do SQL Server está em andamento. Além disso, ao criar uma nova migração, faça failover ou cancele a migração.

Possíveis mensagens de erro

Falha no logon do usuário NT Service\SQLIaaSExtensionQuery

Erro: Login failed for user 'NT Service\SQLIaaSExtensionQuery

Motivo: a instância do SQL Server está no modo de usuário único. Um motivo possível é que a VM do SQL Server de destino está no modo de atualização.

Solução: aguarde até que a VM do SQL Server de destino saia do modo de atualização e inicie a migração novamente.

Falha ao criar o trabalho de restauração

Erro: Ext_RestoreSettingsError, message: Failed to create restore job.;Cannot create file 'F:\data\XXX.mdf' because it already exists.

Solução: conecte-se à VM do SQL Server de destino e exclua o XXX.mdf arquivo. Em seguida, inicie a migração novamente.