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 |
---|---|---|
|
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. |
|
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 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. |
|
1800 |
O valor desta configuração permite um revezamento menos frequente de WAL. |
|
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) |
|
8192 |
Este valor está em unidades de 8 KB. Reforçando, isso ajuda na velocidade de geração WAL |
|
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.
Tópicos
- Importar um banco de dados PostgreSQL de uma instância do Amazon EC2
- Uso do comando \copy para importar dados em uma tabela em uma instância de banco de dados PostgreSQL
- Importar dados do Amazon S3 para uma instância de banco de dados do RDS para PostgreSQL
- Transportar bancos de dados PostgreSQL entre instâncias de banco de dados