Переход на другой сервер непрост, когда у нас большая база данных. Мы хотим переместить нашу базу данных из 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, но это было бы сложно и сложно понять.