

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

# Aplicações cliente nativas do PostgreSQL
<a name="native-postgre-sql-client-applications"></a>

Você pode usar aplicações cliente nativas do PostgreSQL para uma migração offline, incluindo[pg\_dump](https://www.postgresql.org/docs/current/app-pgdump.html), [pg\_dumpall](https://www.postgresql.org/docs/current/app-pg-dumpall.html) e [pg\_restore](https://www.postgresql.org/docs/current/app-pgrestore.html). O utilitário pg\_dump serve para fazer backup de bancos de dados PostgreSQL. Você pode usar o pg\_dump para fazer backups consistentes e fazer backup de um único banco de dados. Para fazer backup de objetos globais que são comuns a todos os bancos de dados em um cluster (como perfis e espaços de tabela), use pg\_dumpall. Recomendamos que você execute o utilitário pg\_dump como superusuário, pois somente um superusuário pode realizar um despejo completo. O utilitário pg\_dump também oferece opções para otimizar o processo de backup, incluindo o uso da opção de trabalhos (para executar o despejo em paralelo) e o formato do diretório quando você faz o backup. Para obter mais informações, consulte a seção *Opções* na página do [pg\_dump](https://www.postgresql.org/docs/current/app-pgdump.html) na documentação do PostgreSQL.

O utilitário pg\_restore serve para restaurar um banco de dados PostgreSQL de um arquivo criado pelo pg\_dump. Você poderá executar o utilitário pg\_restore no modo paralelo se usar o pg\_dump no formato personalizado ou de diretório. Para aumentar a performance do pg\_restore, você pode ajustar os seguintes parâmetros:
+ Configure `shared_buffers` para se alinhar aos seus requisitos e aumente `maintenance_work_mem` para acelerar a criação de índices.
+ Desative o registro em log extensivo, o daemon de autovacuum e `full_page_writes`.
+ (Opcionalmente) Faça backup e restaure o esquema e use um despejo e uma restauração somente de dados. Se você usar esse método, poderá usar a opção `disable-triggers` para melhorar a performance.

Você pode executar pg\_dump e pg\_restore em sua instância de destino do EC2. Recomendamos que você use o [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) para melhorar a velocidade e a performance. Por fim, verifique se você tem armazenamento suficiente para o arquivo de backup.

## Arquitetura
<a name="architecture-native-postgresql-client-apps"></a>

O diagrama a seguir mostra a arquitetura para migrar um banco de dados PostgreSQL on-premises para a Nuvem AWS usando aplicações cliente nativas do PostgreSQL.

![Arquitetura de aplicação cliente nativa do PostgreSQL](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/migration-databases-postgresql-ec2/images/native-client-applications-architecture.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Faça backups usando pg\_dump.

1. Crie uma instância do EC2 e instale o PostgreSQL nela.

1. Copie o arquivo de despejo para o Amazon EC2.

1. Restaure o arquivo de backup usando pg\_restore.

## Limitações
<a name="limitations-native-postgresql-client-apps"></a>

Recomendamos considerar as seguintes limitações do uso de aplicações cliente nativas do PostgreSQL antes de iniciar a migração:
+ O despejo e a restauração podem ser demorados para bancos de dados maiores (ou seja, bancos de dados maiores que 300 GB).
+ Essa opção exige tempo de inatividade completo do banco de dados.
+ É necessária uma quantidade significativa de espaço em disco no servidor para fazer backups e depois copiá-los para o Amazon EC2.