Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Data Transfer
  • Доступные трансферы
  • Начало работы
    • Все руководства
      • MySQL® в YDB
      • PostgreSQL в YDB
      • MySQL® в PostgreSQL
      • PostgreSQL в MySQL®
      • MySQL® в Greenplum®
      • Elasticsearch в OpenSearch
      • OpenSearch в YDB
      • OpenSearch в Greenplum®
      • PostgreSQL в OpenSearch
  • Решение проблем
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • Обучающие курсы

В этой статье:

  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте тестовые данные
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
  • Проверьте работу копирования
  • Проверьте работу репликации
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Миграция со сменой типа хранения данных
  3. PostgreSQL в MySQL®

Миграция данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for MySQL®

Статья создана
Yandex Cloud
Обновлена 8 апреля 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте тестовые данные
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
    • Проверьте работу копирования
    • Проверьте работу репликации
  • Удалите созданные ресурсы

Вы можете настроить перенос данных из базы Managed Service for PostgreSQL в базу Managed Service for MySQL® с помощью сервиса Data Transfer. Для этого:

  1. Подготовьте тестовые данные.
  2. Подготовьте и активируйте трансфер.
  3. Проверьте работоспособность трансфера.

Если созданные ресурсы вам больше не нужны, удалите их.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входят:

  • Плата за кластер Managed Service for PostgreSQL: использование вычислительных ресурсов, выделенных хостам, и дискового пространства (см. тарифы Managed Service for PostgreSQL).
  • Плата за кластер Managed Service for MySQL®: использование вычислительных ресурсов, выделенных хостам, и дискового пространства (см. тарифы Managed Service for MySQL®).
  • Плата за использование публичных IP-адресов для хостов кластеров (см. тарифы Virtual Private Cloud).
  • Плата за каждый трансфер: использование вычислительных ресурсов и количество переданных строк данных (см. тарифы Data Transfer).

Перед началом работыПеред началом работы

Подготовьте инфраструктуру:

Вручную
Terraform
  1. Создайте кластер-источник Managed Service for PostgreSQL в любой зоне доступности, с хостами любой подходящей конфигурации в публичном доступе, и следующими настройками:

    • Имя БД — mpg_db.
    • Имя пользователя — mpg_user.
    • Пароль — <пароль_источника>.
  2. Выдайте роль mdb_replication пользователю mpg_user.

  3. В той же зоне доступности создайте кластер-приемник Managed Service for MySQL® с хостами любой подходящей конфигурации в публичном доступе и следующими настройками:

    • Имя БД — mmy_db.
    • Имя пользователя — mmy_user.
    • Пароль — <пароль_приемника>.
  4. Убедитесь, что группы безопасности кластеров настроены правильно и допускают подключение к ним:

    • Managed Service for PostgreSQL.
    • Managed Service for MySQL®.
  1. Если у вас еще нет Terraform, установите его.

  2. Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.

  3. Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его.

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

  5. Скачайте в ту же рабочую директорию файл конфигурации postgresql-mysql.tf.

    В этом файле описаны:

    • сети и подсети для размещения кластеров;
    • группы безопасности для подключения к кластерам;
    • кластер-источник Managed Service for PostgreSQL;
    • кластер-приемник Managed Service for MySQL®;
    • эндпоинты для источника и приемника;
    • трансфер.
  6. Укажите в файле postgresql-mysql.tf:

    • Версии MySQL® и PostgreSQL.
    • Пароли пользователей MySQL® и PostgreSQL.
  7. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  8. Создайте необходимую инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Подготовьте тестовые данныеПодготовьте тестовые данные

  1. Подключитесь к базе данных в кластере-источнике Managed Service for PostgreSQL.

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

    Создайте таблицу:

    CREATE TABLE measurements (
        device_id varchar(200) NOT NULL,
        datetime timestamp NOT NULL,
        latitude real NOT NULL,
        longitude real NOT NULL,
        altitude real NOT NULL,
        speed real NOT NULL,
        battery_voltage real,
        cabin_temperature real NOT NULL,
        fuel_level real,
        PRIMARY KEY (device_id)
    );
    

    Наполните таблицу данными:

    INSERT INTO measurements VALUES
    ('iv9a94th6rzt********', '2022-06-05 17:27:00', 55.70329032, 37.65472196,  427.5,    0, 23.5, 17, NULL),
    ('rhibbh3y08qm********', '2022-06-06 09:49:54', 55.71294467, 37.66542005, 429.13, 55.5, NULL, 18, 32);
    

Подготовьте и активируйте трансферПодготовьте и активируйте трансфер

Вручную
Terraform
  1. Создайте эндпоинт-источник типа PostgreSQL и укажите в нем параметры подключения к кластеру:

    • Тип инсталляции — Кластер Managed Service for PostgreSQL.
    • Кластер Managed Service for PostgreSQL — <имя_кластера_источника_PostgreSQL> из выпадающего списка.
    • База данных — mpg_db.
    • Пользователь — mpg_user.
    • Пароль — <пароль_пользователя>.
  2. Создайте эндпоинт-приемник типа MySQL® и укажите в нем параметры подключения к кластеру:

    • Тип подключения — Кластер Managed Service for MySQL.
    • Кластер Managed Service for MySQL — <имя_кластера_приемника_MySQL®> из выпадающего списка.
    • База данных — mmy_db.
    • Пользователь — mmy_user.
    • Пароль — <пароль_пользователя>.
  3. Создайте трансфер типа Копирование и репликация, использующий созданные эндпоинты.

  4. Активируйте трансфер и дождитесь его перехода в статус Реплицируется.

  1. Укажите в файле postgresql-mysql.tf значение 1 для параметра transfer_enabled.

  2. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  3. Создайте необходимую инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

  4. Трансфер активируется автоматически. Дождитесь его перехода в статус Реплицируется.

Примечание

Если при активации трансфера возникает ошибка вида Unable to push DDL:

  1. Подключитесь к базе приемника и создайте в ней пустую таблицу measurements, аналогичную таблице в источнике.
  2. Перезапустите трансфер.

Проверьте работоспособность трансфераПроверьте работоспособность трансфера

Чтобы убедиться в работоспособности трансфера, проверьте работу копирования и репликации.

Проверьте работу копированияПроверьте работу копирования

  1. Подключитесь к базе данных в кластере-приемнике Managed Service for MySQL®.

  2. Убедитесь, что таблица из источника перенесена в базу приемника. Для этого выполните запрос:

    SELECT * FROM measurements;
    

Проверьте работу репликацииПроверьте работу репликации

  1. Подключитесь к базе данных в кластере-источнике Managed Service for PostgreSQL.

  2. Добавьте данные в таблицу measurements:

    INSERT INTO measurements VALUES
    ('iv7b74th678t********', '2020-06-08 17:45:00', 53.70987913, 36.62549834, 378.0, 20.5, 5.3, 20, NULL);
    
  3. Убедитесь, что добавленная строка появилась в базе данных приемника:

    1. Подключитесь к базе данных в кластере-приемнике Managed Service for MySQL®.

    2. Выполните запрос:

      SELECT * FROM measurements;
      

Удалите созданные ресурсыУдалите созданные ресурсы

Примечание

Перед тем как удалить созданные ресурсы, деактивируйте трансфер.

Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:

Вручную
Terraform
  • Трансфер.
  • Эндпоинты.
  • Кластер Managed Service for MySQL®.
  • Кластер Managed Service for PostgreSQL.
  1. В терминале перейдите в директорию с планом инфраструктуры.

    Важно

    Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.

  2. Удалите ресурсы:

    1. Выполните команду:

      terraform destroy
      
    2. Подтвердите удаление ресурсов и дождитесь завершения операции.

    Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.

Была ли статья полезна?

Предыдущая
MySQL® в PostgreSQL
Следующая
MySQL® в Greenplum®
Проект Яндекса
© 2025 ООО «Яндекс.Облако»