Guia de migração: de SQL Server SQL para a Instância Gerenciada de SQL do Azure

Aplica-se a:Instância Gerenciada de SQL do Azure

Este guia ajuda a migrar a instância do SQL Server para a Instância Gerenciada de SQL do Azure.

Você pode migrar o SQL Server em execução no local ou em:

  • SQL Server em Máquinas Virtuais
  • Amazon EC2 (Nuvem de Computação Elástica)
  • Amazon RDS (Serviço de Banco de Dados Relacional) para SQL Server
  • Google Compute Engine
  • SQL de Nuvem para SQL Server – GCP (Google Cloud Platform)

Para obter mais informações de migração, confira visão geral da migração. Para obter outros guias de migração, confira Migração de banco de dados.

Migration process flow

Pré-requisitos

Para migrar seu SQL Server para a Instância Gerenciada de SQL do Azure, certifique-se de:

Pré-migração

Depois de verificar se o ambiente de origem tem suporte, comece com a fase de pré-migração. Descubra todas as fontes de dados existentes, avalie a viabilidade da migração e identifique problemas de bloqueio que possam impedir a migração.

Descobrir

Na fase de descoberta, examine a rede para identificar todas as Instâncias do SQL Server e os recursos usados pela sua organização.

Use Migrações para Azure para avaliar a adequação da migração de servidores locais, executar o dimensionamento com base no desempenho e fornecer estimativas de custo para executá-las no Azure.

Como alternativa, use oKit de ferramentas de avaliação e planejamento da Microsoft (o “MAP Toolkit”) para avaliar a infraestrutura de TI atual. O kit de ferramentas fornece uma poderosa ferramenta de inventário, avaliação e relatório para simplificar o processo de planejamento de migração.

Para obter mais informações sobre as ferramentas disponíveis para usar na fase de descoberta, confira Serviços e ferramentas disponíveis para cenários de migração de dados.

Depois que as fontes de dados foram descobertas, avalie as instâncias do SQL Server local que podem migrar para a Instância Gerenciada de SQL do Azure para identificar bloqueadores de migração ou problemas de compatibilidade. Prossiga para as etapas a seguir para avaliar e migrar bancos de dados para a Instância Gerenciada de SQL do Azure:

Steps for migration to Azure SQL Managed Instance

Avaliar

Observação

Se você estiver avaliando todo o conjunto de dados do SQL Server em escala no VMware, use o Migrações para Azure para obter recomendações de implantação do SQL do Azure, dimensionamento de destino e estimativas mensais.

Determine se a Instância Gerenciada de SQL é compatível com os requisitos de banco de dados do aplicativo. A Instância Gerenciada de SQL é projetada para fornecer migração lift-and-shift fácil para a maioria dos aplicativos existentes que utilizam o SQL Server. No entanto, por vezes são necessários recursos ou funcionalidades ainda não compatíveis e o custo para implementar uma solução alternativa é muito alto.

A extensão de migração de SQL do Azure para Azure Data Studio fornece uma experiência baseada em assistente contínuo para avaliar, obter recomendações do Azure do tamanho certo e migrar seu banco de dados do SQL Server local para SQL Server em Máquinas Virtuais do Azure. Além disso, destacando quaisquer bloqueadores de migração ou avisos, a extensão também inclui uma opção de recomendações do Azure para coletar dados de desempenho dos bancos de dados para recomendar um Instância Gerenciada de SQL do Azure de tamanho correto para atender às necessidades de desempenho da carga de trabalho (com o menor preço).

Você pode usar a extensão da Migração do SQL do Azure para o Azure Data Studio para avaliar os bancos de dados a serem obtidos:

Para avaliar o ambiente usando a extensão Migração do SQL do Azure, siga estas etapas:

  1. Abra a extensão Migração do SQL do Azure para Azure Data Studio.
  2. Conecte-se à instância do SQL Server de origem
  3. Clique no botão Migrar para SQL do Azure, no assistente de Migração de SQL do Azure no Azure Data Studio
  4. Selecione bancos de dados para avaliação e clique em avançar
  5. Selecione seu destino do SQL do Azure, nesse caso, a Instância Gerenciada de SQL do Azure
  6. Clique em Exibir/Selecionar para examinar o relatório de avaliação
  7. Procure problemas de bloqueio de migração e paridade de recursos. O relatório de avaliação também pode ser exportado para um arquivo que pode ser compartilhado com outras equipes ou pessoal da sua organização.
  8. Determine o nível de compatibilidade do banco de dados que minimiza os esforços após a migração.

Para obter uma recomendação do Azure usando a extensão Migração do SQL do Azure, siga estas etapas:

  1. Abra a extensão Migração do SQL do Azure para Azure Data Studio.
  2. Conecte-se à instância do SQL Server de origem
  3. Clique no botão Migrar para SQL do Azure, no assistente de Migração de SQL do Azure no Azure Data Studio
  4. Selecione bancos de dados para avaliação e clique em avançar
  5. Selecione seu destino do SQL do Azure, nesse caso, a Instância Gerenciada de SQL do Azure
  6. Navegue até as seções de recomendações do Azure e clique em Obter recomendação do Azure
  7. Selecione Coletar dados de desempenho agora. Selecione uma pasta no computador local para armazenar os logs de desempenho e selecione Iniciar.
  8. Após 10 minutos, o Azure Data Studio indica que uma recomendação está disponível para a Instância Gerenciada de SQL do Azure.
  9. Verifique o cartão Instância Gerenciada de SQL do Azure, no painel de destino do SQL do Azure para examinar sua recomendação de SKU da Instância Gerenciada de SQL do Azure

Para obter mais informações, confira Tutorial: Migrar o SQL Server para a Instância Gerenciada de SQL do Azure online usando o Azure Data Studio.

Para obter mais informações, confira Tutorial: Migrar o SQL Server para a Instância Gerenciada de SQL do Azure offline usando o Azure Data Studio.

Se a avaliação encontrar vários bloqueadores que confirmam que o banco de dados não está pronto para uma migração da Instância Gerenciada de SQL do Azure, considere como opção:

Avaliações e análises dimensionadas

A extensão Migração do SQL do Azure para Azure Data Studio e as Migrações para Azure dão suporte à execução de avaliações dimensionadas e à consolidação dos relatórios de avaliação para análise.

Se você tiver vários servidores e bancos de dados que precisam ser avaliados e analisados em escala para fornecer uma visão mais ampla do estado dos dados, confira os seguintes links para saber mais:

Importante

A execução de avaliações em escala para vários bancos de dados também pode ser automatizada usando o Utilitário de Linha de Comando do AMD que permite o carregamento dos resultados para as Migrações para Azure para análise adicional e preparação de destino.

Implantar em uma instância gerenciada de tamanho ideal

Você pode usar a extensão de migração SQL do Azure para o Azure Data Studio para obter a recomendação de Instância Gerenciada de SQL do Azure de tamanho correto. A extensão coleta dados de desempenho de sua instância de SQL Server de origem para fornecer recomendações do Azure de tamanho correto que atendam às necessidades de desempenho da carga de trabalho com custo mínimo. Para saber mais, confira Obter recomendação do Azure de tamanho correto para seus bancos de dados locais do SQL Server

Com base nas informações das etapas de descoberta e de avaliação, crie uma Instância Gerenciada de SQL de destino com o tamanho adequado. Você pode fazer isso usando o portal do Azure, o PowerShell ou um Modelo de ARM (Azure Resource Manager).

A instância gerenciada de SQL é adaptada para cargas de trabalho locais cuja movimentação para a nuvem é planejada. Ela introduz um modelo de compra que oferece maior flexibilidade na seleção do nível certo de recursos para as cargas de trabalho. No ambiente local, você provavelmente está acostumado a dimensionar essas cargas de trabalho usando núcleos físicos e largura de banda de E/S. O modelo de compra para a instância gerenciada baseia-se em núcleos virtuais, ou “vCores”, com armazenamento adicional e E/S disponíveis separadamente. O modelo vCore é uma maneira mais simples de compreender os requisitos de computação na nuvem em relação ao que você utiliza no local atualmente. Esse modelo de compra permite que você dimensione adequadamente o ambiente de destino na nuvem. Algumas diretrizes gerais que podem ajudá-lo a escolher a camada de serviço e as características certas são descritas aqui:

  • Com base no uso da CPU de linha de base, é possível provisionar uma instância gerenciada que corresponda ao número de núcleos que você está usando em SQL Server, tendo em mente que as características da CPU talvez precisem ser dimensionadas para corresponder às características da VM em que a instância gerenciada está instalada.
  • Com base no uso de memória de linha de base, escolha a camada de serviço que tem memória correspondente. Não é possível escolher a quantidade de memória diretamente. Por isso, é preciso selecionar a instância gerenciada com a quantidade de vCores com memória correspondente (por exemplo, 5.1 GB/vCore na série Standard [Gen5]).
  • Com base na latência de E/S da linha de base do subsistema de arquivos, escolha entre as camadas de serviço Uso Geral (latência maior que 5 ms) e Comercialmente Crítico (latência menor que 3 ms).
  • Com base na taxa de transferência de linha de base, aloque previamente o tamanho dos arquivos de dados ou de log para obter o desempenho esperado de E/S.

É possível selecionar recursos de armazenamento e computação em tempo de implantação e, depois, alterá-lo sem introduzir tempo de inatividade no aplicativo usando o portal do Azure:

Managed Instance Sizing

Para saber como criar a infraestrutura de VNet e uma instância gerenciada, confira Criar uma instância gerenciada.

Importante

É importante manter a VNet e a sub-rede de destino de acordo com os requisitos da VNet da instância gerenciada. Qualquer incompatibilidade pode impedi-lo de criar novas instâncias ou utilizar aquelas que você já criou. Saiba mais sobre a criação de novas redes e a configuração de redes existentes.

Migrar

Depois de concluir as tarefas associadas a fase de pré-migração, você está pronto para executar o esquema e a migração de dados.

Migre os dados usando o método de migração escolhido.

A Instância Gerenciada de SQL destina-se a cenários de usuários que requerem migração de banco de dados em massa a partir de implementações de bancos de dados VM ou locais. Essa é a escolha ideal quando for necessário fazer lift-and-shift do back-end dos aplicativos que utilizam regularmente as funcionalidades entre banco de dados e/ou nível de instância. Se este é o seu cenário, você pode mover uma instância inteira para um ambiente correspondente no Azure sem a necessidade de arquitetar novamente seus aplicativos.

Para mover instâncias do SQL, é necessário planejar atentamente:

  • A migração de todos os bancos de dados que precisam ser colocados (os que estão executando na mesma instância).
  • A migração de objetos de nível de instância dos quais seu aplicativo depende, incluindo logons, credenciais, trabalhos e operadores do SQL Agent e gatilhos de nível de servidor.

A Instância Gerenciada de SQL é um serviço gerenciado que permite delegar algumas das atividades regulares do DBA para a plataforma conforme são inseridas. Portanto, alguns dados de nível de instância não precisam ser migrados, como trabalhos de manutenção para backups regulares ou configuração Always On, pois a alta disponibilidade é interna.

Este artigo aborda duas das opções de migração recomendadas:

  • Extensão de migração do SQL do Azure para Azure Data Studio – migração com tempo de inatividade próximo de zero.
  • RESTORE DATABASE FROM URL nativo - usa backups nativos do SQL Server e requer algum tempo de inatividade.

Este guia descreve as duas opções mais populares: DMS (Serviço de Migração de Banco de Dados do Azure) e backup e restauração nativos.

Para saber sobre outras ferramentas de migração, consulte comparar opções de migração.

Migrar usando a extensão de migração de SQL do Azure para o Azure Data Studio (tempo de inatividade mínimo)

Para executar uma migração com tempo de inatividade mínimo usando Azure Data Studio, siga as etapas de alto nível abaixo. Para obter um tutorial passo a passo detalhado, consulte Migrar o SQL Server para a Instância Gerenciada de SQL do Azure online usando o Azure Data Studio:

  1. Baixe e instale o Azure Data Studio e a extensão de migração de SQL do Azure.
  2. Iniciar o assistente de migração Migrar para o SQL do Azure na extensão do Azure Data Studio.
  3. Selecione bancos de dados para avaliação e exiba a preparação ou problemas de migração (se houver). Além disso, colete dados de desempenho e obtenha a recomendação de tamanho correto do Azure.
  4. Selecione sua conta do Azure e a Instância Gerenciada de SQL do Azure de destino na sua assinatura.
  5. Selecione o local dos backups de banco de dados. Os backups de banco de dados podem estar localizados em um compartilhamento de rede local ou em um contêiner de Armazenamento de Blobs do Azure.
  6. Crie um novo Serviço de Migração de Banco de Dados do Azure usando o assistente no Azure Data Studio. Se você já criou um Serviço de Migração de Banco de Dados do Azure usando Azure Data Studio, poderá reutilizar o mesmo se desejar.
  7. Opcional: se os backups estiverem em um compartilhamento de rede local, baixe e instale o runtime de integração auto-hospedada em um computador que possa se conectar ao SQL Server de origem e o local que contém os arquivos de backup.
  8. Inicie a migração de banco de dados e monitore o progresso no Azure Data Studio. Você também pode monitorar o progresso no recurso Serviço de Migração de Banco de Dados do Azure no portal do Azure.
  9. Conclua a substituição.
    1. Interromper todas as transações de entrada para o banco de dados de origem.
    2. Faça alterações na configuração do aplicativo para apontar para o banco de dados de destino na Instância Gerenciada de SQL do Azure.
    3. Faça backups de log da parte final do banco de dados de origem no local de backup especificado.
    4. Verifique se todos os backups de banco de dados têm o status Restaurado na página de detalhes de monitoramento.
    5. Selecione Transição completa na página detalhes de monitoramento.

Backup e restauração

Um dos principais recursos da Instância Gerenciada de SQL do Azure para permitir uma migração rápida e fácil de banco de dados é a restauração nativa de arquivos de backup de banco de dados (.bak) armazenados no Armazenamento do Microsoft Azure. O backup e a restauração são operações assíncronas com base no tamanho do banco de dados.

O diagrama a seguir fornece uma visão geral de alto nível do processo:

Diagram shows SQL Server with an arrow labeled BACKUP / Upload to URL flowing to Azure Storage and a second arrow labeled RESTORE from URL flowing from Azure Storage to a SQL Managed Instance.

Observação

O tempo para fazer o backup, carregá-lo no armazenamento do Azure e executar uma operação de restauração nativa para a Instância Gerenciada de SQL do Azure se baseia no tamanho do banco de dados. Fatore um tempo de inatividade que seja suficiente para acomodar a operação para bancos de dados grandes.

A tabela a seguir fornece mais informações sobre os métodos que podem ser utilizados, dependendo da versão do SQL Server de origem em execução:

Etapa Mecanismo SQL e versão Método de backup/restauração
Coloque o backup no Armazenamento do Microsoft Azure Anterior a 2012 SP1 CU2 Upload do arquivo .bak diretamente para o Armazenamento do Microsoft Azure
2012 SP1 CU2 - 2016 Backup direto utilizando a sintaxe WITH CREDENTIAL
2016 e posterior Backup direto utilizando WITH SAS CREDENTIAL
Restaurar do Armazenamento do Microsoft Azure para uma instância gerenciada RESTORE FROM URL com SAS CREDENTIAL

Importante

  • Ao migrar um banco de dados protegido pela Transparent Data Encryption para uma instância gerenciada usando a opção de restauração nativa, o certificado correspondente do SQL Server local ou da VM do Azure precisará ser migrado antes da restauração do banco de dados. Para obter as etapas detalhadas, confira Migrar um certificado TDE para uma instância gerenciada.
  • Não há suporte para restauração de bancos de dados do sistema. Para migrar objetos de nível de instância (armazenados em bancos de dados master ou msdb), recomenda-se fazer o script e executar os scripts T-SQL na instância de destino.

Para migrar usando o backup e a restauração, siga estas etapas:

  1. Faça o backup do banco de dados no Armazenamento de Blobs do Azure. Por exemplo, use o backup para URL no SQL Server Management Studio. Use a Ferramenta do Microsoft Azure para dar suporte a bancos de dados anteriores ao SQL Server 2012 SP1 CU2.

  2. Conecte-se à Instância Gerenciada de SQL do Azure usando o SQL Server Management Studio.

  3. Crie uma credencial usando uma Assinatura de Acesso Compartilhado para acessar a conta de armazenamento de Blobs do Azure com os backups de banco de dados. Por exemplo:

    CREATE CREDENTIAL [https://mitutorials.blob.core.windows.net/databases]
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE'
    , SECRET = 'sv=2017-11-09&ss=bfqt&srt=sco&sp=rwdlacup&se=2028-09-06T02:52:55Z&st=2018-09-04T18:52:55Z&spr=https&sig=WOTiM%2FS4GVF%2FEEs9DGQR9Im0W%2BwndxW2CQ7%2B5fHd7Is%3D'
    
  4. Restaure o backup do contêiner de blobs do Armazenamento do Azure. Por exemplo:

    RESTORE DATABASE [TargetDatabaseName] FROM URL =
      'https://mitutorials.blob.core.windows.net/databases/WideWorldImporters-Standard.bak'
    
  5. Depois que a restauração for concluída, veja o banco de dados no Pesquisador de Objetos do SQL Server Management Studio.

Para saber mais sobre essa opção de migração, consulte Restaurar um banco de dados para a Instância Gerenciada de SQL do Azure com o SSMS.

Observação

Uma operação de restauração do banco de dados é assíncrona e repetível. Você poderá receber um erro no SQL Server Management Studio se a conexão for interrompida ou o tempo limite expirar. O Banco de Dados SQL do Azure continuará tentando restaurar o banco de dados em segundo plano e você poderá acompanhar o progresso da restauração usando as exibições sys.dm_exec_requests e sys.dm_operation_status.

Sincronização de dados e substituição

Ao usar opções de migração que replicam/sincronizam alterações de dados de origem para o destino continuamente, os dados de origem e o esquema podem ser alterados e dessincronizar do destino. Durante a sincronização de dados, certifique-se de que todas as alterações na origem sejam capturadas e aplicadas ao destino durante o processo de migração.

Depois de confirmar que os dados são iguais na origem e no destino, você pode substituir do ambiente de origem para de destino. É importante planejar o processo de substituição com equipes da empresa/aplicativo para garantir que a interrupção mínima durante a substituição não afete a continuidade dos negócios.

Importante

Para obter detalhes sobre as etapas específicas associadas à execução de uma substituição como parte das migrações usando DMS, confira Executar a substituição de migração.

Pós-migração

Depois de concluir com êxito a fase de migração, você passará por uma série de tarefas de pós-migração para garantir que tudo esteja funcionando de maneira estável e eficiente.

A fase pós-migração é essencial para reconciliar eventuais problemas de precisão de dados e verificar a integridade e abordar problemas de desempenho da carga de trabalho.

Monitorar e corrigir aplicativos

Após concluir a migração para uma instância gerenciada, você deve acompanhar o comportamento e o desempenho do aplicativo de sua carga de trabalho. Este processo inclui as seguintes etapas:

Executar testes

A abordagem de teste para a migração de banco de dados consiste nas seguintes atividades:

  1. Desenvolver testes de validação: Para testar a migração do banco de dados, você precisa usar consultas SQL. Você deve criar as consultas de validação para executar nos bancos de dados de origem e de destino. As consultas de validação devem abranger o escopo que você definiu.
  2. Configurar ambiente de teste: O ambiente de teste deve conter uma cópia do banco de dados de origem e do banco de dados de destino. Lembre-se de isolar o ambiente de teste.
  3. Executar testes de validação: Execute os testes de validação na origem e no destino e, em seguida, analise os resultados.
  4. Executar testes de desempenho: Execute o teste de desempenho na origem e no destino e, em seguida, analise e compare os resultados.

Usar recursos avançados

Você pode aproveitar os recursos avançados baseados em nuvem oferecidos pela Instância Gerenciada de SQL do Azure, como alta disponibilidade interna, detecção de ameaças e monitoramento e ajuste da carga de trabalho.

A Análise de SQL do Azure permite monitorar um grande conjunto de instâncias gerenciadas de maneira centralizada.

Alguns recursos do SQL Server só ficam disponíveis quando o nível de compatibilidade do banco de dados é alterado para o nível de compatibilidade mais recente (150).

Próximas etapas