Eu tenho um banco de dados heroku postgres e quero migrá-lo para o Amazon RDS para economizar custos. Qual é a maneira de fazer isso com o tempo de inatividade mínimo? Geralmente, isso envolve a replicação do banco de dados em tempo real e a promoção do banco de dados replicado como o banco de dados principal.
Sei que posso usar um banco de dados seguidor para migrar o banco de dados no heroku e posso usar o banco de dados de réplica de leitura para migrar o banco de dados no Amazon RDS. Existe um método semelhante para criar replicação de banco de dados do Heroku DB que mora no meu próprio Amazon RDS?
pg_basebackup
para começar? E lidar com diferentes versões principais?Respostas:
Tenho certeza de que você precisará executar um bom despejo e restauração à moda antiga aqui. A Amazon parece não oferecer outras opções de importação além do carregamento em um despejo:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html
e mesmo se o fizessem, as únicas opções de exportação oferecidas pelo Heroku são pg_dumps (por exemplo, não basebackups ou a capacidade de configurar um nó de espera externa externa):
https://devcenter.heroku.com/articles/heroku-postgres-import-export
Se você tiver sorte, está usando uma versão do Postgres nova o suficiente para suportar pg_dump (9.3+) paralelo e pg_restore (8.4+) paralelo, o que tornará seu trabalho um pouco mais rápido. Esperamos que você possa ter uma janela de manutenção durante a qual você bloqueia as gravações no site enquanto a transição está em andamento ...
fonte
Você pode conectar seu aplicativo atual ao banco de dados do RDS e inseri-lo no Heroku e no RDS, não pretendo configurar a replicação, apenas inserir nos dois servidores.
Uma vez configurado, você terá novos registros armazenados nos dois bancos de dados.
Deve ser fácil ver quais registros estão ausentes (por exemplo: na tabela1, todos os registros com o ID 100 ou inferior), lendo a primeira linha no banco de dados do RDS. Escrever um script de exportação simples não deve ser muito difícil, a menos que você tenha muitas tabelas.
Espero que ajude
fonte
Parece que o AWS DMS (Serviço de Migração de Banco de Dados) oferece suporte à migração de dados de instâncias SQL externas. Consegui configurar uma tarefa de migração que replica dados e alterações do Heroku para o RDS. Se realmente funciona para mim ainda está para ser visto;)
--- EDIT ---
Parece que serviços como o DMS não funcionam com o Heroku, porque exigem funções mais privilegiadas do que o Heroku permite em seus bancos de dados: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -para replicar-meu-heroku-postgres-banco de dados em um banco de dados não-heroku
fonte