Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Managed Service for MySQL®
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Подключение к базе данных
    • Остановка и запуск кластера
    • SQL-запросы в консоли управления
    • Изменение кластера
    • Подключение к DataLens
    • Управление хостами MySQL
    • Управление базами данных
    • Управление пользователями
    • Управление правами пользователей
    • Управление резервными копиями
    • Просмотр логов кластера
    • Удаление кластера
    • Диагностика производительности
    • Мониторинг состояния кластера и хостов
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for MySQL
    • Квоты и лимиты
    • Типы дисков
    • Резервные копии
    • Репликация
    • Техническое обслуживание
    • Права пользователей
    • Настройки MySQL
    • Ограничения для команд SQL
  • Практические руководства
    • Все сценарии
    • Анализ производительности и оптимизация Managed Service for MySQL
    • Выгрузка базы данных в Yandex Data Proc
    • Миграция базы данных из стороннего кластера MySQL
    • Миграция базы данных из Managed Service for MySQL в MySQL
    • Поставка данных в 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
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • backup
        • create
        • delete
        • deleteHosts
        • get
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • move
        • rescheduleMaintenance
        • restore
        • start
        • startFailover
        • stop
        • streamLogs
        • update
        • updateHosts
      • Database
        • Overview
        • create
        • delete
        • get
        • list
      • ResourcePreset
        • Overview
        • get
        • list
      • User
        • Overview
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
    • Вопросы о MySQL
    • Подключение
    • Проблемы с чтением/записью в кластер
    • Проблемы с производительностью
    • Изменение кластера
    • Мониторинг и логи
    • Миграция/перенос
    • Настройки параметров MySQL
    • Все вопросы на одной странице
  1. Практические руководства
  2. Миграция базы данных из Managed Service for MySQL в Yandex Object Storage

Миграция базы данных из Managed Service for MySQL в Yandex Object Storage

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

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

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

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

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

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

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

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

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

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

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

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

    • folder_id — идентификатор каталога, в котором будут созданы ресурсы.

    • sa_name — имя сервисного аккаунта для создания бакета и использования в эндпоинте-приемнике.

    • bucket_name — имя бакета в Object Storage.

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

      • source_mysql_version — версия MySQL;
      • source_db_name — имя базы данных;
      • source_user и source_password — имя и пароль пользователя-владельца базы данных.
    • transfer_enabled – значение 0, чтобы не создавать трансфер до создания эндпоинта-приемника вручную.

  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. Создайте эндпоинт для приемника:

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

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

      • Настройки подключения:

        • Бакет — укажите имя бакета Object Storage.
        • Сервисный аккаунт — выберите или создайте сервисный аккаунт с ролью storage.uploader.
      • Имя папки — measurements.

  2. Создайте эндпоинт для источника и трансфер:

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

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

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

        • Настройки подключения:

          • Тип подключения — Кластер Managed Service for MySQL.

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

        • (Опционально) Список включенных таблиц, Список исключенных таблиц — укажите регулярные выражения для переносимых таблиц и таблиц, которые не надо переносить.

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

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

    1. Укажите в файле data-transfer-mmy-objs.tf переменные:

      • target_endpoint_id — значение идентификатора эндпоинта для приемника;
      • transfer_enabled – значение 1 для создания трансфера;
      • (Опционально) include_tables_regex, exclude_tables_regex – регулярные выражения для переносимых таблиц и таблиц, которые не надо переносить.
    2. Проверьте корректность файлов конфигурации Terraform с помощью команды:

      terraform validate
      

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

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

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

        terraform plan
        

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

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

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

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

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

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

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

  1. Дождитесь перехода трансфера в статус Завершен.

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

    1. В консоли управления выберите каталог, в котором находится нужный бакет.
    2. В списке сервисов выберите Object Storage.
    3. Выберите бакет из списка.
    4. Перейдите на вкладку Объекты.
    5. Проверьте, что бакет Object Storage содержит папку measurements с объектом <имя базы данных кластера-источника>_measurements с тестовыми данными.

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

Примечание

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

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

  1. Удалите трансфер.
  2. Удалите эндпоинт для приемника.

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

Вручную
С помощью Terraform
  1. Удалите эндпоинт для источника.
  2. Удалите бакет Object Storage.
  3. Удалите кластер Managed Service for MySQL.
  4. Если при создании эндпоинта для приемника вы создавали сервисный аккаунт, удалите его.
  1. В терминале перейдите в директорию с планом инфраструктуры.

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

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

    terraform validate
    

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

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

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

      terraform plan
      

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

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

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

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

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

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

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

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