Mam bazę danych postgres heroku i chcę ją zmigrować do Amazon RDS, aby zaoszczędzić koszty. Jak to zrobić przy minimalnym przestoju? Zwykle wymaga to replikacji bazy danych w czasie rzeczywistym, a następnie promowania replikowanej bazy danych jako głównej bazy danych.
Wiem, że mogę użyć bazy danych obserwujących do migracji bazy danych w ramach heroku i mogę użyć bazy danych replik odczytu do migracji bazy danych w ramach usługi Amazon RDS. Czy istnieje podobna metoda tworzenia replikacji bazy danych heroku DB, która mieszka w mojej własnej usłudze Amazon RDS?
pg_basebackup
na początek? I radzisz sobie z różnymi głównymi wersjami?Odpowiedzi:
Jestem prawie pewien, że będziesz musiał tutaj wykonać dobry, staromodny zrzut i przywracanie. Wydaje się, że Amazon nie oferuje żadnych innych opcji importu niż ładowanie na zrzut:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html
a nawet jeśli tak, AFAICT jedynymi opcjami eksportu oferowanymi przez Heroku są pg_dumps (tj. nie są to kopie zapasowe bazy danych lub możliwość skonfigurowania zewnętrznego gorącego węzła rezerwowego):
https://devcenter.heroku.com/articles/heroku-postgres-import-export
Jeśli masz szczęście, używasz wersji Postgres wystarczająco nowej, aby obsługiwać zarówno równoległy pg_dump (9.3+), jak i równoległy pg_restore (8.4+), co przyspieszy twoją pracę. Mamy nadzieję, że możesz sobie pozwolić na okno konserwacji, podczas którego blokujesz zapisy na swojej stronie, gdy trwa przełączanie ...
źródło
Możesz podłączyć swoją bieżącą aplikację do bazy danych RDS i wstawić ją zarówno do Heroku, jak i RDS, nie chcę konfigurować replikacji, wystarczy wstawić oba serwery.
Po skonfigurowaniu będziesz mieć nowe rekordy przechowywane w obu bazach danych.
Powinno być łatwo sprawdzić, które rekordy brakuje (na przykład: w tabeli 1 brakuje wszystkich rekordów o identyfikatorze 100 lub niższym), czytając pierwszy wiersz w bazie danych RDS. Pisanie prostego skryptu eksportu nie powinno być zbyt trudne, chyba że masz dużo tabel.
Mam nadzieję, że to pomoże
źródło
Wygląda na to, że AWS DMS (usługa migracji bazy danych) obsługuje migrację danych z zewnętrznych instancji SQL. Udało mi się skonfigurować zadanie migracji, które replikuje dane i zmiany z Heroku na RDS. Nie wiadomo, czy to faktycznie działa dla mnie;)
--- EDYTOWAĆ ---
Wygląda na to, że usługi takie jak DMS nie działają z Heroku, ponieważ wymagają więcej uprzywilejowanych ról, niż Heroku zezwala w swoich bazach danych: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -to-replicate-my-heroku-postgres-database-to-a-non-heroku-database
źródło