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: Управлението на задачите е прекратеноИзтриване на миграция
За да изтриете миграция, последователността е обратна на създаването на миграция.
- Изтрийте задачата/ите за мигриране.
- Изтрийте крайните точки на базата данни.
- Изтрийте екземпляра на репликация.
За да изтриете задачата, изберете я и щракнете върху Изтрий, както е показано на Фигура 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.