

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
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms"></a>

*Saurav Mishra e Eduardo Valentim, Amazon Web Services*

## Resumo
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-summary"></a>

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. O banco de dados PostgreSQL de destino pode ser instalado no Amazon Elastic Compute Cloud (Amazon) ou pode ser uma instância de banco de dados EC2 Amazon Relational Database Service (Amazon RDS) para PostgreSQL ou Amazon Aurora PostgreSQL Compatible Edition. 

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.

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

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](#migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-additional).

## Pré-requisitos e limitações
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-prereqs"></a>

**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
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-architecture"></a>

**Pilha de tecnologia de origem**
+ Uma tabela particionada no Oracle

**Pilha de tecnologias de destino**
+ Uma tabela particionada no PostgreSQL (na EC2 Amazon, Amazon RDS for PostgreSQL ou Aurora PostgreSQL)

**Arquitetura de destino**

![\[Dados de tabelas particionadas na Oracle sendo migrados para uma tarefa do AWS DMS para cada partição e, em seguida, para o PostgreSQL.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/7fa2898e-3308-436a-aec8-ab6f680d7bac/images/1b9742ea-a13d-434c-83a7-56686cf76ea0.png)


## Ferramentas
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-tools"></a>
+ O [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ajuda você a migrar armazenamentos de dados para a Nuvem AWS ou entre combinações de configurações na nuvem e on-premises.

## Épicos
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-epics"></a>

### Configurar o AWS DMS
<a name="set-up-aws-dms"></a>


| Tarefa | Description | 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 `StopTaskCachedChangesApplied` está definido como `true` e se o parâmetro `StopTaskCachedChangesNotApplied` está definido como `false`. | DBA | 

### Substituir
<a name="cut-over"></a>


| Tarefa | Description | 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
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-resources"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Particionamento de tabelas (documentação do PostgreSQL)](https://www.postgresql.org/docs/10/ddl-partitioning.html)

## Mais informações
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-additional"></a>

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.