Preciso importar um banco de dados PostgresSql de um servidor antigo para um novo Amazon RDS.
Criei um arquivo db dump, conectado ao meu RDS via pgAdmin e comecei a importar o console do pgAdmin ( \i dump_file.sql
).
Tudo parece funcionar, mas é realmente muito lento e parece estar parado na mesma linha por algumas horas. Abri o monitor RDS e vejo o seguinte:
Portanto, parece que há operadores de gravação (mas por que tão poucos) e algum uso de CPU, mas parece que está usando uma porcentagem muito baixa de sua capacidade. Também verifiquei o uso do disco em detalhes e o disco diminui, então está realmente gravando, por exemplo, não está travado, apenas muito lento.
O que posso fazer para importar meu db mais rápido? por que é tão lento? por que ele usa tão pouca CPU e operações de gravação?
Parece que o RDS não usa todo o seu potencial.
PS meu banco de dados é de aproximadamente 10 Gb de tamanho.
A configuração padrão do postgresql não é boa para importação de dados em massa. A principal coisa que você precisa fazer antes de importar tantos dados é aumentar
max_wal_size
para reduzir o número de vezes que o postgresql precisará executar um ponto de verificação durante a importação. Além disso, se você tiver certeza da qualidade dos dados, importe-os em uma transação. Consulte https://www.postgresql.org/docs/9.5/static/populate.htm para outras ideias (desative a replicação, desative os índices, desative os gatilhos, usepg_restore --jobs X
para paralelizar a importação)