Перемістіть базу даних heroku на RDS Amazon з мінімальним простоєм


15

У мене є база даних поштових повідомлень heroku і хочу перенести її на RDS Amazon, щоб заощадити витрати. Який спосіб це зробити з мінімальним простоєм? Зазвичай це включає реплікацію бази даних в режимі реального часу, а потім просування реплікуваної БД як основну БД.

Я знаю, що я можу використовувати базу даних послідовників для переміщення БД в heroku, і я можу використовувати базу даних реплік для перенесення БД в Amazon RDS. Чи існує подібний метод створення реплікації бази даних heroku БД, що живе в моєму власному RDS Amazon?


2
Ви можете зробити рабовласником в RDS, коли все реплікується, видаліть головку heroku просунути RDS до Master.
Сем

2
@SamD Я не вважав, що Amazon підтримує рабів PostgreSQL, які отримують із зовнішніх баз даних. Вони додали це? Я не бачу цього в docs.aws.amazon.com/AmazonRDS/latest/UserGuide/… . Якщо його буде додано, посилання на документацію буде дуже вдячна. Як ви годуєте це pg_basebackupдля початку? І мати справу з різними основними версіями?
Крейг Рінгер

Відповіді:


3

Досить впевнений, що вам тут доведеться виконати хороший старомодний сміттєзвалитель. Схоже, Amazon не пропонує інших варіантів імпорту, крім завантаження на дамп:

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html

і навіть якщо вони це зробили, AFAICT єдиними варіантами експорту, запропонованими Heroku, є pg_dumps (тобто не базові резервні копії або можливість встановлення зовнішнього гарячого резервного вузла):

https://devcenter.heroku.com/articles/heroku-postgres-import-export

Якщо вам пощастило, ви використовуєте нову версію Postgres, достатню для підтримки паралелізованого pg_dump (9.3+) та паралелізованого pg_restore (8.4+), що зробить вашу роботу трохи швидшою. І, сподіваємось, ви можете дозволити собі взяти вікно технічного обслуговування, під час якого ви заблокуєте запису на ваш сайт, поки відбувається переключення ...


1

Ти можеш підключити свій поточний додаток до бази даних RDS і вставити його як в Heroku, так і в RDS, я не маю на увазі налаштування реплікації, а просто вставити на обох серверах.

Після цього налаштування у вас будуть зберігатися нові записи в обох базах даних.

Потрібно досить легко побачити, яких записів немає (наприклад: у таблиці1 усі записи з id 100 або нижче відсутні), прочитавши перший рядок у базі даних RDS. Тоді написання простого сценарію експорту не повинно бути занадто складним, якщо у вас багато таблиць.

Сподіваюся, це допомагає


1

Схоже, AWS DMS (служба міграції баз даних) підтримує міграцію даних із зовнішніх екземплярів SQL. Мені вдалося встановити міграційне завдання, яке копіює дані та зміни від Heroku до RDS. Чи насправді це працює для мене ще не з'ясовано;)

--- редагувати ---

Схоже, такі служби, як DMS, не працюють з Heroku, оскільки їм потрібні більше привілейовані ролі, ніж Heroku дозволяє у своїх базах даних: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -to-replicate-my-heroku-postgres-database-to-a-non-heroku-database

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.