View a markdown version of this page

Fase 3: Migrar - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Fase 3: Migrar

A principal tarefa das migrações de banco de dados é concluir a migração com o mínimo de tempo de inatividade. Como os dois bancos de dados devem usar a mesma linguagem de programação e protocolos de comunicação, talvez seja necessário converter o código e o esquema para sintaxes, procedimentos e funções de consulta semelhantes. Ao converter um esquema, considere os seguintes aspectos:

  • Modifique a conexão do banco de dados conforme apropriado para o novo mecanismo.

  • Corrija todos os avisos e erros da conversão do código.

  • Modifique os mapeamentos e o código da tabela conforme apropriado para o esquema convertido.

  • Identifique e refatore qualquer funcionalidade específica do fornecedor que seu aplicativo usa.

Você pode usar qualquer ferramenta de migração de terceiros para conversão de código de esquema, como o banco de dados SAP ASE e o Amazon RDS for SQL Server. Talvez seja necessário converter alguns códigos manualmente porque o SQL não ANSI não é suportado no SQL Server.

Depois de converter o código, converta o código do aplicativo ou o aplicativo SQL dinâmico e execute testes unitários e funcionais. Para obter mais informações, consulte Testando objetos de banco de dados migrados (SybaseToSQL).

Convertendo os dados

Transforme dados brutos para torná-los mais úteis limpando-os, padronizando-os, verificando-os e classificando-os. Nas migrações de banco de dados, os processos de extração, transformação e carregamento (ETL) são usados das seguintes maneiras:

  • Dentro do banco de dados

  • Com scripts externos

  • Usando ferramentas de terceiros

Exemplos de ferramentas de ETL incluem AWS Glue Informatica e Talend. Para migrações do SAP ASE para o SQL Server, algumas ferramentas gratuitas podem converter procedimentos e funções armazenados automaticamente.

Validando objetos de banco de dados

A validação do banco de dados ajuda a evitar problemas nas etapas subsequentes da migração. Após a conversão do código, valide seu esquema de banco de dados comparando os seguintes elementos entre o SAP ASE e o RDS SQL Server:

  • Esquemas

  • Tabelas

  • Visualizações

  • Funções

  • Índices de procedimentos armazenados

  • Acionadores

  • Restrições (por exemplo, chaves primárias, chaves estrangeiras, cheques e padrões)

Verifique se cada objeto foi migrado corretamente. Se você encontrar diferenças, identifique o motivo da falha. Talvez seja necessário criar manualmente objetos ausentes no banco de dados de destino ou converter o código Transact-SQL. Para obter mais informações, consulte Validar objetos de banco de dados após a migração do SAP ASE para o Amazon RDS for SQL Server ou Microsoft SQL Server.

Migração de dados usando AWS DMS

Se você tiver vários usuários do banco de dados, talvez seja necessário migrar seu aplicativo de acordo com um cronograma. Dependendo do tamanho do banco de dados e da janela de migração, essas migrações de dados exigem conhecimento de cargas completas e cargas incrementais. Por esse motivo, AWS DMS pode conectar bancos de dados de origem e destino para replicar o conteúdo do banco de dados de acordo com os seguintes processos:

  • Crie um servidor de replicação.

  • Crie endpoints de origem e destino que descrevam as conexões do armazenamento de dados.

  • Crie uma ou mais tarefas de migração para migrar dados entre os armazenamentos de dados de origem e de destino.

  • Replicação contínua do SAP ASE para o SQL Server

  • (Opcional) Migração completa de dados do SAP ASE para o SQL Server com captura de dados de alteração

Talvez seja necessário otimizar AWS DMS para lidar com determinados tipos de dados. Para obter mais informações, consulte Usando um banco de dados SAP ASE como fonte para AWS DMS.

Migração de dados off-line

Você pode usar AWS Storage Gateway para integrar seu banco de dados SAP ASE com o Amazon Simple Storage Service (Amazon S3), que fornece armazenamento econômico, escalável e seguro para backups locais do banco de dados SAP ASE. Para obter mais informações, consulte Integrar um banco de dados SAP ASE ao Amazon S3 usando. AWS Storage Gateway

Usando ferramentas de terceiros

Alguns aplicativos servem como um único ponto de contato (SPOC) que interage com outros aplicativos. Ao migrar para uma plataforma de banco de dados SQL Server, essas interconexões podem ser afetadas, e o monitoramento do banco de dados pode exigir ferramentas nativas ou de terceiros que usem protocolos de comunicação específicos do servidor. É importante avaliar se esses aplicativos e ferramentas dependentes já oferecem suporte ao SQL Server ou se precisam de modificações para funcionar adequadamente.

Para pacotes de aplicativos, consulte os fornecedores para determinar se eles oferecem suporte ao Amazon RDS for SQL Server. Para aplicativos personalizados, talvez seja necessário modificar o código para garantir a compatibilidade com o banco de dados migrado.

Monitorando o banco de dados

Independentemente do caminho de migração escolhido, a Amazon CloudWatch desempenha um papel na coleta de métricas, como tipo de CPU, memória e I/O funções. Também é capaz de definir limites de métricas e iniciar ações quando os limites são acionados.

Por exemplo, você pode criar alarmes para métricas, notificações e ações de cluster do Amazon RDS para detectar e desligar instâncias de leitura não utilizadas ou subutilizadas. Definir alarmes em métricas e eventos pode ajudar a minimizar o tempo de inatividade e os impactos nos negócios. Serviços da AWS como Amazon S3, Amazon RDS Performance Insights, Amazon CloudWatch, e já AWS CloudTrail estão integrados à plataforma de banco de dados RDS, e recomendamos que eles monitorem o desempenho.

Validando os dados

Depois que a migração de dados do SAP ASE para o Amazon RDS for SQL Server estiver concluída, valide os dados para garantir precisão e consistência. Use as seguintes consultas SQL para gerar instruções de metadados para cada tabela em seu banco de dados.

Etapa 1: gerar declarações de metadados e listas de colunas

SELECT dt.schema_name, dt.table_name, STRING_AGG(dt.column_name, ',') AS column_name, STRING_AGG(dt.cname, ',') AS column_order FROM ( SELECT object_name(a.id) AS table_name, a.name colname, c.name col_type, a.isnullable, a.name AS cname, schema_name(b.uid) AS schema_name, CASE WHEN a.isnullable = 1 THEN CASE WHEN c.name LIKE '%char%' THEN 'coalesce(ltrim(rtrim('+a.name+')),''X'') as '+a.name WHEN (c.name LIKE '%int%' OR c.name = 'numeric') THEN 'coalesce('+a.name+',0) as '+a.name WHEN c.name IN ('decimal','float','money') THEN 'coalesce('+a.name+',0.0) as '+a.name WHEN c.name LIKE 'datetime%' THEN 'coalesce(convert(nvarchar(30),'+a.name+',112),''99991231'') as '+a.name ELSE a.name END WHEN c.name LIKE 'datetime%' THEN 'coalesce(convert(nvarchar(30),'+a.name+',112),''99991231'') as '+a.name WHEN c.name LIKE '%char%' THEN 'coalesce(ltrim(rtrim('+a.name+')),''X'') as '+a.name ELSE a.name END AS column_name FROM syscolumns a INNER JOIN sysobjects b ON a.id = b.id AND b.type = 'U' INNER JOIN systypes c ON a.usertype = c.usertype AND a.xusertype = c.xusertype AND c.name != 'varbinary' INNER JOIN ( SELECT OBJECT_NAME(ic.OBJECT_ID) AS table_name, COL_NAME(ic.OBJECT_ID, ic.column_id) AS column_name FROM sys.indexes AS i INNER JOIN sys.index_columns AS ic ON i.OBJECT_ID = ic.OBJECT_ID AND i.index_id = ic.index_id AND i.is_primary_key = 1 ) pk ON pk.table_name = object_name(a.id) AND pk.column_name = a.name ) dt GROUP BY dt.schema_name, dt.table_name;

A tabela a seguir lista exemplos de saídas:

Nome do esquema

Nome da tabela

Nome da coluna

Ordem das colunas

Pessoa

Endereço

ID de endereço

ID de endereço

Pessoa

AddressType

AddressTypeID

AddressTypeID

Pessoa

BusinessEntity

BusinessEntityID

BusinessEntityID

Pessoa

BusinessEntityAddress

BusinessEntityID, ID de endereço, ID AddressType

BusinessEntityID, ID de endereço, ID AddressType

Etapa 2: gerar consultas de comparação usando os resultados de metadados e criar instruções SELECT

SELECT <column_name> FROM [schema_name].[table_name] ORDER BY <column_order>;

Veja a seguir um exemplo de uma consulta gerada:

SELECT BusinessEntityID, AddressID, AddressTypeID FROM [Person].[BusinessEntityAddress] ORDER BY BusinessEntityID, AddressID, AddressTypeID;

Etapa 3: Validação

  1. Execute a consulta de metadados nos dois bancos de dados.

  2. Gere e execute SELECT instruções para cada tabela.

  3. Compare os resultados entre bancos de dados de origem e de destino:

    • A contagem de linhas deve coincidir.

    • Os valores dos dados devem ser idênticos.

    • Verifique se há problemas de conversão de tipo de dados.

Etapa 4: validar a contagem de linhas

SELECT COUNT(1) AS total_rows FROM [schema_name].[table_name];

Etapa 5: atualize a configuração do seu aplicativo para apontar para o novo banco de dados

  1. Atualizar o grupo de segurança

  2. Modifique a cadeia de conexão DNS conforme necessário para se conectar ao banco de dados de destino.

Testar a migração dos dados

O processo de teste pode ajudá-lo a identificar problemas negligenciados durante o desenvolvimento, como consultas convertidas incorretamente ou índices ausentes. E isso pode revelar a necessidade de ajuste do mecanismo de banco de dados ou modificações nas consultas com base no desempenho da carga de trabalho.

Os testes funcionais, que incluem testes unitários para fluxos de trabalho de aplicativos, ajudam a garantir a integração perfeita com seu novo banco de dados. O teste de desempenho ajuda a otimizar seu banco de dados verificando os tempos de resposta aceitáveis e identificando gargalos.

Embora existam métodos de teste manuais e automatizados, recomendamos um método automatizado porque é mais eficiente, especialmente para ciclos de teste adicionais.