Migre uma tabela particionada do Oracle para o PostgreSQL usando 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á.

Migre uma tabela particionada do Oracle para o PostgreSQL usando o AWS DMS

Criado por Saurav Mishra (AWS) e Eduardo Valentim (AWS)

Ambiente: PoC ou piloto

Origem: banco de dados Oracle

Destino: PostgreSQL 9.0

Tipo R: redefinir arquitetura

Workload: Oracle

Tecnologias: migração; bancos de dados; armazenamento e backup

Serviços da AWS: AWS DMS

Resumo

Esse padrão descreve como acelerar o carregamento de uma tabela particionada do Oracle para o PostgreSQL usando o AWS Database Migration Service (AWS DMS), que não oferece suporte ao particionamento nativo. Este banco de dados de destino do PostgreSQL pode ser instalado no Amazon Elastic Compute Cloud (Amazon EC2) ou como uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou do Amazon Aurora Edição Compatível com PostgreSQL. 

O upload de uma tabela particionada inclui as seguintes etapas:

  1. Crie uma tabela principal semelhante à tabela de partições do Oracle, mas não inclua nenhuma partição.

  2. Crie tabelas secundárias que herdarão da tabela principal que você criou na etapa 1.

  3. Crie uma função de procedimento e um gatilho para lidar com as inserções na tabela principal.

No entanto, como o gatilho é acionado para cada inserção, a carga inicial usando o AWS DMS pode ser muito lenta.

Para acelerar os carregamentos iniciais do Oracle para o PostgreSQL 9.0, esse padrão cria uma tarefa separada do AWS DMS para cada partição e carrega as tabelas secundárias correspondentes. Em seguida, você cria um gatilho durante a substituição. 

O PostgreSQL versão 10 suporta particionamento nativo. No entanto, você pode decidir usar o particionamento herdado em alguns casos. Para obter mais informações, consulte a seção Informações adicionais.

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

  • Um banco de dados do Oracle de origem com uma tabela particionada

  • Um banco de dados do PostgreSQL na AWS

Versões do produto

  • PostgreSQL 9.0

Arquitetura

Pilha de tecnologia de origem

  • Uma tabela particionada no Oracle

Pilha de tecnologias de destino

  • Uma tabela particionada no PostgreSQL (no Amazon EC2, no Amazon RDS para PostgreSQL ou no Aurora PostgreSQL)

Arquitetura de destino

Dados da tabela particionada no Oracle são transferidos para uma tarefa do AWS DMS para cada partição e, em seguida, para o PostgreSQL.

Ferramentas

Épicos

TarefaDescriçãoHabilidades necessárias

Crie as tabelas no PostgreSQL.

Crie as tabelas principal e secundária correspondentes no PostgreSQL com as condições de verificação necessárias para partições.

DBA

Crie a tarefa do AWS DMS para cada partição.

Inclua a condição do filtro da partição na tarefa do AWS DMS. Mapeie as partições para as tabelas secundárias correspondentes do PostgreSQL.

DBA

Execute as tarefas do AWS DMS usando carga total e captura de dados alterados (CDC).

Verifique se o parâmetro StopTaskCachedChangesApplied está definido como true e se o parâmetro StopTaskCachedChangesNotApplied está definido como false.

DBA
TarefaDescriçãoHabilidades necessárias

Interrompe as tarefas de replicação.

Antes de interromper as tarefas, confirme se a origem e o destino estão sincronizados.

DBA

Crie um gatilho na tabela principal.

Como a tabela principal receberá todos os comandos de inserção e atualização, crie um gatilho que roteará esses comandos para as respectivas tabelas secundárias com base na condição de particionamento.

DBA

Recursos relacionados

Mais informações

Embora a versão 10 do PostgreSQL ofereça suporte ao particionamento nativo, você pode decidir usar o particionamento herdado para os seguintes casos de uso:

  • O particionamento impõe uma regra de que todas as partições devem ter o mesmo conjunto de colunas que a principal, mas a herança de tabelas permite que os filhos tenham colunas extras.

  • A herança de tabelas oferece suporte a várias heranças.

  • O particionamento declarativo oferece suporte somente ao particionamento de listas e intervalos. Com a herança de tabelas, você pode dividir os dados como quiser. No entanto, se a exclusão da restrição não puder remover partições de forma eficaz, o desempenho da consulta será prejudicado.

  • Algumas operações precisam de um bloqueio mais forte ao usar o particionamento declarativo do que ao usar a herança de tabelas. Por exemplo, adicionar ou remover uma partição de ou para uma tabela particionada exige um bloqueio ACCESS EXCLUSIVE na tabela principal, enquanto um bloqueio SHARE UPDATE EXCLUSIVE é suficiente para a herança regular.

Ao usar partições de trabalho separadas, você também pode recarregar partições se houver algum problema de validação do AWS DMS. Para melhorar o desempenho e o controle da replicação, execute tarefas em instâncias de replicação separadas.