Миграция на сторонний кластер MySQL®
Поддерживается миграция между разными версиями: например, можно перенести базы из MySQL® версии 5.7 в версию 8. При этом мажорная версия MySQL® на стороннем кластере должна быть не ниже версии на кластере Yandex Managed Service for MySQL®.
Чтобы перенести базу данных, развернутую в кластере Yandex Managed Service for MySQL®, на сторонний кластер MySQL®:
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVEилиTRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость инфраструктуры для миграции входит плата за каждый трансфер: использование вычислительных ресурсов и количество переданных строк данных (тарифы Data Transfer).
Подготовьте сторонний кластер MySQL®
Создайте кластер MySQL® любой подходящей конфигурации. При этом:
-
Версия MySQL® должна быть не ниже чем на кластере-источнике.
Перенос данных с повышением мажорной версии MySQL® возможен, но не гарантируется. Подробнее в документации MySQL®
.Миграция с понижением версии MySQL® невозможна
. -
Режим SQL должен быть таким же, как и на кластере-источнике.
Перенесите данные
-
Создайте эндпоинты и трансфер:
ВручнуюTerraform-
Создайте эндпоинт для источника:
-
Направление —
Источник. -
Укажите имя эндпоинта.
-
Тип базы данных —
MySQL. -
Параметры эндпоинта:
- Тип подключения — выберите
Ручная настройка. - Настройки подключения — выберите
Кластер Managed Service for MySQL. - Кластер управляемой БД — выберите кластер-источник из списка.
- База данных — укажите имя базы данных в выбранном кластере.
- Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.
- Пароль — укажите пароль пользователя.
- Тип подключения — выберите
-
-
Создайте эндпоинт для приемника:
-
Направление —
Приёмник. -
Укажите имя эндпоинта.
-
Тип базы данных —
MySQL. -
Параметры эндпоинта:
- Тип подключения — выберите
Ручная настройка. - Настройки подключения — выберите
Пользовательская инсталляция. - Хост — укажите IP-адрес или FQDN хоста, к которому необходимо подключиться.
- Порт — укажите номер порта для подключения к кластеру-приемнику.
- База данных — укажите имя базы данных в пользовательской инсталляции.
- Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.
- Пароль — укажите пароль пользователя.
- Тип подключения — выберите
-
-
Создайте трансфер типа Копирование и репликация, использующий созданные эндпоинты.
-
Если у вас еще нет Terraform, установите его.
-
Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.
-
Настройте и инициализируйте провайдер. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его
. -
Поместите конфигурационный файл в отдельную рабочую директорию и укажите значения параметров. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.
-
Скачайте в ту же рабочую директорию файл конфигурации трансфера и эндпоинтов data-transfer-mmy-mysql.tf
. -
Укажите в файле конфигурации:
-
Проверьте корректность файлов конфигурации Terraform с помощью команды:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
Создайте необходимую инфраструктуру:
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
.Трансфер активируется автоматически после создания.
-
Важно
Избегайте любых изменений в схеме данных на кластере-источнике и кластере-приемнике во время работы трансфера. Подробнее в разделе Работа с базами данных во время трансфера.
-
-
Дождитесь перехода трансфера в статус Реплицируется.
-
Переведите кластер-источник в режим
только чтение
и переключите нагрузку на кластер-приемник. -
На странице мониторинга трансфера дождитесь снижения до нуля характеристики Maximum data transfer delay. Это значит, что в кластер-приемник перенесены все изменения, произошедшие в кластере-источнике после завершения копирования данных.
-
Деактивируйте трансфер и дождитесь его перехода в статус Остановлен.
Подробнее о статусах трансфера смотрите в разделе Жизненный цикл трансфера.
Как удалить созданные ресурсы
Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:
- Удалите остановленный трансфер.
- Удалите эндпоинты для источника и приемника.
-
В терминале перейдите в директорию с планом инфраструктуры.
Важно
Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.
-
Удалите ресурсы:
-
Выполните команду:
terraform destroy -
Подтвердите удаление ресурсов и дождитесь завершения операции.
Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.
-
Полезные ссылки
Другие способы миграции описаны в документации Yandex Managed Service for MySQL®.