Migrar dados de um banco de dados Oracle on-premises para o Aurora PostgreSQL - Recomendações da AWS

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

Migrar dados de um banco de dados Oracle on-premises para o Aurora PostgreSQL

Michelle Deng e Shunan Xiang, Amazon Web Services

Resumo

Esse padrão fornece orientação para a migração de dados de um banco de dados Oracle on-premises para a edição compatível com Amazon Aurora PostgreSQL. Aborda uma estratégia de migração de dados on-line com um mínimo de tempo de inatividade para bancos de dados Oracle de vários terabytes que contêm grandes tabelas com atividades de alta linguagem de manipulação de dados (DML). Um banco de dados standby Oracle Active Data Guard é usado como fonte para descarregar a migração de dados do banco de dados principal. A replicação do banco de dados principal Oracle para o modo de espera pode ser suspensa durante a carga total para evitar erros do ORA-01555. 

Colunas de tabela em chaves primárias (PKs) ou chaves estrangeiras (FKs), com o tipo de dados NUMBER, são comumente usadas para armazenar números inteiros no Oracle. Recomendamos que você os converta em INT ou BIGINT no PostgreSQL para melhorar o desempenho. Você pode usar a AWS Schema Conversion Tool (AWS SCT) para alterar o mapeamento de tipos de dados padrão para as colunas PK e FK. (Para obter mais informações, consulte a postagem do AWS blog Converter o tipo de dados NUMBER do Oracle para o PostgreSQL.) A migração de dados nesse padrão usa o AWS Database Migration Service (AWS DMS) para carga total e captura de dados alterados (CDC).

Você também pode usar esse padrão para migrar um banco de dados Oracle local para o Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou um banco de dados Oracle hospedado no Amazon Elastic Compute Cloud (Amazon) para o Amazon EC2 RDS for PostgreSQL ou compatível com o Aurora PostgreSQL.

Pré-requisitos e limitações

Pré-requisitos

Limitações

Versões do produto

  • O AWS DMS oferece suporte a todas as edições do banco de dados Oracle para as versões 10.2 e versões posteriores (para versões 10.x), 11g e até 12.2, 18c e 19c. Para obter a lista mais recente de versões compatíveis, consulte Uso de um banco de dados Oracle como origem para o AWS DMS na documentação da AWS.

Arquitetura

Pilha de tecnologia de origem

  • Bancos de dados Oracle on-premises com o Oracle Active Data Guard configurado em espera

Pilha de tecnologias de destino

  • Aurora compatível com PostgreSQL 

Arquitetura de migração de dados

Migração de um banco de dados do Oracle para Aurora compatível com PostgreSQL

Ferramentas

  • AWS DMS: o AWS Database Migration Service (AWS DMS) oferece suporte a vários bancos de dados de origem e destino. Consulte Uso de um banco de dados Oracle como origem para o AWS DMS na documentação do AWS DMS para obter uma lista das versões e edições dos bancos de dados Oracle de origem e destino compatíveis. Se o banco de dados de origem não for suportado pelo AWS DMS, você deverá selecionar outro método para migrar os dados na Fase 6 (na seção Epics). Observação importante: como essa é uma migração heterogênea, você deve primeiro verificar se o banco de dados oferece suporte a um aplicativo comercial off-the-shelf (COTS). Se o aplicativo for COTS, consulte o fornecedor para confirmar se o é compatível com o Aurora PostgreSQL antes de continuar. Para obter mais informações, consulte as instruções de Step-by-Step migração do AWS DMS na documentação da AWS.

  • AWS SCT: a AWS Schema Conversion Tool (AWS SCT) facilita migrações heterogêneas de bancos de dados ao converter automaticamente o esquema do banco de dados de origem e a maior parte do código personalizado em um formato compatível com o banco de dados de destino. O código personalizado que a ferramenta converte inclui visualizações, procedimentos armazenados e funções. Qualquer código que não possa ser convertido automaticamente pela ferramenta será marcado em destaque para que você mesmo possa convertê-lo. 

Épicos

TarefaDescriptionHabilidades necessárias

Valide as versões dos bancos de dados de origem e de destino.

DBA

Instale o AWS SCT e os drivers.

DBA

Adicione e valide os usuários pré-requisitos do AWS SCT e o banco de dados de fontes concessões.

DBA

Crie um projeto AWS SCT para o workload e conecte-se ao banco de dados de origem.

DBA

Gere um relatório de avaliação e avalie a viabilidade.

DBA, proprietário do aplicativo
TarefaDescriptionHabilidades necessárias

Crie um banco de dados de destino compatível com o Aurora PostgreSQL.

DBA

Extraia a lista de usuários, funções e concessões do banco de dados de origem.

DBA

Mapeie os usuários do banco de dados existentes para os novos usuários do banco de dados.

Proprietário do App

Criar usuários no banco de dados de destino.

DBA

Aplique as funções da etapa anterior ao banco de dados de destino compatível com o Aurora PostgreSQL.

DBA

Analise as opções, os parâmetros, os arquivos de rede e os links do banco de dados de origem e avalie sua aplicabilidade ao banco de dados de destino.

DBA, proprietário do aplicativo

Aplique todas as configurações relevantes ao banco de dados de destino.

DBA
TarefaDescriptionHabilidades necessárias

Configure a conectividade do AWS SCT com o banco de dados de destino.

DBA

Converta o esquema no AWS SCT e salve o código convertido como um arquivo .sql.

DBA, proprietário do aplicativo

Converta manualmente qualquer objeto de banco de dados que falhou na conversão automática.

DBA, proprietário do aplicativo

Otimize a conversão do código do banco de dados.

DBA, proprietário do aplicativo

Separe o arquivo .sql em vários arquivos .sql com base no tipo de objeto.

DBA, proprietário do aplicativo

Valide os scripts SQL no banco de dados de destino.

DBA, proprietário do aplicativo
TarefaDescriptionHabilidades necessárias

Criar uma instância de replicação do AWS DMS.

DBA

Criação de endpoints de origem e de destino.

Se o tipo de dados do PKs e FKs for convertido de NUMBER no Oracle para BIGINT no PostgreSQL, considere especificar o numberDataTypeScale=-2 atributo de conexão ao criar o endpoint de origem.

DBA
TarefaDescriptionHabilidades necessárias

Crie o esquema e as tabelas no banco de dados de destino.

DBA

Crie tarefas de carga completa do AWS DMS agrupando tabelas ou dividindo uma tabela grande com base no tamanho da tabela.

DBA

Interrompa os aplicativos nos bancos de dados Oracle de origem por um curto período.

Proprietário do App

Verifique se o banco de dados stand-by Oracle está sincronizado com o banco de dados principal e interrompa a replicação do banco de dados principal para o banco de dados stand-by.

DBA, proprietário do aplicativo

Inicie os aplicativos no banco de dados Oracle de origem.

Proprietário do App

Inicie as tarefas de carga total do AWS DMS em paralelo, do banco de dados em espera da Oracle ao banco de dados compatível com o Aurora PostgreSQL.

DBA

Crie PKs índices secundários após a conclusão da carga completa.

DBA

Valide os dados.

DBA
TarefaDescriptionHabilidades necessárias

Crie tarefas de replicação contínuas do AWS DMS especificando um horário de início personalizado do CDC ou um número de alteração do sistema (SCN) quando o Oracle standby foi sincronizado com o banco de dados principal e antes de os aplicativos serem reiniciados na tarefa anterior.

DBA

Inicie as tarefas do AWS DMS em paralelo para replicar as mudanças contínuas do banco de dados em espera da Oracle para o banco de dados compatível com o Aurora PostgreSQL.

DBA

Restabeleça a replicação do banco de dados principal Oracle para o banco de dados standby.

DBA

Monitore os registros e interrompa os aplicativos no banco de dados Oracle quando o banco de dados de destino compatível com o Aurora PostgreSQL estiver quase sincronizado com o banco de dados Oracle de origem.

DBA, proprietário do aplicativo

Interrompa as tarefas do AWS DMS quando o destino estiver totalmente sincronizado com o banco de dados Oracle de origem.

DBA

Crie FKs e valide os dados no banco de dados de destino.

DBA

Crie funções, visualizações, acionadores, sequências e outros tipos de objetos no banco de dados de destino.

DBA

Aplique concessões de funções no banco de dados de destino.

DBA
TarefaDescriptionHabilidades necessárias

Use o AWS SCT para analisar e converter as instruções SQL dentro do código do aplicativo.

Proprietário do App

Crie novos servidores de aplicativos na AWS.

Proprietário do App

Migre o código do aplicativo para os novos servidores.

Proprietário do App

Configure o servidor do aplicativo para o banco de dados e os drivers de destino.

Proprietário do App

Corrija qualquer código específico do mecanismo de banco de dados de origem no aplicativo.

Proprietário do App

Otimize o código do aplicativo para o banco de dados de destino.

Proprietário do App
TarefaDescriptionHabilidades necessárias

Direcione o novo aplicativo para o novo banco de dados de destino.

DBA, proprietário do aplicativo

Realize testes de sanidade.

DBA, proprietário do aplicativo

Acesse.

DBA, proprietário do aplicativo
TarefaDescriptionHabilidades necessárias

Encerre os recursos temporários da AWS.

DBA, administrador de sistemas

Revise e valide os documentos do projeto.

DBA, proprietário do aplicativo

Reúna métricas de tempo de migração, porcentagem de uso manual em comparação com o uso de ferramentas, economia de custos e dados similares.

DBA, proprietário do aplicativo

Feche o projeto e forneça feedback.

DBA, proprietário do aplicativo

Recursos relacionados

Referências

Tutoriais