Перенос базы данных heroku в Amazon RDS с минимальным временем простоя


15

У меня есть база данных heroku postgres, и я хочу перенести ее в Amazon RDS для экономии средств. Какой способ сделать это с минимальным временем простоя? Обычно это включает в себя репликацию базы данных в режиме реального времени, а затем продвижение реплицированной БД в качестве основной БД.

Я знаю, что могу использовать базу данных последователей для переноса БД в heroku, и я могу использовать базу данных реплики чтения для переноса БД в Amazon RDS. Есть ли подобный метод для создания базы данных репликации базы данных heroku, которая живет в моей собственной Amazon RDS?


2
вы можете сделать раба в RDS, когда все будет скопировано, удалить геройку-мастера, продвинуть RDS к Мастеру.
Сэм

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 (т.е. не basebackups или возможность настроить внешний узел горячего резервирования):

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

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


1

Вы можете подключить свое текущее приложение к базе данных RDS и вставить его в Heroku и RDS, я не хочу настраивать репликацию, просто вставить на оба сервера.

После настройки у вас будут новые записи, хранящиеся в обеих базах данных.

Должно быть достаточно легко увидеть, какие записи отсутствуют (например: в таблице 1 все записи с идентификатором 100 или ниже отсутствуют), прочитав первую строку в базе данных RDS. Тогда написание простого сценария экспорта не должно быть слишком сложным, если у вас много таблиц.

Надеюсь, это поможет


1

Похоже, что AWS DMS (служба миграции баз данных) поддерживает перенос данных из внешних экземпляров SQL. Мне удалось настроить задачу миграции, которая копирует данные и изменения из Heroku в RDS. Работает ли это на самом деле для меня, еще неизвестно;)

--- РЕДАКТИРОВАТЬ ---

Похоже, такие сервисы, как DMS, не работают с Heroku, потому что им требуется больше привилегированных ролей, чем позволяет Heroku в своих базах данных: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -в-повторность-мой-Heroku Postgres-база-к-а-не-Heroku-база

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.