В четири урока ние изследваме мигрирането на база данни MySQL към база данни PostgreSQL, използвайки услугата за мигриране на база данни на AWS (DMS). Започнахме със създаването на IAM потребител за DMS в първия урок, „Мигриране на MySQL към PostgreSQL на AWS RDS, част 1.“ Впоследствие обсъдихме създаването на екземпляри на MySQL и PostgreSQL в AWS Relational Database Service (RDS) във втория урок, „Мигриране на MySQL към PostgreSQL на AWS RDS, част 2“. В третия урок, „Мигриране на MySQL към PostgreSQL на AWS RDS, част 3“, създадохме DMS миграция. В този последен урок ще обсъдим изпълнението на миграцията на DMS за извършване на миграцията.
Този урок има следните раздели:
- Изпълнение на задачата за мигриране на DMS
- Проучване на мигрираната база данни
- Разглеждане на регистрационни файлове на CloudWatch
- Ограничения в MySQL към миграция на PostgreSQL с DMS
- Заключение
Изпълнение на задачата за мигриране на DMS
След като задачата е създадена, Състояние трябва да стане Готово , както е показано на Фигура 1. Щракнете върху Старт/Възобновяване за да стартирате задачата.
Фигура 1: Старт/Възобновяване
Състоянието трябва да стане Начало , както е показано на фигура 2.
Фигура 2: Стартиране на задача
Когато задачата е установила връзка с екземпляра на репликация и крайните точки на базата данни и е приложена, картографирането на таблицата състоянието става Running , както е показано на фигура 3.
Фигура 3: Състояние Работи
Миграцията се изпълнява както е конфигурирана и след като миграцията приключи успешно, Състояние става Зареждането завърши , както е показано на Фигура 4. Таблиците са заредени колоната показва броя на заредените таблици.
Фигура 4: Състояние Зареждането завършено
За таблиците, които са мигрирани, щракнете върху Статистика на таблицата раздела, както е показано на Фигура 5. Статистическите данни на таблицата, включително схемата, таблицата, състоянието, броя на вмъкванията, изтриванията, актуализациите, DDL, редовете с пълно зареждане и общо се извеждат.
Фигура 5: Статистика на таблицата
Ако таблицата на базата данни източник не включва таблици, Пълно зареждане на редове е 0. Ако таблицата източник има редове, редовете за пълно зареждане указват броя на редовете, както е показано за някои от редовете на фигура 6.
Фигура 6: Пълно заредени редове за някои таблици е 0, докато за други таблици, броят на заредените редове
Проучване на мигрираната база данни
След като мигрирахте схемите и таблиците на базата данни MySQL към PostgreSQL, избройте схемите в PostgreSQL CLI с dn команда. Мигрираните схеми се изброяват, както е показано на Фигура 7. Общественият схемата вече е съществувала преди миграцията.
Фигура 7: Схемите мигрират от MySQL към PostgreSQL база данни
Миграцията на DMS автоматично преобразува типовете колони на таблицата. Добавя се вторичен индекс за първичен ключ, създаден автоматично в картографирането на таблицата.
Данните от таблицата също се мигрират, както е показано за mysql.user таблица на фигура 8.
Фигура 8: Данните от таблицата също се мигрират
При мигриране от един тип база данни към друг (хетерогенна миграция), съпоставянията на типове данни се правят от DMS автоматично. По време на миграция се използва междинен тип данни на DMS. Когато мигрирате от MySQL база данни към PostgreSQL, първо типовете данни на MySQL се мигрират към типа данни на DMS, като се използват вградените съпоставяния за база данни MySQL като изходна база данни. Впоследствие типът данни DMS се съпоставя с типове данни на PostgreSQL, като отново се използват вградени съпоставяния за PostgreSQL като целева база данни. Свързаните с RDS таблици в базата данни MySQL на RDS също се мигрират към базата данни PostgreSQL, като например таблицата „mysql“.“rds_replication_status“, показана на фигура 9.
Фигура 9: Мигрирани данни за RDS информационна таблица
Разглеждане на регистрационни файлове на CloudWatch
Ако регистрирането е конфигурирано, както направихме ние, регистрационните файлове може да се наблюдават от Журнали раздела, както е показано на Фигура 10. Щракнете върху връзката към задачата, за да изброите регистрационните файлове на CloudWatch.
Фигура 10: Дневници
Регистрите на CloudWatch се изброяват (вижте Фигура 11).
Фигура 11: Регистрации на CloudWatch
Както показва съобщение за регистрационни файлове на CloudWatch на фигура 12, „Всички таблици са заредени. Задачата само с пълно зареждане е спряна.”
Фигура 12: Всички таблици са заредени
Броят на прехвърлените записи също е посочен, както за sys.sys_config таблица на фигура 13.
Фигура 13: Записът в регистрационния файл за таблица с база данни включва # прехвърлени записи
Регистратурите на CloudWatch могат да се използват за отстраняване на грешки при изпълнение на задача за миграция. Съобщенията за грешки са изброени за таблиците, които не са мигрирали успешно в регистрационните файлове на CloudWatch.
Ограничения в MySQL към миграция на PostgreSQL с DMS
Мигрирането от база данни MySQL към база данни PostgreSQL с DMS не е без ограничения. Самата DMS услуга има ограничения за потребителски акаунт на AWS. Други ограничения на DMS могат да бъдат специфични за база данни. Типовете данни източник на DMS за MySQL не включват UTF-8 4-байтов набор от знаци (utf8mb4). Наборът от символи, поддържан от DMS, е Code Page 1252 Windows Latin 1 (ANSI) и знаци, които не са в набора от знаци, могат да генерират грешка по време на миграция. Съществуват някои ограничения за MySQL база данни като DMS източник. Единственото ограничение за използване на PostgreSQL като DMS целева база данни е, че типът данни JSON се преобразува в тип данни CLOB.
Заключение
В четири урока обсъдихме мигрирането на екземпляр на база данни MySQL на RDS към екземпляр на база данни Postgres на RDS.