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:
Crie uma tabela principal semelhante à tabela de partições do Oracle, mas não inclua nenhuma partição.
Crie tabelas secundárias que herdarão da tabela principal que você criou na etapa 1.
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.](images/pattern-img/7fa2898e-3308-436a-aec8-ab6f680d7bac/images/1b9742ea-a13d-434c-83a7-56686cf76ea0.png)
Ferramentas
O AWS Database Migration Service (AWS DMS) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.
Épicos
Tarefa | Descrição | Habilidades 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 | DBA |
Tarefa | Descrição | Habilidades 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 bloqueioSHARE 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.