O blog da AWS

Migre o banco de dados SQL Server do Azure SQL Managed Instance para a AWS

Por Yogi Barot e Rita Ladda

 

Você sabia que pode migrar um banco de dados SQL Server do Azure SQL Managed Instance para o SQL Server na Amazon Web Services (AWS) usando um backup COPY_ONLY do Azure SQL Managed Instance? O uso desse método é simples, pois ele copia/move todos os objetos em um banco de dados e suporta todas as edições. No entanto, lembre-se de que esse método só oferece suporte a backup e restauração completos e não oferece suporte a backups diferenciais ou de registros de transações. Há outros métodos que você pode usar para capturar mudanças incrementais durante a migração.Nesta postagem do blog, abordaremos as várias maneiras pelas quais você pode migrar um banco de dados do SQL Server do Azure SQL Managed Instance para o SQL Server na AWS, incluindo o recurso mais recente de backup portability do Azure SQL Managed Instance para o SQL Server 2022.

Por que você deve migrar do Azure SQL Managed Instancepara a AWS?

Embora o  Azure SQL Managed Instance seja uma plataforma totalmente gerenciada compatível com o mecanismo de banco de dados SQL Server 2022 mais recente, a migração para a AWS com o backup COPY_ONLY do SQL Server 2022 tem suas vantagens. Primeiro, ele oferece mais flexibilidade e controle sobre sua infraestrutura. Você pode escolher os tipos de instância, as opções de armazenamento e as configurações de rede que melhor atendam às suas necessidades. Você pode instalar software adicional, aplicar uma otimização de desempenho específica e ter mais controle sobre o ambiente geral. Outro aspecto importante é a redução de custos. Ao migrar para o SQL Server na Amazon Elastic Compute Cloud (Amazon EC2), você tem potencial para economizar nos custos de licenciamento e aproveitar as opções de alta disponibilidade no Amazon EC2.

Abordaremos três métodos diferentes de migração do Azure SQL Managed Instance para a AWS:

Visão geral da solução

O diagrama da arquitetura da solução na Figura 1 ilustra os três métodos de migração de um banco de dados do SQL Server para a AWS:

Figure 1Azure SQL Managed Instance to SQL Server on AWS Migration optionsFigura 1: Opções de migração do Azure SQL Managed Instance para o SQL Server na AWS

Você tem várias opções ao migrar do Azure SQL Managed Instance para a AWS. Você pode migrar para o SQL Server no Amazon EC2 ou no Amazon Relational Database Service (Amazon RDS) para SQL Server. A Tabela 1 compara os recursos das três opções de migração que abordamos nesta postagem do blog. Ao compreender os desafios e os benefícios, você pode tomar uma decisão informada sobre qual método atende às suas necessidades e se alinha à sua meta geral de migração.

Tabela 1: Comparação entre o Azure SQL Managed Instance e as opções da AWS

* Consulte a documentação do AWS DMS para obter detalhes.

Pré-requisitos

  • Azure Storage Account
  • Banco de dados de origem do SQL Server hospedado no Azure SQL Managed Instance
  • Uma conta ativa da AWS com o SQL Server 2022 no Amazon EC2
  • Conectividade de rede entre AWS e Azure (VPN, rede privada ou internet)
  • SQL Server Management Studio (versão 19.0.1 ou superior)

Método 1. Migre usando o backup COPY_ONLY do SQL Server

Você pode migrar um banco de dados do SQL Server do Azure SQL Managed Instance para o SQL Server no Amazon EC2 usando o backup COPY_ONLY do Azure SQL Managed Instance. Esse método oferece uma maneira fácil de copiar ou mover bancos de dados com todos os objetos de banco de dados do Azure SQL Managed Instance para uma instância do SQL Server 2022 (edição Enterprise, Developer ou Standard). Esse método de migração suporta somente backup e restauração completos e não oferece suporte a backups diferenciais ou de registros de transações. Você precisaria migrar os logins do SQL Server do SQL Server de origem para o SQL Server de destino na AWS.

Observação: o método de backup COPY_ONLY do Azure SQL Managed Instance não oferece suporte ao TDE. Faça backup do banco de dados e dos certificados do SQL Server de origem e desative o TDE antes da migração. Desativar o TDE pode ser uma operação que consome muitos recursos. Planeje essa atividade fora do horário de pico. O TDE pode ser ativado em seu banco de dados SQL Server no Amazon EC2 após a migração.

Certifique-se de ter conectividade entre os bancos de dados SQL Server de origem e destino. Você pode se conectar ao Azure SQL Managed Instance de origem do Amazon EC2 para realizar o backup.

Aqui estão as etapas para realizar a migração:

1.1 Faça login em seu portal de nuvem do Azure e navegue até seu Azure Storage Account.

1.2 Crie um contêiner do Azure Blob storage em seu Azure Storage account, conforme mostrado na Figura 2:

Figura 2: Criar contêiner no Azure Blob Storage

1.3 Você precisa criar um shared access token para o Azure Storage contêiner, conforme mostrado na Figura 3:

Figure 3 Create Shared access token for storage containerFigura 3: Criar shared access token para o storage contêiner

1.4 Em seguida, conecte-se ao Azure SQL Managed Instance por meio do SQL Server Management Studio (SSMS). Use o shared access token da etapa 1.3 para criar a credencial que permitirá o acesso ao Azure Blob Storage usando o script na Figura 4:

CREATE CREDENTIAL [https://sqlbackup02142023.blob.core.windows.net/sqlbackup]</em></code></p><p><code><em>WITH IDENTITY = 'SHARED ACCESS SIGNATURE'

Figura 4 Criar credenciais

1.5 Depois que a credencial for criada, você precisará executar o comando de backup COPY_ONLY para fazer um backup completo do banco de dados no Azure Blob Storage usando o script na Figura 5. O Azure SQL Managed Instance oferece somente a opção COPY_ONLY para o comando de backup.

BACKUP DATABASE [AzureSQLMIBackuptest] TO URL = 'https://sqlbackup02142023.blob.core.windows.net/sqlbackup/AzureSQLMIBackupfulll.bak' WITH COPY_ONLY

Figura 5: Backup do banco de dados com COPY_ONLY

1.6 Você pode se conectar ao SQL Server 2022 de destino no Amazon EC2 usando SSMS e criar credenciais usando o script na Figura 6 para o Azure SQL Blob storage (que usa o shared access token de acesso criado na etapa 1.3):

CREATE CREDENTIAL [https://sqlbackup02142023.blob.core.windows.net/sqlbackup] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET ='sp=sssssssssxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’

Figura 6: Crie credenciais no SQL Server de destino no Amazon EC2

1.7 Depois que a credencial for criada, você deve executar o comando restore database no SQL Server de destino no Amazon EC2, usando o script na Figura 7:

RESTORE DATABASE AzureSQLMIBackuptest
FROM URL = 'https://sqlbackup02142023.blob.core.windows.net/sqlbackup/AzureSQLMIBackupfull.bak'
WITH
MOVE 'data_0' TO 'C:\MSSQL\DATA\AzureSQLMIBackuptest_data_0.mdf',
MOVE 'log' TO 'C:\MSSQL\DATA\AzureSQLMIBackuptestlog.ldf',
MOVE 'XTP' TO 'C:\MSSQL\DATA\ AzureSQLMIBackuptest_xtp.xtp'

Figura 7: Restauração do banco de dados no SQL Server de destino no Amazon EC2

1.8 Em seguida, valide se o banco de dados restaurado está disponível usando SSMS no SQL Server de destino no Amazon EC2, conforme mostrado na Figura 8:

Figure 8 Azure SQL Managed Instance restored on SQL Server on EC2

Figura 8: Azure SQL Managed Instance restaurada no SQL Server no EC2

O método de backup e restauração do SQL Server oferece somente backups completos do banco de dados, portanto, esse método exigirá algum tempo de inatividade, dependendo do tamanho do banco de dados.

Método 2. Migre usando o AWS DMS

Se você tem cargas de trabalho essenciais em execução em um Azure SQL Server Managed Instance que precisa de uma migração mínima de tempo de inatividade para a AWS, você pode usar o AWS Database Migration Service (AWSDMS). O AWS DMS, junto com o método de backup e restauração do SQL Server, pode migrar bancos de dados do Azure SQL Server Managed Instance para o SQL Server no Amazon EC2.

Você pode fazer uma migração completa do Change Data Capture (CDC) do Azure SQL Server Managed Instance para o Amazon RDS para SQL Server usando o AWS DMS com o mínimo de tempo de inatividade.

O AWS DMS usa MS-Replication ou MS-CDC para rastrear alterações. Consulte a documentação do AWS DMS para obter detalhes.

Aqui estão as etapas para migrar usando o AWS DMS:

2.1. Primeiro, habilite o CDC no banco de dados e nas tabelas do Azure SQL Server Managed Instance de origem, conforme mostrado na Figura 9:

Figure-9-Enable-CDC-for-Azure-SQL-Server-Managed-Instance-source-database

Figura 9: Habilitar o CDC para o banco de dados de origem do Azure SQL Server Managed Instance

2.2. Em seguida, crie uma instância de replicação do AWS DMS, conforme mostrado na Figura 10:

Figure 10 Create replication instance in AWS DMS

Figura 10: Crie uma instância de replicação no AWS DMS

2.3. Você precisa criar o Azure SQL Server Managed Instance como um endpoint de origem. Você pode testar a conectividade do endpoint de origem com a instância de replicação selecionando “Test connection” na tela do console “Endpoint Configuration”. Certifique-se de que a conectividade esteja configurada corretamente. Consulte a documentação do AWS DMS para obter detalhes.

Figure 11. AWS DMS Endpoint configuration for Azure SQL Managed Instance as source

Figura 11: Configuração do AWS DMS Endpoint para o Azure SQL Server Managed Instance como fonte

2.4. Depois que o endpoint de origem for criado, crie o endpoint do SQL Server de destino. Em seguida, teste a conectividade do endpoint de origem com a instância de replicação selecionando “Test connection” na tela do console “Endpoint configuration”, conforme mostrado na Figura 12. Certifique-se de que a conectividade esteja configurada corretamente.

Figure 12 AWS DMS endpoint configuration for SQL Server on EC2 as destination

Figura 12: Configuração do endpoint do AWS DMS para SQL Server no EC2 como destino

2.5. Para criar uma tarefa do AWS DMS, selecione o endpoint source-to-target, conforme configurado nas etapas 2.3 e 2.4. Selecione o tipo de migração de “Migrar dados existentes e replicar alterações contínuas” para replicação contínua, conforme mostrado na Figura 13:

Figure 13. AWS DMS Migration task configuration

Figura 13: Configuração da tarefa de migração do AWS DMS

2.6. A próxima etapa é monitorar a tarefa de replicação. A Figura 14 mostra o progresso da tarefa do AWS DMS. Quando os dois bancos de dados estão sincronizados, você pode implementar a atividade de cutover para o SQL Server de destino no Amazon EC2 e concluir a migração com o mínimo de tempo de inatividade.

Figura 14: Relatório de progresso do status da tarefa de migração do AWS DMS na página de resumo da replicação do DMS

Figure 14. AWS DMS migration task status progress report from DMS replication summary page

Figura 14: Relatório de progresso do status da tarefa de migração do AWS DMS na página de resumo da replicação do DMS

Para obter mais detalhes sobre esse método de migração, leia esta postagem do blog, Migrando seu banco de dados do SQL Server usando o AWS DMS.

Método 3. Migre usando o Assistente de Importação e Exportação do SQL Server

Se você tiver bancos de dados menores ou quiser fazer uma migração parcial de dados ou precisar fazer uma transformação de dados durante a migração, você pode usar o Assistente de Importação e Exportação do SQL Server para migrar do Azure SQL Server Managed Instance para o SQL Server no Amazon EC2.

Você precisa garantir a conectividade entre os bancos de dados do SQL Server de origem e de destino. Você pode se conectar ao Azure SQL Server Managed Instance de origem através do Amazon EC2 para executar as etapas.

Aqui estão as etapas para migrar usando o Assistente de Importação e Exportação do SQL Server:

3.1. Conecte-se ao Azure SQL Server Managed Instance usando o SQL Server Management Studio (SSMS).

3.2. Clique com o botão direito do mouse no banco de dados de origem e selecione tarefas para exportar dados. Forneça detalhes de conexão para o Azure SQL Server Managed Instance usando o Microsoft OLE DB Driver para SQL Server, conforme mostrado na Figura 15:

Figure 15. Choose source for SQL Server Import and Export Wizard

Figura 15: Escolha a origem para o Assistente de Importação e Exportação do SQL Server

3.3. Em seguida, forneça informações de conexão para o SQL Server 2022 no Amazon EC2 como servidor de destino, conforme mostrado na Figura 16:

Figure 16 Choose destination for SQL Server Import and Export Wizard

Figura 16: Escolha o destino para o Assistente de Importação e Exportação do SQL Server

3.4. Teste as conexões de origem e de destino e verifique se as conexões estão funcionando.

3.5. Selecione as tabelas e visualizações de origem a serem migradas, verifique se o mapeamento está conforme o esperado e clique em OK para migrar os dados.

Figure 17 SQL Server Import and Export Wizard progress report

Figura 17: Relatório de progresso do Assistente de Importação e Exportação do SQL Server

3.6. Valide os dados após a importação conectando-se ao SQL Server de destino via SSMS. Teste e valide os aplicativos e garanta que eles estejam funcionando conforme o esperado.

Para saber mais sobre esse método de migração, confira a seção Cópia em massa em Importação e exportação de dados do SQL Server usando outros métodos.

Resumo

Nesta postagem do blog, abordamos três opções diferentes para migrar do Azure SQL Server Managed Instance para o SQL Server no Amazon EC2. Você pode aproveitar o método nativo de backup e restauração do SQL Server 2022 para migrar para o SQL Server 2022 na AWS. Para uma migração quase em tempo real com o mínimo de tempo de inatividade, considere usar o serviço AWS DMS. Para bancos de dados menores ou para realizar migrações parciais, como objetos selecionados (tabelas, exibições etc.), considere usar o Assistente de Importação e Exportação do SQL Server.

Para migrar bancos de dados do SQL Server da Instância Gerenciada SQL do Azure para a AWS com o mínimo de tempo de inatividade, você também pode aproveitar o CloudBasic do AWS Marketplace.

Para obter mais informações sobre migrações do SQL Server usando outros métodos, consulte Migrar um banco de dados local do Microsoft SQL Server para o Amazon RDS para SQL Server.

Se você está avaliando suas opções de migração e modernização para seus workloads do SQL Server, incluindo o SQL Server 2022, entre em contato conosco. Ficaremos felizes em ajudá-lo com seus planos e iniciativas do SQL Server.

 

Este artigo foi traduzido do Blog da AWS em Inglês.


Sobre os autores

Yogi Barot é arquiteta de soluções principal e tem 22 anos de experiência trabalhando com diferentes tecnologias da Microsoft, sua especialidade é em SQL Server e diferentes tecnologias de banco de dados. Yogi tem profundo conhecimento e experiência da AWS na execução da carga de trabalho da Microsoft na AWS.

 

 

 

Rita Ladda é arquiteta de soluções sênior especialista em Microsoft na Amazon Web Services, com mais de 20 anos de experiência em muitas tecnologias da Microsoft. Ela é especializada em projetar soluções de banco de dados no SQL Server e em outros bancos de dados. Ela fornece orientação arquitetônica aos clientes na migração e modernização de suas cargas de trabalho da Microsoft para a AWS.

 

 

 

 

Revisores e tradutores

Luiz Rampanelli é um Solutions Architect no time da AWS Latam. Possui mais de 10 anos anos de experiência com workloads Microsoft em nuvem e ambientes híbridos. Atua com desenho de soluções seguindo as melhores práticas para que os clientes possam aproveitar ao máximo os benefícios da nuvem da AWS.

 

 

 

 

Thiago Sousa é Cloud Application Architect no time de ProServe da AWS Latam e possui mais de 20 anos de experiência em tecnologias da Microsoft. Atua na orientação de melhores práticas de arquitetura na nuvem, como utilização de contêineres, microsserviços e automação.