Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Managed Service for YDB
  • Начало работы
  • Пошаговые инструкции
    • Обзор
    • Управление базами данных через консоль Yandex Cloud
    • Управление базами данных с помощью YC CLI
    • Подключение к БД с помощью YDB CLI
    • Управление таблицами и директориями
    • Чтение и запись данных
    • Мониторинг состояния базы данных
  • Практические руководства
    • Развертывание веб-приложения
    • Разработка Slack-бота
    • Подключение к YDB из функции Yandex Cloud Functions на Python
    • Подключение к базе данных YDB из функции Yandex Cloud Functions на Node.js
    • Конвертация видео в GIF на Python
    • Разработка навыка Алисы и сайта с авторизацией
    • Миграция базы данных из Yandex Managed Service for MySQL с помощью Yandex Data Transfer
  • Концепции
    • Обзор
    • Термины и определения
    • Режимы работы Serverless и Dedicated
    • Таблицы DynamoDB
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
    • Обзор
    • Бессерверный режим
      • Правила тарификации для бессерверного режима
      • Стоимость запроса для YQL
      • Стоимость запроса для Document API
      • Стоимость запроса для специальных API
      • Стоимость операций с топиками
    • Режим с выделенными инстансами
  • Document API, совместимый с Amazon DynamoDB
    • Инструменты
      • Настройка инструментов AWS
      • Работа с данными через HTTP-интерфейс
      • Работа с AWS CLI
        • Обзор
        • Создание таблицы
        • Добавление данных в таблицу
        • Чтение данных из таблицы
        • Обновление данных
        • Выборка данных
        • Удаление созданных ресурсов
      • Работа с AWS SDK
        • Обзор
        • Создание таблицы
        • Загрузка данных в таблицу
        • Управление записями в таблице
          • Создание записи
          • Чтение записи
          • Обновление записи
          • Удаление записи
        • Поиск и извлечение данных
        • Удаление таблицы
    • Справочник Document API
      • Все методы
      • Actions
        • BatchGetItem
        • BatchWriteItem
        • CreateTable
        • DeleteItem
        • DeleteTable
        • DescribeTable
        • DescribeTimeToLive
        • GetItem
        • ListTables
        • PutItem
        • Query
        • Scan
        • TransactGetItems
        • TransactWriteItems
        • UpdateItem
        • UpdateTimeToLive
    • Общие ошибки при работе с Document API
  • Справочник API Yandex Cloud для Managed Service for YDB
    • Обзор
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • DatabaseService
      • LocationService
      • ResourcePresetService
      • StorageTypeService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • delete
        • get
        • list
        • listPaths
      • Database
        • Overview
        • backup
        • create
        • delete
        • get
        • list
        • move
        • restore
        • start
        • stop
        • update
      • Location
        • Overview
        • get
        • list
      • ResourcePreset
        • Overview
        • get
        • list
      • StorageType
        • Overview
        • get
        • list
  • Вопросы и ответы
  • Публичные материалы
  1. Практические руководства
  2. Миграция базы данных из Yandex Managed Service for MySQL с помощью Yandex Data Transfer

Миграция базы данных из Yandex Managed Service for MySQL с помощью Yandex Data Transfer

Статья создана
Yandex Cloud
  • Подготовьте инфраструктуру
  • Подготовьте кластер-источник
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
  • Удалите созданные ресурсы

С помощью сервиса Data Transfer вы можете перенести данные из кластера-источника Managed Service for MySQL в Managed Service for YDB.

Чтобы перенести данные:

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

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

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

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

  2. Создайте базу данных Managed Service for YDB любой подходящей конфигурации.

  3. Настройте группы безопасности кластера Managed Service for MySQL, чтобы к нему можно было подключаться из интернета.

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

  2. Скачайте файл с настройками провайдера. Поместите его в отдельную рабочую директорию и укажите значения параметров.

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

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

    • сеть;
    • подсеть;
    • группа безопасности и правило, необходимое для подключения к кластеру Managed Service for MySQL;
    • кластер-источник Managed Service for MySQL;
    • база данных Managed Service for YDB;
    • эндпоинт для источника;
    • трансфер.
  4. Укажите в файле data-transfer-mmy-ydb.tf:

    • параметры кластера-источника Managed Service for MySQL, которые будут использоваться как параметры эндпоинта-источника:

      • source_mysql_version — версия MySQL;
      • source_db_name — имя базы данных;
      • source_user и source_password — имя и пароль пользователя-владельца базы данных.
    • target_db_name — имя базы данных Managed Service for YDB.

  5. Выполните команду terraform init в директории с конфигурационным файлом. Эта команда инициализирует провайдер, указанный в конфигурационных файлах, и позволяет работать с ресурсами и источниками данных провайдера.

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

    terraform validate
    

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

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

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

      terraform plan
      

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

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

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

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

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

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

Подготовьте кластер-источник

  1. Если создавали инфраструктуру вручную, подготовьте кластер-источник.

  2. Подключитесь к кластеру-источнику Managed Service for MySQL.

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

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

    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
        ('iv9a94th6rztooxh5ur2', '2022-06-05 17:27:00', 55.70329032, 37.65472196,  427.5,    0, 23.5, 17, NULL),
        ('rhibbh3y08qmz3sdbrbu', '2022-06-06 09:49:54', 55.71294467, 37.66542005, 429.13, 55.5, NULL, 18, 32);
    

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

  1. Создайте эндпоинт для приемника:

    • Тип базы данных — YDB.

    • Параметры эндпоинта:

      • Настройки подключения → База данных — выберите базу данных Managed Service for YDB из списка.
      • ID сервисного аккаунта — выберите или создайте сервисный аккаунт с ролью ydb.editor.
  2. Создайте эндпоинт для источника и трансфер:

    Вручную
    С помощью Terraform
    1. Создайте эндпоинт для источника:

      • Тип базы данных — MySQL.

      • Параметры эндпоинта → Настройки подключения — Кластер Managed Service for MySQL.

        Выберите кластер-источник из списка и укажите настройки подключения к нему.

    2. Создайте трансфер типа Копирование и репликация, использующий созданные эндпоинты.

    3. Активируйте его.

    1. Раскомментируйте в файле data-transfer-mmy-ydb.tf:

      • переменную target_endpoint_id и задайте ей значение идентификатора эндпоинта для приемника, созданного на предыдущем шаге;
      • ресурсы yandex_datatransfer_endpoint и yandex_datatransfer_transfer.
    2. Проверьте корректность файлов конфигурации Terraform с помощью команды:

      terraform validate
      

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

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

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

        terraform plan
        

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

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

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

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

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

      Трансфер активируется автоматически после создания.

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

  1. Дождитесь перехода трансфера в статус Реплицируется.

  2. Убедитесь, что в базу данных Managed Service for YDB перенеслись данные из кластера-источника Managed Service for MySQL:

    Консоль управления
    CLI
    1. В консоли управления выберите каталог, в котором находится нужная база данных.
    2. В списке сервисов выберите Managed Service for YDB.
    3. Выберите базу из списка.
    4. Перейдите на вкладку Навигация.
    5. Проверьте, что база данных Managed Service for YDB содержит таблицу <имя базы данных кластера-источника>_measurements с тестовыми данными.
    1. Подключитесь к базе данных Managed Service for YDB.

    2. Проверьте, что база данных содержит таблицу <имя базы данных кластера-источника>_measurements с тестовыми данными:

      SELECT *
      FROM <имя базы данных кластера-источника>_measurements;
      
  3. Подключитесь к кластеру-источнику Managed Service for MySQL и добавьте данные в таблицу measurements:

    INSERT INTO measurements VALUES
        ('iv7b74th678tooxh5ur2', '2020-06-08 17:45:00', 53.70987913, 36.62549834, 378.0, 20.5, 5.3, 20, NULL);
    
  4. Убедитесь, что в базе данных Managed Service for YDB отобразились сведения о добавленной строке:

    Консоль управления
    CLI
    1. В консоли управления выберите каталог, в котором находится нужная база данных.
    2. В списке сервисов выберите Managed Service for YDB.
    3. Выберите базу из списка.
    4. Перейдите на вкладку Навигация.
    5. Проверьте, что в таблицу <имя базы данных кластера-источника>_measurements добавились новые данные.
    1. Подключитесь к базе данных Managed Service for YDB.

    2. Проверьте, что в таблицу <имя базы данных кластера-источника>_measurements добавились новые данные:

      SELECT *
      FROM <имя базы данных кластера-источника>_measurements;
      

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

Примечание

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

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

  1. Удалите трансфер.
  2. Удалите эндпоинт для приемника.
  3. Если при создании эндпоинта для приемника вы создавали сервисный аккаунт, удалите его.

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

Вручную
С помощью Terraform
  • Удалите эндпоинт для источника.
  • Удалите базу данных Managed Service for YDB.
  • Удалите кластер Managed Service for MySQL.
  1. В терминале перейдите в директорию с планом инфраструктуры.

  2. Удалите конфигурационный файл data-transfer-mmy-ydb.tf.

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

    terraform validate
    

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

  4. Подтвердите изменение ресурсов.

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

      terraform plan
      

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

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

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

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

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

    Все ресурсы, которые были описаны в конфигурационном файле data-transfer-mmy-ydb.tf, будут удалены.

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

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Подготовьте инфраструктуру
  • Подготовьте кластер-источник
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
  • Удалите созданные ресурсы