Назад | Перейти на главную страницу

Переход на AWS с Linode

Переход на другой сервер непрост, когда у нас большая база данных. Мы хотим переместить нашу базу данных из Linode в базу данных amazon RDS, я попытался pg_dump и pg_restore и это удается, но на это уходит много времени.

Мой вопрос: есть ли такой быстрый способ, как сжатие, ИЛИ могу ли я синхронизировать базу данных в linode с базой данных в Amazon RDS

так что мне просто нужно изменить CNAME для ссылки на Amazon, а затем он продолжит работу, поскольку мы уже синхронизируем базу данных вместе?

Любое предложение поможет!

Если вы переходили на другой реальный хост, а не на RDS, вы могли бы использовать потоковую репликацию, чтобы делать то, что вам нужно:

  • pg_basebackup БД на новый хост
  • Запустите реплику с recovery.conf указывая на текущего мастера
  • Пусть репликация догонит
  • Перезагрузите мастер с включенной синхронной репликацией для реплики.
  • ... затем выключите мастер, перезапустите реплику как мастер и вперед.

Это не работает с RDS, потому что RDS не дает вам доступа к базовому серверу. Вы не можете использовать pg_basebackup или управляйте собственной потоковой репликацией. Так что, если вы используете RDS, ваш единственный реальный вариант - сделать дамп и перезагрузить.

Теоретически Amazon может позволить пользователям настраивать реплики RDS мастеров, которых нет в RDS, а затем повышать их до мастеров. Это было бы очень хорошей идеей, поскольку это позволило бы людям гораздо легче переносить БД в RDS. Однако на момент написания у него нет такой возможности, и это потенциально было бы сложно сделать, потому что он работал бы только тогда, когда исходная база данных была скомпилирована с совместимыми параметрами, той же основной версией и на той же архитектуре ЦП. в качестве сервера реплики. Например, вы не можете реплицироваться между x86 и x64. Это также помешало бы Amazon свободно изменять свой PostgreSQL в соответствии с их потребностями.

Это тоже работает в обратном направлении. Вы не можете перенести из RDS с использованием потоковой репликации. Поэтому, если у вас есть большая загруженная БД в RDS, вам будет очень трудно вернуть ее обратно без значительного простоя.

Честно говоря, если у вас уже есть собственная БД, я не вижу привлекательности в RDS. Это дорого и лишает вас большей части контроля над вашими данными. (Обратите внимание, что я работаю в другой компании в сфере услуг PostgreSQL, поэтому мое мнение следует учитывать).

Вы мощь иметь возможность использовать сторонние решения для репликации, такие как Londiste, Bucardo или Slony-I, для репликации вашей базы данных в RDS. Я не пробовал ни один из этих инструментов с RDS и подозреваю, что они не будут работать из-за необходимости установки расширений, запуска демонов тикеров и т. Д. Вы могли бы сделать это с узлом EC2, но это было бы сложно и сложно понять.