Migrar um banco de dados Oracle on-premises para o Amazon RDS para PostgreSQL usando um Oracle bystander e o AWS DMS - 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 um banco de dados Oracle on-premises para o Amazon RDS para PostgreSQL usando um Oracle bystander e o AWS DMS

Criado por Cady Motyka (AWS)

Ambiente: PoC ou piloto

Origem: bancos de dados: relacionais

Destino: Amazon RDS para PostgreSQL / Amazon Aurora PostgreSQL

Tipo R: redefinir arquitetura

Workload: Oracle

Tecnologias: migração; bancos de dados

Serviços da AWS: Amazon RDS

Resumo

Este padrão descreve como você pode migrar um banco de dados Oracle on-premises para qualquer um dos seguintes serviços de banco de dados da AWS compatíveis com PostgreSQL com o mínimo de tempo de inatividade:

  • Amazon Relational Database Service (Amazon RDS) para PostgreSQL

  • Amazon Aurora Edição Compatível com PostgreSQL

A solução usa o AWS Database Migration Service (AWS DMS) para migrar os dados, o AWS Schema Conversion Tool (AWS SCT) para converter o esquema do banco de dados e um banco de dados da Oracle bystander para ajudar a gerenciar a migração. Nessa implementação, o tempo de inatividade é restrito ao tempo necessário para criar ou validar todas as chaves estrangeiras no banco de dados. 

A solução também usa instâncias do Amazon Elastic Compute Cloud (Amazon EC2) com um banco de dados da Oracle bystander para ajudar a controlar o fluxo de dados por meio do AWS DMS. Você pode pausar temporariamente a replicação de transmissão do banco de dados on-premises da Oracle para a Oracle bystander para ativar o AWS DMS para acompanhar a validação de dados ou usar outra ferramenta de validação de dados. A instância de banco de dados Amazon RDS para PostgreSQL ou a instância de banco de dados compatível com o Aurora PostgreSQL e o banco de dados de bystander terão os mesmos dados quando o AWS DMS terminar de migrar as alterações atuais. 

Pré-requisitos e limitações

Pré-requisitos

Limitações

  • Limite de tamanho do banco de dados: 64 TB

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 Usar um banco de dados Oracle como origem para o AWS DMS. Recomendamos que você use a versão mais recente do AWS DMS para obter o suporte mais abrangente de versões e atributos. Para obter informações sobre as versões do banco de dados Oracle suportadas pelo AWS SCT, consulte a documentação do AWS SCT.

  • O AWS DMS é compatível com o PostgreSQL versão 9.4 e posterior (para versões 9.x), 10.x, 11.x e 12.x. Para obter as informações mais recentes, consulte Uso de um banco de dados PostgreSQL como destino para o AWS DMS na documentação da AWS.

Arquitetura

Pilha de tecnologia de origem

  • Um banco de dados Oracle on-premises

  • Uma instância do EC2 que contém um bystander do banco de dados Oracle

Pilha de tecnologias de destino

  • Instância do Amazon RDS para PostgreSQL ou Aurora PostgreSQL, PostgreSQL 9.3 e versões posteriores

Arquitetura de destino

O diagrama a seguir mostra um exemplo de fluxo de trabalho para migrar um banco de dados Oracle para um banco de dados AWS compatível com PostgreSQL usando o AWS DMS e um bystander Oracle:

Ferramentas

Épicos

TarefaDescriçãoHabilidades necessárias

Configure o AWS SCT.

Crie um novo relatório e conecte-se ao Oracle como origem e ao PostgreSQL como destino. Em Configurações do projeto, vá até a guia SQL Scripting. Altere o script SQL de destino para vários arquivos. Esses arquivos serão usados posteriormente e nomeados da seguinte forma:

  • create_database.sql

  • create_sequence.sql

  • create_table.sql

  • create_view.sql

  • create_function.sql

DBA

Converta o esquema do banco de dados Oracle.

Na guia Ação, escolha Gerar relatório. Em seguida, escolha Converter esquema e escolha Salvar como SQL.

DBA

Modifique os scripts.

Por exemplo, talvez você queira modificar o script se um número no esquema de origem tiver sido convertido para o formato numérico no PostgreSQL, mas você precise usar o BIGINT em vez disso para melhorar o desempenho.

DBA
TarefaDescriçãoHabilidades necessárias

Criar uma instância de banco de dados do Amazon RDS

Na região da AWS correta, crie uma nova instância de banco de dados PostgreSQL. Para obter mais informações, consulte Criar uma instância de banco de dados PostgreSQL e conectar a um banco de dados em uma instância de banco de dados PostgreSQL na documentação do Amazon RDS.

AWS SysAdmin, DBA

Configure as especificações da instância de banco de dados.

Especifique a versão do mecanismo de banco de dados, a classe da instância de banco de dados, a implantação Multi-AZ, o tipo de armazenamento e o armazenamento alocado. Insira o identificador da instância de banco de dados, um nome de usuário primária e uma senha primária.

AWS SysAdmin, DBA

Configure rede e segurança.

Especifique a nuvem privada virtual (VPC), o grupo de sub-rede, a acessibilidade pública, a preferência da zona de disponibilidade e os grupos de segurança.

DBA, SysAdmin

Configure as opções do banco de dados.

Especifique o nome do banco de dados, a porta, o grupo de parâmetros, a criptografia e a chave KMS.

AWS SysAdmin, DBA

Configure os backups.

Especifique o período de retenção do backup, a janela do backup, a hora de início, a duração e se as tags devem ser copiadas para instantâneos.

AWS SysAdmin, DBA

Configure opções de monitoramento.

Ative ou desative insights aprimorados de monitoramento e desempenho.

AWS SysAdmin, DBA

Configure opções de manutenção.

Especifique a atualização automática da versão secundária, a janela de manutenção e o dia, a hora e a duração de início.

AWS SysAdmin, DBA

Execute os scripts de pré-migração do AWS SCT.

Na instância do Amazon RDS, execute os seguintes scripts gerados pelo AWS SCT:

  • create_database.sql

  • create_sequence.sql

  • create_table.sql

  • create_view.sql

  • create_function.sql

AWS SysAdmin, DBA
TarefaDescriçãoHabilidades necessárias

Configure a rede para Amazon EC2.

Crie a nova VPC, sub-redes, gateway da Internet, tabelas de rotas e grupos de segurança.

AWS SysAdmin

Criar a instância do EC2

Na região da AWS apropriada, crie uma nova instância do EC2. Selecione a imagem de máquina da Amazon (AMI), escolha o tamanho da instância e configure os detalhes da instância: número de instâncias (1), a VPC e a sub-rede que você criou na tarefa anterior, atribuição automática de IP público e outras opções. Adicione armazenamento, configure grupos de segurança e inicie. Quando solicitado, crie e salve um par de chaves para a próxima etapa.

AWS SysAdmin

Conecte o banco de dados Oracle de origem à instância do EC2.

Copie o endereço IP público IPv4 e o DNS para um arquivo de texto e conecte-se usando SSH da seguinte forma: ssh -i “your_file.pem” EC2-user@<your-IP- -DNS>. address-or-public

AWS SysAdmin

Configure o host inicial para um bystander no Amazon EC2.

Configure chaves SSH, perfil bash, ORATAB e links simbólicos. Crie diretórios Oracle.

AWS SysAdmin, administrador de Linux

Configure a cópia do banco de dados para um bystander no Amazon EC2.

Use o RMAN para criar uma cópia do banco de dados, ativar o registro suplementar e criar o arquivo de controle em espera. Depois que a cópia estiver concluída, coloque o banco de dados no modo de recuperação.

AWS SysAdmin, DBA

Configure o Oracle Data Guard.

Modifique seu arquivo listener.ora e inicie o receptor. Configure um novo destino de arquivamento. Coloque o espectador no modo de recuperação, substitua os arquivos temporários para evitar corrupção futura, instale um crontab, se necessário, para evitar que o diretório de arquivamento fique sem espaço e edite o manage-trclog-files-oraclearquivo.cfg para a origem e o modo de espera.

AWS SysAdmin, DBA

Prepare o banco de dados Oracle para sincronizar o envio.

Adicione os arquivos de log em espera e altere o modo de recuperação. Altere o envio do log para SYNC AFFIRM na fonte primária e na fonte em espera. Ative os registros primários, confirme por meio do registro de alerta de bystander do Amazon EC2 que você está usando os arquivos de log em espera e confirme se o fluxo de redo está fluindo no SYNC.

AWS SysAdmin, DBA
TarefaDescriçãoHabilidades necessárias

Crie uma instância de replicação no AWS DMS.

Preencha os campos para nome, classe de instância, VPC (igual à instância do Amazon EC2), Multi-AZ e acessibilidade pública. Em Avançado, especifique o armazenamento alocado, o grupo de sub-rede, a zona de disponibilidade, os grupos de segurança da VPC e a chave do AWS Key Management Service (AWS KMS).

AWS SysAdmin, DBA

Crie o endpoint do banco de dados de origem.

Especifique o nome do endpoint, tipo, mecanismo de origem (Oracle), nome do servidor (nome DNS privado do Amazon EC2), porta, modo SSL, nome de usuário, senha, SID, VPC (especifique a VPC que tem a instância de replicação) e instância de replicação. Para testar a conexão, escolha Executar teste e, em seguida, crie o endpoint. Você também pode definir as seguintes configurações avançadas: maxFileSizee numberDataTypeEscala.

AWS SysAdmin, DBA

Conecte o AWS DMS ao Amazon RDS para PostgreSQL.

Crie um grupo de segurança de migração para conexões entre VPCs.

AWS SysAdmin, DBA

Crie o endpoint do banco de dados de destino.

Especifique o nome do endpoint, o tipo, o mecanismo de origem (PostgreSQL), o nome do servidor (endpoint do Amazon RDS), a porta, o modo SSL, o nome do usuário, a senha, o nome do banco de dados, a VPC (especificar a VPC que tem a instância de replicação) e a instância de replicação. Para testar a conexão, escolha Executar teste e, em seguida, crie o endpoint. Você também pode definir as seguintes configurações avançadas: maxFileSize e numberDataTypeEscala.

AWS SysAdmin, DBA

Crie a tarefa de replicação do AWS DMS.

Especifique o nome da tarefa, a instância de replicação, os endpoints de origem e destino e a instância de replicação. Para tipo de migração, escolha Migrar dados existentes e replicar alterações contínuas. Desmarque a caixa de seleção Iniciar tarefa ao criar.

AWS SysAdmin, DBA

Defina as configurações da tarefa de replicação do AWS DMS.

Para o modo de preparação da tabela de destino, escolha Não fazer nada. Interrompa a tarefa após a conclusão do carregamento total (para criar chaves primárias). Especifique o modo LOB limitado ou completo e ative as tabelas de controle. Opcionalmente, você pode definir a configuração CommitRateavançada.

DBA

Configure mapeamentos de tabelas.

Na seção Mapeamentos de tabela, crie uma regra de inclusão para todas as tabelas em todos os esquemas incluídos na migração e, em seguida, crie uma regra de exclusão. Adicione três regras de transformação para converter os nomes do esquema, da tabela e da coluna para letra minúscula e adicione quaisquer outras regras necessárias para essa migração específica.

DBA

Iniciar a tarefa.

Iniciar a tarefa de replicação. Verifique se a carga total está em execução. Execute ALTER SYSTEM SWITCH LOGFILE no banco de dados Oracle primário para iniciar a tarefa.

DBA

Execute os scripts de meio de migração do AWS SCT.

No Amazon RDS para PostgreSQL, execute os seguintes scripts gerados pelo AWS SCT:

  • create_index.sql

  • create_constraint.sql

DBA

Reinicie a tarefa para continuar a captura de dados de alteração (CDC).

Execute VACUUM na instância de banco de dados Amazon RDS para PostgreSQL e reinicie a tarefa do AWS DMS para aplicar as alterações do CDC em cache.

DBA
TarefaDescriçãoHabilidades necessárias

Verifique se há erros nos registros e nas tabelas de validação do AWS DMS.

Verifique e corrija quaisquer erros de replicação ou validação.

DBA

Interrompa todas as dependências do Oracle.

Interrompa todas as dependências do Oracle, desligue os receptores no banco de dados Oracle e execute ALTER SYSTEM SWITCH LOGFILE. Interrompa a tarefa do AWS DMS quando ela não mostrar nenhuma atividade.

DBA

Execute os scripts de pós-migração do AWS SCT.

No Amazon RDS para PostgreSQL, execute os seguintes scripts gerados pelo AWS SCT:

  • create_foreign_key_constraint.sql

  • create_triggers.sql

DBA

Conclua etapas adicionais do Amazon RDS para PostgreSQL.

Incremente as sequências para corresponder ao Oracle, se necessário; execute VACUUM e ANALYZE e tire um instantâneo para fins de conformidade.

DBA

Abra as conexões para o Amazon RDS para PostgreSQL.

Remova os grupos de segurança do AWS DMS do Amazon RDS para PostgreSQL, adicione grupos de segurança de produção e direcione seus aplicativos para o novo banco de dados.

DBA

Limpe objetos do AWS DMS.

Remova os endpoints, as tarefas de replicação, as instâncias de replicação e a instância do EC2.

SysAdmin, DBA

Recursos relacionados