Миграция кластера MySQL®
С помощью сервиса Data Transfer вы можете перенести данные из стороннего кластера-источника в кластер-приемник Managed Service for MySQL®.
Этот способ позволяет перенести базу целиком без остановки обслуживания пользователей. Для его использования необходимо разрешить подключение к кластеру-источнику из интернета.
Чтобы перенести базу данных из MySQL® в Managed Service for MySQL®:
Если созданные ресурсы вам больше не нужны, удалите их.
Запустите перенос данных
-
Подготовьте инфраструктуру и запустите перенос данных:
ВручнуюTerraform-
Создайте кластер-приемник Managed Service for MySQL® любой подходящей конфигурации. При этом:
-
Версия MySQL® должна быть не ниже, чем в кластере-источнике.
Перенос данных с повышением мажорной версии MySQL® возможен, но не гарантируется. Подробнее см. в документации MySQL®
.Миграция с понижением версии MySQL® невозможна
. -
Режим SQL должен быть таким же, как и в кластере-источнике.
-
-
Создайте эндпоинт для источника:
-
Тип базы данных —
MySQL
. -
Параметры эндпоинта → Настройки подключения —
Пользовательская инсталляция
.Укажите параметры подключения к кластеру-источнику.
-
-
Создайте эндпоинт для приемника:
-
Тип базы данных —
MySQL
. -
Параметры эндпоинта → Настройки подключения —
Кластер Managed Service for MySQL
.Выберите кластер-приемник из списка и укажите настройки подключения к нему.
-
-
Создайте трансфер типа Копирование и репликация, использующий созданные эндпоинты.
-
Активируйте его.
Важно
Избегайте любых изменений в схеме данных в кластере-источнике и кластере-приемнике во время работы трансфера. Подробнее см. в разделе Работа с базами данных во время трансфера.
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
Скачайте в ту же рабочую директорию файл конфигурации data-transfer-mysql-mmy.tf
.В этом файле описаны:
- сеть;
- подсеть;
- группа безопасности и правило, необходимое для подключения к кластеру;
- кластер-приемник Managed Service for MySQL®;
- эндпоинт для источника;
- эндпоинт для приемника;
- трансфер.
-
Укажите в файле
data-transfer-mysql-mmy.tf
:-
параметры кластера-приемника, которые используются и как параметры эндпоинта-приемника:
target_mysql_version
— версия MySQL®, она должна быть не ниже чем в кластере-источнике;target_sql_mode
— режим SQL, он должен быть таким же, как и в кластере-источнике;target_db_name
— имя базы данных;target_user
иtarget_password
— имя и пароль пользователя-владельца базы данных.
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
.Трансфер активируется автоматически после создания.
-
-
Завершите перенос данных
-
Дождитесь перехода трансфера в статус Реплицируется.
-
Переведите кластер-источник в режим
только чтение
и переключите нагрузку на кластер-приемник. -
На странице мониторинга трансфера дождитесь снижения до нуля характеристики Maximum data transfer delay. Это значит, что в кластер-приемник перенесены все изменения, произошедшие в кластере-источнике после завершения копирования данных.
-
Деактивируйте трансфер и дождитесь его перехода в статус Остановлен.
Подробнее о статусах трансфера см. в разделе Жизненный цикл трансфера.
Удалите созданные ресурсы
Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:
- Удалите кластер Managed Service for MySQL®.
- Удалите остановленный трансфер.
- Удалите эндпоинты для источника и приемника.
-
В терминале перейдите в директорию с планом инфраструктуры.
Важно
Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.
-
Удалите ресурсы:
-
Выполните команду:
terraform destroy
-
Подтвердите удаление ресурсов и дождитесь завершения операции.
Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.
-
Реальный пример миграции базы данных MySQL® с помощью сервиса Data Transfer см. в разделе Синхронизация данных из MySQL с помощью Yandex Data Transfer.
См. также
Другие способы миграции описаны в документации Yandex Managed Service for MySQL®.