Ich habe eine Heroku-Postgres-Datenbank und möchte diese zu Amazon RDS migrieren, um Kosten zu sparen. Wie geht das mit minimalen Ausfallzeiten? In der Regel wird dabei die Datenbank in Echtzeit repliziert und anschließend die replizierte Datenbank als Hauptdatenbank heraufgestuft.
Ich weiß, dass ich eine Follower-Datenbank verwenden kann, um DB in heroku zu migrieren, und ich kann eine Read Replica-Datenbank verwenden, um DB in Amazon RDS zu migrieren. Gibt es eine ähnliche Methode, um eine Datenbankreplikation von heroku DB zu erstellen, die in meinem eigenen Amazon RDS lebt?
pg_basebackup
Anfang? Und mit unterschiedlichen Hauptversionen umgehen?Antworten:
Ich bin mir ziemlich sicher, dass Sie hier ein altmodisches Dump-and-Restore durchführen müssen. Amazon bietet anscheinend keine anderen Importoptionen als das Laden in einen Dump:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html
und selbst wenn dies der Fall ist, sind AFAICT die einzigen von Heroku angebotenen Exportoptionen pg_dumps (dh keine Basisbackups oder die Möglichkeit, einen externen Hot-Standby-Knoten einzurichten):
https://devcenter.heroku.com/articles/heroku-postgres-import-export
Wenn Sie Glück haben, verwenden Sie eine Postgres-Version, die neu genug ist, um sowohl parallelisiertes pg_dump (9.3+) als auch parallelisiertes pg_restore (8.4+) zu unterstützen, was Ihre Arbeit etwas beschleunigt. Und hoffentlich können Sie es sich leisten, ein Wartungsfenster einzurichten, in dem Sie Schreibvorgänge auf Ihrer Site sperren, während die Umstellung läuft ...
quelle
Sie können Ihre aktuelle App mit der RDS-Datenbank verbinden und sie sowohl in Heroku als auch in RDS einfügen lassen. Ich beabsichtige nicht, die Replikation einzurichten, sondern nur in beide Server einzufügen.
Sobald dies eingerichtet ist, werden in beiden Datenbanken neue Datensätze gespeichert.
Es sollte leicht zu erkennen sein, welche Datensätze fehlen (zum Beispiel: In Tabelle 1 fehlen alle Datensätze mit der ID 100 oder niedriger), indem Sie die erste Zeile in der RDS-Datenbank lesen. Dann sollte es nicht allzu schwierig sein, ein einfaches Exportskript zu schreiben, es sei denn, Sie haben viele Tabellen.
Ich hoffe es hilft
quelle
Es sieht so aus, als ob AWS DMS (Database Migration Service) die Migration von Daten aus externen SQL-Instanzen unterstützt. Ich konnte eine Migrationsaufgabe einrichten, die Daten und Änderungen von Heroku zu RDS repliziert. Ob es bei mir tatsächlich funktioniert ist noch abzuwarten;)
--- EDIT ---
Es sieht so aus, als würden Dienste wie DMS nicht mit Heroku funktionieren, da sie mehr privilegierte Rollen erfordern, als Heroku für ihre Datenbanken zulässt: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -zu-replizieren-meine-heroku-postgres-datenbank-zu-einer-nicht-heroku-datenbank
quelle