Mysql
 sql >> база данни >  >> RDS >> Mysql

Мигриране на MySQL база данни от CloudSQL към AWS RDS

Google CloudSQL е управлявана услуга за бази данни с поддръжка за MySQL и PostgreSQL. CloudSQL е интегрируем с някои от другите услуги на Google Cloud Platform, включително репликация на данни в множество зони с автоматично превключване при отказ. В тази статия ще обсъдим мигрирането на екземпляр на MySQL база данни от Google CloudSQL към AWS RDS с помощта на услугата за мигриране на база данни (DMS). Тази статия има следните раздели:

  • Настройка на средата
  • Създаване на MySQL RDS DB екземпляр
  • Свързване с MySQL база данни на RDS
  • Създаване на проект на Google Cloud Platform
  • Създаване на CloudSQL екземпляр
  • Добавяне на маршрут за CloudSQL DB екземпляр IP адрес към таблицата с маршрути на VPC
  • Създаване на екземпляр на DMS репликация
  • Добавяне на мрежа за свързаност на екземпляр на репликация към CloudSQL DB екземпляр
  • Създаване на крайни точки за репликация на база данни
  • Създаване на задача за репликация
  • Изпълнение на задачата за репликация
  • Разглеждане на мигрираните таблици
  • Разглеждане на регистрационните файлове на CloudWatch
  • Изтриване на миграция
  • Изтриване на DB екземпляри
  • Заключение

Настройка на средата

Изисква се акаунт за таксуване в Google Cloud Platform. Безплатният акаунт в Google Cloud Platform предоставя безплатна пробна версия за първата година. Изисква се и AWS акаунт; това може да бъде създадено на https://aws.amazon.com/resources/create-account/.

Създаване на MySQL RDS DB екземпляр

Тъй като ще мигрираме MySQL база данни от CloudSQL към AWS RDS, трябва да създадем екземпляр на MySQL база данни на RDS. Отидете до RDS на https://aws.amazon.com/rds и в съветника за RDS изберете машина като MySQL, както е показано на фигура 1.


Фигура 1: Избиране на MySQL Database Engine

В Производство? , изберете Dev/Test , както е показано на фигура 2.


Фигура 2: Избиране на разработка и тест

В Посочете подробности за DB , поставете отметка в квадратчето Показване само на опциите, които отговарят на условията за RDS Free Tier , както е показано на Фигура 3. Изберете Модел на лиценз като общ публичен лиценз. Изберете версия на DB Engine като MySQL 5.6.35. MySQL версии 5.5, 5.6 и 5.7 се поддържат за DMS цел. Изберете DB Instance Class като db.t2.micro, който има капацитет от 1 vCPU и 1 GB RAM. Изберете Multi-AZ Deployment като No. Изберете Тип съхранение като General Purpose (SSD) и разпределено хранилище като 5 GB.


Фигура 3: Посочете подробности за DB

В настройките на базата данни посочете Идентификатор на DB екземпляр (mysqldb), Главно потребителско име и Главна парола, както е показано на Фигура 4. Щракнете върху Следваща стъпка.


Фигура 4: Посочване на настройки на базата данни

В Конфигуриране на разширени настройки изберете VPC, както е показано на фигура 5. DMS миграцията трябва да бъде създадена в същия VPC като екземпляр на RDS DB. Задайте зона за наличност като us-east-1b. Изберете опцията за създаване на нова група за сигурност. В Опции за база данни посочете име на база данни (mysqldb). Посочете порт на база данни (3306) и изберете група параметри на DB.


Фигура 5: Конфигуриране на разширени настройки

Повечето или всички други настройки – включително Option Group, Enable IAM DB Authentication, Enable Encryption, Backup и Monitoring – може да се запазят по подразбиране (вижте Фигура 6). Автоматичните архиви трябва да бъдат активирани за MySQL на RDS като DMS източник. Щракнете върху Стартиране на DB екземпляр .


Фигура 6: Стартирайте DB Instance

Започва да се създава нов DB екземпляр, както е показано от съобщението на Фигура 7. Щракнете върху View Your DB Instances, за да видите DB екземплярите.


Фигура 7: Вашият DB екземпляр се създава

Нов екземпляр на MySQL DB на RDS започва, както е показано на Фигура 8.


Фигура 8: MySQL DB екземпляр на RDS

Щракнете върху връзката Security Group, както е показано на фигура 9, за да промените правилата за входящи/изходящи, за да позволите трафик от/към всички IP адреси.


Фигура 9: Връзка към групата за сигурност

Изберете раздела Входящи и щракнете върху бутона Редактиране, за да промените входящите правила, както е показано на Фигура 10.


Фигура 10: Промяна на входящи правила

В Редактиране на входящи правила задайте Тип на Цял трафик, Протокол на Всички, Обхват на портовете на 0-65535, Източник на Отвсякъде и щракнете върху Запиши (вижте Фигура 11).


Фигура 11: Редактиране на входящи правила

Модифицираните правила за входящи са показани на фигура 12.


Фигура 12: Входящи правила

Изходящите правила не се изискват да се променят, тъй като те вече са настроени да разрешават трафик към всички IP адреси на местоназначение, както е показано на Фигура 13.


Фигура 13: Изходящи правила

Свързване с MySQL база данни на RDS

Получете хоста на RDS DB екземпляр от крайната точка; адресът на хоста е крайната точка с премахнат суфикс на порта :3306. Свържете се с екземпляра на базата данни MySQL на RDS, като използвате адреса на хоста и порта със следната команда mysql, за да стартирате интерфейс на командния ред на MySQL.

mysql --host=mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=3306 --user=dvohra --password=mysql5db

Хостът, потребителят и паролата ще бъдат различни за различните потребители. Предоставете достъп до MySQL акаунт на потребителя на DMS със следните команди, в които потребителят на DMS ще бъде различен за различните потребители.

ПРЕДОСТАВЯТЕ ПРОМЯНА, СЪЗДАВАНЕ, ИЗПУСКАНЕ, ИНДЕКС, ВМЕСВАНЕ, АКТУАЛИЗИРАНЕ, ИЗТРИВАНЕ, ИЗБОР НА mysqldb.* НА 'dvohra'@'%';ПРЕДОСТАВЯТЕ ВСИЧКИ ПРИВИЛЕГИИ НА awsdms_control.* НА 'dvohra'@'%'; 

Създаване на проект на Google Cloud Platform

Трябва да създадете проект на Google Cloud Platform, за да използвате CloudSQL. За да създадете проект, щракнете върху Създаване на празен проект връзка на страницата Първи стъпки, както е показано на Фигура 14.


Фигура 14: Създайте празен проект

В Нов проект съветника, посочете Име на проект (MySQLDB) и щракнете върху Създаване , както е показано на Фигура 15.


Фигура 15: Нов проект

Създава се нов проект, както е показано в таблото за управление на фигура 16.


Фигура 16: Нов проект на Google Cloud Platform

Създаване на CloudSQL екземпляр

В този раздел ще създадем CloudSQL екземпляр. Придвижете се до URL адреса на CloudSQL https://cloud.google.com/sql/ в браузър, както е показано на фигура 17. Щракнете върху View Console.


Фигура 17: Преглед на конзолата

Изберете MySQLDB проект и щракнете върху Създаване на екземпляр , както е показано на Фигура 18.


Фигура 18: Създаване на екземпляр

В Създаване на екземпляр съветника, изберете MySQL и щракнете върху Напред , както е показано на Фигура 19.


Фигура 19: Избор на машина като MySQL

В Изберете тип на MySQL екземпляр , щракнете върху Изберете второ поколение за да изберете тип екземпляр MySQL Second Generation, както е показано на Фигура 20. Някои от предимствата на типа екземпляр от второ поколение също са изброени.


Фигура 20: Избор на MySQL екземпляр от второ поколение

В Създаване на MySQL екземпляр от второ поколение (вижте Фигура 21), посочете Идентификатор на екземпляр и Root парола и изберете Регион и Зона Кликнете върху Създаване .


Фигура 21: Създайте MySQL екземпляр от второ поколение

MySQL екземпляр започва да се създава, както е показано в таблицата с инстанции на фигура 22.


Фигура 22: CloudSQL MySQL екземпляр

Добавяне на маршрут за CloudSQL DB Instance IP адрес към таблицата с маршрути на VPC

Трябва да модифицираме таблицата на маршрутите за VPC, в която се създават RDS DB екземпляр и DMS миграция, за да позволим достъп до IP адреса на CloudSQL екземпляра. Първо получете IP адреса на CloudSQL инстанцията от CloudSQL Console, както е показано на Фигура 23.


Фигура 23: IP адрес на CloudSQL DB екземпляр

Щракнете върху Таблица с маршрути връзка, както е показано на фигура 24, за VPC, в който се създава екземплярът на RDS DB и впоследствие се създава DMS.


Фигура 24: Връзка към таблицата с маршрути

Изберете посочения маршрут и щракнете върху Редактиране, както е показано на Фигура 25.


Фигура 25: Маршрут>Редактиране

Кликнете върху Добавяне на друг маршрут (вижте Фигура 26).


Фигура 26: Добавете друг маршрут

Посочете IP адреса на екземпляра на CloudSQL в Destination, както е показано на Фигура 27.


Фигура 27: Указване на Destination като IP адрес на CloudSQL екземпляр

Изберете целта като интернет шлюз, свързан с VPC, както е показано на фигура 28. Интернет шлюзът позволява комуникация между инстанциите във VPC и интернет.


Фигура 28: Избиране на Target като интернет шлюз

Щракнете върху Save, за да запазите маршрута. Добавя се маршрут, както е показано на Фигура 29.


Фигура 29: Маршрут за CloudSQL екземпляр

Създаване на екземпляр на DMS репликация

В този раздел ще създадем екземпляр за репликация за мигриране на CloudSQL екземпляр към RDS. Кликнете върху Създаване на миграция в началната страница на услугата за мигриране на бази данни, както е показано на фигура 30.


Фигура 30: Създаване на миграция

В началната страница щракнете върху Напред (вижте Фигура 31).


Фигура 31: Добре дошла страница>Следваща

В Създаване на екземпляр на репликация страница, посочете име и описание, както е показано на Фигура 32. Изберете клас на инстанция като dms.t2.medium. Изберете версия на двигателя за репликация като 2.2.1. Изберете същия VPC, в който е създаден екземплярът на RDS DB. Изберете Multi-AZ A No. Поставете отметка в квадратчето Публично достъпно.


Фигура 32: Конфигуриране на екземпляр за репликация

В Разширени посочете Разпределено хранилище (50 GB), изберете група подмрежи за репликация и изберете зона за наличност, както за RDS DB екземпляр, us-east-1b, както е показано на Фигура 33. Изберете групата за защита на VPC по подразбиране. Изберете главния ключ на KMS, създаден за DMS.


Фигура 33: Конфигуриране на разширени опции

Изберете настройките за поддръжка по подразбиране и щракнете върху Напред, както е показано на Фигура 34.


Фигура 34: Репликация екземпляр>Следващ

Показва се съобщението „Вашият екземпляр на репликация се създава“, както е показано на Фигура 35. Крайните точки на базата данни източник и целева може да се конфигурират само след създаването на екземпляра на репликация.


Фигура 35: Вашият екземпляр на репликация се създава

Когато екземплярът за репликация е създаден, се показва съобщението „Репликация е създадена успешно“ (вижте Фигура 36).


Фигура 36: Репликационният екземпляр е създаден успешно

Инстанциите на репликация изброяват създадения нов екземпляр на репликация, както е показано на Фигура 37.


Фигура 37: Екземпляри на репликация

Добавяне на мрежа за свързаност на екземпляр на репликация към CloudSQL DB екземпляр

Първо, определете IP адреса, на който се изпълнява екземплярът за репликация. IP адресът може да бъде получен от конзолата на копие на копие, както е показано на Фигура 38.


Фигура 38: IP адрес за екземпляр за репликация

След като получим IP адреса, следва да добавим мрежа, състояща се от IP адреса, към MySQL екземпляр на CloudSQL. Щракнете върху връзката на CloudSQL MySQL екземпляр, както е показано на Фигура 39.


Фигура 39: CloudSQL MySQL DB екземпляр

Щракнете върху Авторизация MySQL Database Instance страница с подробности, както е показано на Фигура 40.


Фигура 40: Упълномощаване

Кликнете върху Добавяне на мрежа (вижте Фигура 41).


Фигура 41: Добавете мрежа

В Нова мрежа , посочете мрежово име и мрежов IP адрес като IP адрес на екземпляра на репликация, както е показано на фигура 42, и щракнете върху Готово.


Фигура 42: Добавяне на нова мрежа към CloudSQL

Добавя се нова мрежа, както е показано на Фигура 43. Щракнете върху Запазване за да запазите мрежата.


Фигура 43: Запазване на нова мрежа

Показва се съобщение „Инстанция се актуализира“, както е показано на Фигура 44.


Фигура 44: Екземплярът се актуализира

Когато екземплярът е актуализиран, иконата на екземпляра показва същото, както е показано на Фигура 45.


Фигура 45: Актуализиран екземпляр

Щракнете върху Общ преглед (вижте Фигура 46), за да се покаже преглед на екземпляра.


Фигура 46: Общ преглед

Новата мрежа се включва в Оторизирани мрежи в Подробности за екземпляра страница, както е показано на Фигура 47.


Фигура 47: Оторизирани мрежи

Създаване на крайни точки за репликация на база данни

След това ще създадем изходната и целевата крайна точка на базата данни. Посочете идентификатори на крайна точка за изходни и целеви бази данни. За Source engine изберете mysql , както е показано на Фигура 48.


Фигура 48: Избиране на Source engine като mysql

Изберете Целева машина като mysql също, както е показано на Фигура 49.


Фигура 49: Избиране на Target Engine като mysql

За името на изходния сървър копирайте IPv4 адреса на CloudSQL инстанцията, както е показано на фигура 50.


Фигура 50: IPv4 адрес на CloudSQL екземпляр

За целевата база данни посочете името на сървъра като крайна точка минус суфикса на порта “:3306” за RDS DB екземпляр за MySQL база данни (вижте Фигура 51). Посочете порт за изходна и целева база данни като 3306. Изберете SSL режим като никакъв за връзките на източника и целта. Посочете потребителско име за изходна база данни като root и паролата, както е зададено при създаване на CloudSQL екземпляр. По същия начин задайте потребителското име и паролата за целевата база данни на RDS.


Фигура 51: Конфигуриране на данни за връзката с изходна и целева база данни

За секцията Разширени както на изходната, така и на целевата база данни, изберете главния ключ dms на KMS, който е създаден за DMS. Кликнете върху Извършване на тест , както е показано на Фигура 52, за връзката източник. По същия начин щракнете върху Изпълни тест за целевата връзка.


Фигура 52: Изпълнете тест

Ако резултатът от теста е „Връзката е тествана успешно“ както за изходната, така и за целевата връзка с базата данни, щракнете върху Напред, както е показано на Фигура 53.


Фигура 53: Тестване на връзки

Създаване на задача за репликация

В Създаване на задача посочете име на задачата и описание на задачата, както е показано на Фигура 54. Изходната крайна точка, Целевата крайна точка и екземплярът за репликация са твърдо кодирани. Изберете Тип миграция като Мигриране на съществуващи данни. Поставете отметка в квадратчето Стартиране на задачата при създаване.


Фигура 54: Създайте задача

В настройките на задачата изберете/задайте Режим за подготовка на целева таблица като не правете нищо , Включване на LOB колони в репликацията като Ограничен режим LOB и максимален размер на LOB като 32 kb, както е показано на фигура 55. Изберете Активиране на регистриране опция.


Фигура 55: Настройки на задачите

В Маппинги на таблици , показан на фигура 56, трябва да се добави поне едно правило за избор.


Фигура 56: Картографиране на таблици

Изберете Въведете схема опцията в Името на схемата е поле. Посочете Името на схемата е като mysql , както е показано на Фигура 57. Посочете Името на таблицата е като innodb_index_stats. Изберете Действие като Включи . Кликнете върху Добавяне на правило за избор .


Фигура 57: Добавяне на правило за избор

За да добавите друго правило за избор, щракнете върху добавяне на правило за избор връзка, както е показано на фигура 58.


Фигура 58: Добавете правило за избор

Добавете правило за избор, за да включите таблица mysql.innodb_table_stats , както е показано на Фигура 59.


Фигура 59: Добавяне на правило за избор за mysql.innodb_table_stats

Правила за избор могат да бъдат добавени, по едно за всяка таблица, или чрез използване на регулярен израз за заместващи знаци. След това ще използваме %, за да добавим правило за избор. Кликнете върху добавяне на правило за избор , както е показано на Фигура 60.


Фигура 60: Добавете връзка към правилото за избор

Посочете Схема като mysql и посочете Име на таблица като часова_зона% , което представлява всички таблици, започващи с „time_zone“ (вижте фигура 61).


Фигура 61: Добавяне на правило за избор за включване на всички таблици в схемата на mysql, започвайки с time_zone

Кликнете върху Създаване на задача за да създадете задача, както е показано на фигура 62.


Фигура 62: Създайте задача

Добавя се нова задача със състояние Създаване първоначално, както е показано на Фигура 63. Щракнете върху Опресняване на данните от сървъра периодично, за да обновите състоянието на задачата.


Фигура 63: Добавена задача със състояние Създаване

Когато задачата е създадена и е готова за изпълнение, състоянието става Готово, както е показано на фигура 64.


Фигура 64: Състояние на задачата Готово

Изпълнение на задачата за репликация

За да стартирате екземпляра на репликация, щракнете върху бутона Старт/Възобновяване, както е показано на Фигура 65.


Фигура 65: Старт/Възобновяване

Състоянието на задачата става Стартиране (виж Фигура 66). Периодично щраквайте върху Опресняване на данните от сървъра бутон, за да обновите състоянието, както е показано на Фигура 66.


Фигура 66: Състоянието на задачата Стартиране

Състоянието на задачата става Изпълнение когато задачата започне да се изпълнява. Когато пълното зареждане завърши, състоянието става Зареждането завърши , както е показано на Фигура 67.


Фигура 67: Зареждането завърши

Разглеждане на мигрираните таблици

Таблиците са заредени колоната има стойност 7 за седемте мигрирани таблици, както е показано на фигура 68.


Фигура 68: Седем таблици са мигрирани

За да намерите подробности за мигрираните таблици, изберете Статистически данни за таблицата раздел, както е показано на фигура 69.


Фигура 69: Статистика на таблицата

Всички таблици, които са мигрирани, се изброяват, както е показано на Фигура 70.


Фигура 70: Таблиците са мигрирани

Разглеждане на регистрационните файлове на CloudWatch

За да разгледате регистрационните файлове на CloudWatch, щракнете върху връзката в Журналите раздел (вижте Фигура 71).


Фигура 71: Връзка за регистрационни файлове

Регистратурите на CloudWatch изброяват запис в дневника за всяка мигрирана таблица, както е показано на фигура 72. Когато всички таблици, които са били конфигурирани с помощта на правилата за избор и трансформация, бъдат мигрирани, записът в дневника „Всички таблици са заредени“ се добавя.


Фигура 72: Регистрации на CloudWatch

Когато всички таблици са заредени, запис в дневника Управлението на задачите е прекратено се добавя, както е показано на фигура 73.


Фигура 73: Управлението на задачите е прекратено

Изтриване на миграция

За да изтриете миграция, последователността е обратна на създаването на миграция.

  1. Изтрийте задачата/ите за мигриране.
  2. Изтрийте крайните точки на базата данни.
  3. Изтрийте екземпляра на репликация.

За да изтриете задачата, изберете я и щракнете върху Изтрий, както е показано на Фигура 74.


Фигура 74: Задача>Изтриване

В диалоговия прозорец Изтриване на задачата щракнете върху Изтриване, както е показано на Фигура 75.


Фигура 75: Изтриване на диалогов прозорец за потвърждение на задача

Състоянието на задачата става Изтриване (вижте Фигура 76).


Фигура 76: Изтриване на задача

За да изтриете крайните точки, изберете крайните точки и щракнете върху Изтрий, както е показано на фигура 77.


Фигура 77: Крайни точки>Изтриване

В Изтриване на крайна точка диалогов прозорец за потвърждение, щракнете върху Изтрий, както е показано на Фигура 78.


Фигура 78: Изтриване на диалогов прозорец за потвърждение на крайна точка

Състоянието на крайните точки става Изтриване, както е показано на Фигура 79.


Фигура 79: Изтриване на крайни точки

За да изтриете екземпляр на репликация, изберете екземпляр на репликация и щракнете върху Изтрий, както е показано на фигура 80.


Фигура 80: Екземпляри на репликация>Изтриване

В Изтриване на екземпляр на репликация диалогов прозорец за потвърждение, щракнете върху Изтриване (вижте Фигура 81).


Фигура 81: Диалогов прозорец за потвърждение Изтриване на екземпляр на репликация

Състоянието на екземпляра на репликация става Изтриване, както е показано на Фигура 82.


Фигура 82: Изтриване на екземпляр на репликация

Изтриване на DB екземпляри

След това изтрийте изходната и целевата база данни. За да изтриете целевата база данни, която е MySQL база данни на RDS, изберете екземпляра на базата данни в таблицата Всички инстанции и щракнете върху Действия на екземпляра>Изтриване, както е показано на Фигура 83.


Фигура 83: Действия на екземпляра>Изтриване

В екземпляр Delete DB изберете опцията да не създавате окончателна моментна снимка и поставете отметка в квадратчето за потвърждение и щракнете върху Delete, както е показано на Фигура 84.


Фигура 84: Изтриване на диалогов прозорец на DB Instance

Инстанцията на RDS DB започва да се изтрива, както е показано от състоянието на изтриване на фигура 85.


Фигура 85: Изтриване на екземпляр на RDS DB

За да изтриете екземпляра на CloudSQL DB, щракнете с десния бутон върху mysql Икона за управление на DB екземпляр и изберете Изтриване (вижте Фигура 86).


Фигура 86: CloudSQL mysql>Изтриване

В Изтриване на екземпляр? диалогов прозорец за потвърждение, посочете името на екземпляра в предоставеното поле, за да потвърдите, че екземплярът трябва да бъде изтрит, и щракнете върху Изтрий, както е показано на Фигура 87.


Фигура 87: Диалогов прозорец за потвърждение на изтриване на екземпляр

Заключение

В тази статия обсъдихме мигрирането на MySQL на CloudSQL към AWS RDS с помощта на услугата за мигриране на база данни на AWS.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Балансиране на натоварването, съобразено с базата данни:Как да мигрираме от HAProxy към ProxySQL

  2. Как да създадете MySQL йерархична рекурсивна заявка?

  3. MySQL Вмъкване в от една база данни в друга

  4. Как да получа идентификатора след INSERT в MySQL база данни с Python?

  5. Как да качвате и изтегляте файлове PHP и MySQL