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

Перенос данных MySQL с 1 сервера RDS на другой

Как мне перенести определенные данные (возвращенные простым запросом) из одной базы данных в AWS RDS в другую?

Допускается, но не рекомендуется, перерыв до 20 минут.

Мой текущий план - использовать Sequel Pro для выполнения экспорта, а затем импортировать его в целевую базу данных, но мне интересно, есть ли лучший способ сделать это.

Кстати: база данных - это в основном InnoDB и некоторые таблицы MyISAM.

Ваш вопрос далеко не ясен, но если я правильно его интерпретирую, самым простым методом является использование select into query, который вставляет результаты запроса в таблицу, которая затем может быть скопирована в целевую систему с помощью dump и load или реплицирована в соответствии с предложением coredump.

Эта ветка немного устарела. AWS теперь предлагает для этой цели продукт Data Pipeline. Однако у меня была такая же необходимость регулярно перемещать частичные данные из одной БД в другую (разные серверы RDS). Подход, который я использовал, заключался в создании задания cron, размещенного на Iron.io. Сервис также работает на AWS US East, поэтому задержки в сети не так велики. Подключитесь к одному серверу, возьмите свои данные и отформатируйте их. Затем подключитесь к другому серверу и обновите. Вы можете запускать задания с Iron Worker каждые 5 минут.

Единственный способ, который я могу придумать для перемещения данных с одного сервера RDS на другой, - это выполнить mysqldump для таблицы из исходного экземпляра MySQL RDS. Затем загрузите таблицу в целевой экземпляр MySQL RDS.

ВНИМАНИЕ: за передачу данных может взиматься плата !!!

Согласно Документация по AWS RDS в Data Transfer

Приведенные ниже цены основаны на данных, передаваемых «в» и «из» Amazon RDS.

Region: (Pricing Varies Between Regions, Shown is North Virgina Pricing)

                            Pricing
Data Transfer IN
All data transfer in        $0.000 per GB
Data Transfer OUT***
First 1 GB / month          $0.000 per GB
Up to 10 TB / month         $0.120 per GB
Next 40 TB / month          $0.090 per GB
Next 100 TB / month         $0.070 per GB
Next 350 TB / month         $0.050 per GB
Next 524 TB / month         Contact Us
Next 4 PB / month           Contact Us
Greater than 5 PB / month   Contact Us

Сноски

  • Передача данных между инстансами Amazon RDS и Amazon EC2 в одной зоне доступности осуществляется бесплатно.
  • Передача данных между зонами доступности для репликации развертываний в нескольких зонах доступности осуществляется бесплатно.
  • Инстансы БД Amazon RDS вне VPC: для данных, передаваемых между инстансом Amazon EC2 и инстансом БД Amazon RDS в разных зонах доступности одного и того же региона, плата за передачу данных в инстанс БД Amazon RDS или из него не взимается. Плата взимается только за передачу данных в инстанс Amazon EC2 или из него, при этом применяется стандартная плата за региональную передачу данных Amazon EC2 (0,01 доллара США за вход / выход ГБ).
  • Инстансы БД Amazon RDS внутри VPC: для данных, передаваемых между инстансом Amazon EC2 и инстансом БД Amazon RDS в разных зонах доступности одного и того же региона, с обеих сторон взимается региональная плата за передачу данных Amazon EC2.
  • Данные, передаваемые между сервисами Amazon RDS и AWS в разных регионах, оплачиваются как передача данных через Интернет на обеих сторонах передачи.
  • ** В рамках уровня бесплатного использования AWS новые клиенты AWS получат бесплатно 15 ГБ передаваемых данных каждый месяц, агрегированных по всем сервисам AWS, в течение одного года.
  • *** Уровни тарифов учитывают ваше совокупное использование исходящей передачи данных в Amazon EC2, Amazon S3, Amazon RDS, Amazon SimpleDB, Amazon SQS, Amazon SNS, AWS Storage Gateway, Amazon DynamoDB и Amazon VPC.

Если они обе являются базами данных MySQL, то, возможно, вы могли бы использовать механизм объединения (который облегчает доступ к базам данных на удаленных серверах) для обновления удаленной базы данных с помощью запланированной задачи для обновления так часто, как требуется.

Не можете настроить репликацию? Это был бы более безопасный / быстрый способ сделать это, но я не уверен, что вы можете реплицировать только определенные запросы (хотя вы можете сделать это с определенными базами данных)