Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • ИИ для бизнеса
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex Managed Service for MySQL®
  • Начало работы
    • Все руководства
    • Анализ производительности и оптимизация Managed Service for MySQL®
    • Выгрузка базы данных в Yandex Data Processing
      • Обзор
      • Перенос данных с использованием сервиса Data Transfer
      • Перенос данных с помощью логического дампа
    • Миграция базы данных из Managed Service for MySQL® в MySQL®
    • Поставка данных из Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Миграция базы данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Миграция базы данных из Managed Service for MySQL® в Yandex Object Storage
    • Перенос данных из Yandex Object Storage в Managed Service for MySQL®
    • Захват изменений MySQL® и поставка в YDS
    • Миграция данных из Yandex Managed Service for PostgreSQL в Managed Service for MySQL® с помощью Yandex Data Transfer
    • Миграция данных из Managed Service for MySQL® в Yandex Managed Service for PostgreSQL с помощью Yandex Data Transfer
    • Миграция данных из Managed Service for MySQL® в Yandex MPP Analytics for PostgreSQL с помощью Yandex Data Transfer
    • Синхронизация данных из стороннего кластера MySQL® в Yandex Managed Service for MySQL® с помощью Yandex Data Transfer
    • Миграция базы данных из MySQL® в ClickHouse® с помощью Yandex Data Transfer
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

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

  • Необходимые платные ресурсы
  • Перед началом работы
  • Создание дампа
  • (Опционально) Загрузка дампа на виртуальную машину в Yandex Cloud
  • Восстановление данных
  • Удаление созданных ресурсов
  1. Практические руководства
  2. Миграция базы данных из стороннего кластера MySQL®
  3. Перенос данных с помощью логического дампа

Перенос данных из стороннего кластера MySQL® через создание и восстановление логического дампа

Статья создана
Yandex Cloud
Обновлена 13 ноября 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Создание дампа
  • (Опционально) Загрузка дампа на виртуальную машину в Yandex Cloud
  • Восстановление данных
  • Удаление созданных ресурсов

Чтобы перенести данные в кластер Managed Service for MySQL®, создайте логический дамп нужной базы и восстановите его в кластере-приемнике. Это можно сделать двумя способами:

  • С помощью утилит mydumper и myloader. Дамп базы создается в виде набора файлов в отдельном каталоге.
  • С помощью утилит mysqldump и mysql. Дамп базы создается в виде одного файла.

Этапы миграции:

  1. Создайте дамп переносимой базы.

  2. (Опционально) Загрузите дамп на промежуточную виртуальную машину в Yandex Cloud.

    Переносить данные на промежуточную виртуальную машину в Yandex Compute Cloud нужно, если:

    • К вашему кластеру Managed Service for MySQL® нет доступа из интернета.
    • Ваше оборудование или соединение с кластером в Yandex Cloud недостаточно надежны.

    Чем больше объем переносимых данных и необходимая скорость переноса, тем выше требования к виртуальной машине: числу ядер процессора, оперативной памяти и дисковому пространству.

  3. Восстановите данные из дампа.

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

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

  • Кластер Managed Service for MySQL®: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий (см. тарифы Managed Service for MySQL®).
  • Публичные IP-адреса, если для хостов кластера включен публичный доступ (см. тарифы Virtual Private Cloud).
  • Виртуальная машина, если она создана для загрузки дампа: использование вычислительных ресурсов, хранилища, публичного IP-адреса и операционной системы (см. тарифы Compute Cloud).

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

Создайте необходимые ресурсы:

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

    • Версия MySQL® должна быть не ниже чем в кластере-источнике.

      Перенос данных с повышением мажорной версии MySQL® возможен, но не гарантируется. Подробнее см. в документации MySQL®.

      Миграция с понижением версии MySQL® невозможна.

    • Режим SQL должен быть таким же, как и в кластере-источнике.

  2. (Опционально) Создайте виртуальную машину на базе Ubuntu 20.04 LTS со следующими параметрами:

    • Диски и файловые хранилища → Размер — достаточный для хранения распакованного и нераспакованного дампов.

      Рекомендуется использовать объем в два или более раза превышающий суммарный объем дампа и архива с ним.

    • Сетевые настройки:

      • Подсеть — выберите подсеть в той же облачной сети, в которой размещен кластер-приемник.
      • Публичный IP-адрес — выберите Автоматически или один адрес из списка зарезервированных IP-адресов.
  3. Если вы используете группы безопасности для промежуточной виртуальной машины и кластера Managed Service for MySQL®, настройте их.

  1. Если у вас еще нет Terraform, установите его.

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

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

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

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

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

    • сеть;
    • подсеть;
    • группа безопасности и правило, необходимое для подключения к кластеру;
    • кластер Managed Service for MySQL® с публичным доступом из интернета;
    • (опционально) виртуальная машина с публичным доступом из интернета.
  6. Укажите в файле data-migration-mysql-mmy.tf:

    • параметры кластера-приемника:

      • target_mysql_version — версия MySQL®, она должна быть не ниже чем в кластере-источнике;
      • target_sql_mode — режим SQL, он должен быть таким же, как и в кластере-источнике;
      • target_db_name — имя базы данных;
      • target_user и target_password — имя и пароль пользователя-владельца базы данных.
    • (опционально) параметры виртуальной машины:

      • vm_image_id — идентификатор публичного образа с Ubuntu без GPU. Например, для Ubuntu 20.04 LTS.
      • vm_username и vm_public_key — логин и абсолютный путь к публичному ключу, которые будут использоваться для доступа к виртуальной машине. По умолчанию в образе Ubuntu 20.04 LTS указанный логин игнорируется, вместо него создается пользователь с логином ubuntu. Используйте его для подключения к виртуальной машине.
  7. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

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

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

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

      terraform plan
      

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

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

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

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

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

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

Создание дампаСоздание дампа

С использованием утилиты mysqldump
С использованием утилиты mydumper
  1. Переключите базу в режим только чтение, чтобы не потерять данные, которые могут появиться во время создания дампа.

  2. Установите утилиту mysqldump в кластер-источник, например (для Ubuntu):

    sudo apt update && sudo apt install mysql-client --yes
    
  3. Создайте дамп базы данных:

    mysqldump \
        --host=<FQDN_или_IP-адрес> \
        --user=<имя_пользователя> \
        --password \
        --port=<порт> \
        --set-gtid-purged=OFF \
        --quick \
        --single-transaction \
        <имя_БД> > ~/db_dump.sql
    

    Где --host — FQDN или IP-адрес хоста-мастера в кластере-источнике.

    При необходимости передайте в команде создания дампа дополнительные параметры:

    • --events — если в вашей базе есть периодические события;
    • --routines — если в вашей базе есть хранимые процедуры и функции.

    Для таблиц InnoDB используйте опцию --single-transaction: она гарантирует целостность данных.

  4. В файле дампа исправьте имена движков таблиц на InnoDB:

    sed -i -e 's/MyISAM/InnoDB/g' -e 's/MEMORY/InnoDB/g' db_dump.sql
    
  5. Упакуйте дамп в архив:

    tar -cvzf db_dump.tar.gz ~/db_dump.sql
    
  1. Переключите базу в режим только чтение, чтобы не потерять данные, которые могут появиться во время создания дампа.

  2. Создайте директорию для файлов дампа:

    mkdir db_dump
    
  3. Установите утилиту mydumper в кластер-источник, например (для Ubuntu):

    sudo apt update && sudo apt install mydumper --yes
    
  4. Создайте дамп базы данных:

    mydumper \
        --triggers \
        --events \
        --routines \
        --outputdir=db_dump \
        --rows=10000000 \
        --threads=8 \
        --compress \
        --database=<имя_БД> \
        --user=<имя_пользователя> \
        --ask-password \
        --host=<FQDN_или_IP-адрес>
    

    Где:

    • --triggers — дамп триггеров.
    • --events — дамп событий.
    • --routines — дамп хранимых процедур и функций.
    • --outputdir — директория для файлов дампа.
    • --rows — количество строк во фрагментах, на которые будут разбиты таблицы. Чем меньше значение, тем больше будет файлов в дампе.
    • --threads — количество используемых потоков. Рекомендуется использовать значение, равное половине свободных ядер на сервере.
    • --compress — сжатие выходных файлов.
    • --host — FQDN или IP-адрес хоста-мастера в кластере-источнике.
  5. В файлах дампа исправьте имена движков таблиц на InnoDB:

    sed -i -e 's/MyISAM/InnoDB/g' -e 's/MEMORY/InnoDB/g' `find /db_dump -name '*-schema.sql'`
    
  6. Упакуйте дамп в архив:

    tar -cvzf db_dump.tar.gz ~/db_dump
    

(Опционально) Загрузка дампа на виртуальную машину в Yandex Cloud(Опционально) Загрузка дампа на виртуальную машину в Yandex Cloud

  1. Подключитесь к промежуточной виртуальной машине по SSH.

  2. Скопируйте архив с дампом базы данных на промежуточную виртуальную машину, например, используя утилиту scp:

    scp ~/db_dump.tar.gz <имя_пользователя_ВМ>@<публичный_IP-адрес_ВМ>:~/db_dump.tar.gz
    
  3. Извлеките дамп из архива:

    tar -xzf ~/db_dump.tar.gz
    

Восстановление данныхВосстановление данных

Внимание

Для кластера Managed Service for MySQL® по умолчанию включен AUTOCOMMIT. Не отключайте AUTOCOMMIT в рамках клиентской сессии при восстановлении базы данных из дампа, иначе возможно переполнение хранилища хоста и нарушение работы кластера.

С использованием утилиты mysql
С использованием утилиты myloader

Этот способ подходит, если вы создали дамп с помощью утилиты mysqldump.

  1. Установите утилиту mysql на хост, с которого выполняется восстановление дампа, например (для Ubuntu):

    sudo apt update && sudo apt install mysql-client --yes
    
  2. Запустите восстановление базы из дампа:

    • Если вы восстанавливаете дамп с виртуальной машины в Yandex Cloud:

      mysql \
          --host=c-<идентификатор_кластера-приемника>.rw.mdb.yandexcloud.kz \
          --user=<имя_пользователя> \
          --port=3306 \
          <имя_БД> < ~/db_dump.sql
      
    • Если вы восстанавливаете дамп с хоста, подключающегося к Yandex Cloud из интернета, получите SSL-сертификат и передайте параметры --ssl-ca и --ssl-mode в команде восстановления:

      mysql \
          --host=c-<идентификатор_кластера-приемника>.rw.mdb.yandexcloud.kz \
          --user=<имя_пользователя> \
          --port=3306 \
          --ssl-ca=~/.mysql/root.crt \
          --ssl-mode=VERIFY_IDENTITY \
          <имя_БД> < ~/db_dump.sql
      

Этот способ подходит, если вы создали дамп с помощью утилиты mydumper и используете для восстановления промежуточную виртуальную машину.

  1. Установите утилиту myloader на хост, с которого выполняется восстановление дампа, например (для Ubuntu):

    sudo apt update && sudo apt install mydumper --yes
    
  2. Запустите восстановление базы из дампа:

    myloader \
        --host=c-<идентификатор_кластера-приемника>.rw.mdb.yandexcloud.kz \
        --directory=db_dump/ \
        --overwrite-tables \
        --threads=8 \
        --compress-protocol \
        --user=<имя_пользователя> \
        --ask-password
    

Идентификатор кластера можно получить со списком кластеров в каталоге.

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

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

Вручную
Terraform
  • Удалите кластер Managed Service for MySQL®.
  • Если вы создавали промежуточную виртуальную машину, удалите ее.
  • Если вы зарезервировали публичные статические IP-адреса, освободите и удалите их.
  1. В терминале перейдите в директорию с планом инфраструктуры.

    Важно

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

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

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

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

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

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

Предыдущая
Перенос данных с использованием сервиса Data Transfer
Следующая
Миграция базы данных из Managed Service for MySQL® в MySQL®
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»