Como importar dados no PostgreSQL do Amazon RDS - Amazon Relational Database Service

Como importar dados no PostgreSQL do Amazon RDS

Vamos supor que você tenha uma implantação do PostgreSQL que deseja mover para o Amazon RDS. A complexidade da tarefa dependerá do tamanho do banco de dados e dos tipos de objetos de banco de dados a serem transferidos. Por exemplo, considere um banco de dados que contenha conjuntos de dados na ordem de gigabytes, juntamente com gatilhos e procedimentos armazenados. Esse banco de dados será mais complexo do que um banco de dados simples com apenas alguns megabytes de dados de teste e sem gatilhos e procedimentos armazenados.

Recomendamos que você use ferramentas nativas de migração do banco de dados PostgreSQL nas seguintes condições:

  • Quando há uma migração homogênea, em que você está migrando de um banco de dados com o mesmo mecanismo de banco de dados que o de destino.

  • Quando for migrar um banco de dados inteiro.

  • As ferramentas nativas permitirem que você migre o sistema com um tempo mínimo de inatividade.

Na maioria dos outros casos, executar uma migração de banco de dados usando o AWS Database Migration Service (AWS DMS) é a melhor abordagem. AWS O DMS pode migrar bancos de dados sem o tempo de inatividade e, para muitos mecanismos de banco de dados, continua a replicação contínua até que você esteja pronto para mudar para o banco de dados de destino. Você pode migrar para o mesmo mecanismo de banco de dados ou um mecanismo de banco de dados diferente usando o AWS DMS. Se você estiver migrando para um mecanismo de banco de dados diferente do seu banco de dados de origem, poderá usar a AWS Schema Conversion Tool (AWS SCT). Use o AWS SCT para migrar os objetos de esquema que não são migrados pelo AWS DMS. Para obter mais informações sobre como usar o AWS DMS, consulte O que é o AWS Database Migration Service?.

Modifique o grupo de parâmetros do banco de dados para incluir as seguintes configurações somente na sua importação. Você deve testar as configurações dos parâmetros para encontrar as que forem mais eficientes para o tamanho da instância do banco de dados. Você também precisará reverter esses parâmetros aos seus valores de produção após a conclusão da importação.

Modifique as configurações da instância de banco de dados da seguinte forma:

  • Desabilite os backups de instâncias de banco de dados (defina backup_retention como 0).

  • Desabilite o multi-AZ.

Modifique o grupo de parâmetros de banco de dados para incluir as seguintes configurações. Você só deve usar essas configurações para importar dados. Você deve testar as configurações dos parâmetros para encontrar as que forem mais eficientes para o tamanho da instância do banco de dados. Você também precisará reverter esses parâmetros aos seus valores de produção após a conclusão da importação.

Parâmetro Valor recomendado para importação Descrição

maintenance_work_mem

524288, 1048576, 2097152 ou 4194304 (em KB). Essas configurações são comparáveis a 512 MB, 1 GB, 2 GB e 4 GB.

O valor desta configuração depende do tamanho do host. Este parâmetro é usado durante instruções CREATE INDEX e cada comando paralelo pode usar essa quantidade de memória. Calcule o valor mais apropriado para não ajustá-lo tão alto resultando na falta de memória.

max_wal_size

256 (para a versão 9.6), 4096 (para as versões 10 e posteriores)

Tamanho máximo para deixar o WAL aumentar durante os pontos de verificação automáticos. Aumentar esse parâmetro pode aumentar a quantidade de tempo necessária para a recuperação de falhas. Esse parâmetro substitui checkpoint_segments para o PostgreSQL 9.6 e posteriores.

Para o PostgreSQL versão 9.6, esse valor está em unidades de 16 MB. Para versões posteriores, o valor está em unidades de 1 MB. Por exemplo, na versão 9.6, 128 significa 128 blocos, cada um com tamanho de 16 MB. Na versão 12.4, 2048 significa 2048 blocos, cada um com tamanho de 1 MB.

checkpoint_timeout

1800

O valor desta configuração permite um revezamento menos frequente de WAL.

synchronous_commit

Desativado

Desabilite essa configuração para acelerar a gravação. Desativar esse parâmetro pode aumentar o risco de perda de dados em caso de uma falha no servidor (não desative o FSYNC)

wal_buffers

8192

Este valor está em unidades de 8 KB. Reforçando, isso ajuda na velocidade de geração WAL

autovacuum

0

Desative o parâmetro de autovacuum do PostgreSQL enquanto estiver carregando dados para que ele não use os recursos

Use os comandos pg_dump -Fc (compactado) ou pg_restore -j (paralelo) com essas configurações.

nota

O comando do PostgreSQL pg_dumpall requer permissões de super_user que não são concedidas ao criar uma instância de banco de dados, por isso ele não pode ser usado para importação de dados.