У меня есть база данных heroku postgres, и я хочу перенести ее в Amazon RDS для экономии средств. Какой способ сделать это с минимальным временем простоя? Обычно это включает в себя репликацию базы данных в режиме реального времени, а затем продвижение реплицированной БД в качестве основной БД.
Я знаю, что могу использовать базу данных последователей для переноса БД в heroku, и я могу использовать базу данных реплики чтения для переноса БД в Amazon RDS. Есть ли подобный метод для создания базы данных репликации базы данных heroku, которая живет в моей собственной Amazon RDS?
pg_basebackup
для начала? И иметь дело с различными основными версиями?Ответы:
Уверен, вам придется выполнить старомодный дамп-и-восстановление здесь. 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+), что сделает вашу работу немного быстрее. И, надеюсь, вы можете позволить себе взять окно обслуживания, во время которого вы блокируете записи на ваш сайт, пока происходит переключение ...
источник
Вы можете подключить свое текущее приложение к базе данных RDS и вставить его в Heroku и RDS, я не хочу настраивать репликацию, просто вставить на оба сервера.
После настройки у вас будут новые записи, хранящиеся в обеих базах данных.
Должно быть достаточно легко увидеть, какие записи отсутствуют (например: в таблице 1 все записи с идентификатором 100 или ниже отсутствуют), прочитав первую строку в базе данных RDS. Тогда написание простого сценария экспорта не должно быть слишком сложным, если у вас много таблиц.
Надеюсь, это поможет
источник
Похоже, что AWS DMS (служба миграции баз данных) поддерживает перенос данных из внешних экземпляров SQL. Мне удалось настроить задачу миграции, которая копирует данные и изменения из Heroku в RDS. Работает ли это на самом деле для меня, еще неизвестно;)
--- РЕДАКТИРОВАТЬ ---
Похоже, такие сервисы, как DMS, не работают с Heroku, потому что им требуется больше привилегированных ролей, чем позволяет Heroku в своих базах данных: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -в-повторность-мой-Heroku Postgres-база-к-а-не-Heroku-база
источник