J'ai une base de données Heroku Postgres et je souhaite la migrer vers Amazon RDS pour réduire les coûts. Comment le faire avec un temps d'arrêt minimal? Cela implique généralement la réplication de la base de données en temps réel, puis la promotion de la base de données répliquée en tant que base de données principale.
Je sais que je peux utiliser une base de données suiveur pour migrer la base de données dans heroku, et je peux utiliser la base de données de réplicas en lecture pour migrer la base de données dans Amazon RDS. Existe-t-il une méthode similaire pour créer une réplication de base de données de Heroku DB qui vit dans mon propre Amazon RDS?
pg_basebackup
pour commencer? Et gérer les différentes versions principales?Réponses:
Je suis sûr que vous allez devoir effectuer un bon vidage et restauration à l'ancienne ici. Amazon ne semble pas offrir d'autres options d'importation que le chargement dans un vidage:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html
et même s'ils l'ont fait, AFAICT les seules options d'exportation offertes par Heroku sont pg_dumps (c'est-à-dire pas les sauvegardes de base ou la possibilité de configurer un nœud de secours automatique externe):
https://devcenter.heroku.com/articles/heroku-postgres-import-export
Si vous êtes chanceux, vous utilisez une version Postgres suffisamment nouvelle pour prendre en charge pg_dump parallélisé (9.3+) et pg_restore parallélisé (8.4+), ce qui rendra votre travail un peu plus rapide. Et j'espère que vous pouvez vous permettre de prendre une fenêtre de maintenance pendant laquelle vous verrouillez les écritures sur votre site pendant le basculement ...
la source
Vous pouvez connecter votre application actuelle à la base de données RDS et l'insérer dans Heroku et RDS, je ne veux pas configurer la réplication, juste pour insérer dans les deux serveurs.
Une fois cela configuré, vous aurez de nouveaux enregistrements stockés dans les deux bases de données.
Il devrait être assez facile de voir quels enregistrements sont manquants (par exemple: dans la table1, tous les enregistrements avec l'ID 100 ou inférieur sont manquants) en lisant la première ligne de la base de données RDS. L'écriture d'un simple script d'exportation ne devrait pas être trop difficile à moins d'avoir beaucoup de tables.
J'espère que cela aide
la source
Il semble que AWS DMS (Database Migration Service) prend en charge la migration des données à partir d'instances SQL externes. J'ai pu mettre en place une tâche de migration qui réplique les données et les modifications de Heroku vers RDS. Il reste à voir si cela fonctionne réellement pour moi;)
--- ÉDITER ---
Il semble que les services comme DMS ne fonctionnent pas avec Heroku, car ils nécessitent des rôles plus privilégiés que Heroku ne le permet sur leurs bases de données: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -à-répliquer-ma-base de données postgres-heroku-à-une-base de données non-heroku
la source