I fire selvstudier udforsker vi migrering af en MySQL-database til en PostgreSQL-database ved hjælp af AWS Database Migration Service (DMS). Vi startede med at oprette en IAM-bruger til DMS i den første tutorial, "Migrering af MySQL til PostgreSQL på AWS RDS, del 1." Efterfølgende diskuterede vi oprettelse af forekomster af MySQL og PostgreSQL på AWS Relational Database Service (RDS) i den anden vejledning, "Migrering af MySQL til PostgreSQL på AWS RDS, del 2." I det tredje selvstudie, "Migrering af MySQL til PostgreSQL på AWS RDS, del 3", oprettede vi en DMS-migrering. I denne sidste selvstudie skal vi diskutere at køre DMS-migreringen for at udføre migreringen.
Denne øvelse har følgende sektioner:
- Kørsel af DMS-migreringsopgaven
- Udforskning af den migrerede database
- Udforsker CloudWatch-logfiler
- Begrænsninger i MySQL til PostgreSQL-migrering med DMS
- Konklusion
Kørsel af DMS-migreringsopgaven
Når opgaven er oprettet, vises Status skal blive Klar , som vist i figur 1. Klik på Start/Genoptag for at starte opgaven.
Figur 1: Start/Genoptag
Status bør blive Starter , som vist i figur 2.
Figur 2: Opgavestart
Når opgaven har etableret forbindelse med replikeringsforekomsten og databaseslutpunkterne og anvendt, bliver tabellen, der kortlægger status, Kører , som vist i figur 3.
Figur 3: Status kører
Migreringen køres som konfigureret, og efter at migreringen er gennemført, vises Status bliver Indlæsning fuldført , som vist i figur 4. Tablerne er indlæst kolonne angiver antallet af indlæste tabeller.
Figur 4: Statusindlæsning fuldført
For de tabeller, der er blevet migreret, skal du klikke på Tabelstatistik fanen, som vist i figur 5. Tabelstatistik, inklusive skema, tabel, status, antal indsættelser, sletninger, opdateringer, DDL'er, rækker med fuld belastning og total vises.
Figur 5: Tabelstatistik
Hvis kildedatabasetabellen ikke inkluderer tabeller, skal Fuld Load Rows er 0. Hvis en kildetabel har rækker, angiver rækkerne med fuld belastning antallet af rækker som vist for nogle af rækkerne i figur 6.
Figur 6: Full Load Rows for nogle tabeller er 0, hvorimod for andre tabeller er antallet af indlæste rækker
Udforskning af den migrerede database
Efter at have migreret MySQL-databaseskemaer og -tabeller til PostgreSQL, skal du angive skemaerne i PostgreSQL CLI med dn kommando. De migrerede skemaer vises som vist i figur 7. offentligheden skemaet eksisterede allerede før migreringen.
Figur 7: Skemaer migreret fra MySQL til PostgreSQL-database
DMS-migreringen konverterer tabelkolonnetyperne automatisk. Et sekundært indeks tilføjes for en primærnøgle, oprettet automatisk i tabeltilknytningen.
Tabeldata bliver også migreret, som vist for mysql.user tabel i figur 8.
Figur 8: Tabeldata migreres også
Ved migrering fra en databasetype til en anden (heterogen migration), foretages datatypetilknytningerne automatisk af DMS. En mellemliggende DMS-datatype bruges under en migrering. Når der migreres fra MySQL-database til PostgreSQL, migreres MySQL-datatyperne først til DMS-datatypen ved hjælp af de indbyggede tilknytninger til MySQL-databasen som kildedatabase. Efterfølgende bliver DMS-datatypen afbildet til PostgreSQL-datatyper, igen ved hjælp af indbyggede tilknytninger til PostgreSQL som måldatabase. RDS-relaterede tabeller i MySQL-databasen på RDS bliver også migreret til PostgreSQL-databasen, såsom tabellen "mysql".."rds_replication_status" vist i figur 9.
Figur 9: Migrerede data til en RDS-informationstabel
Udforsker CloudWatch-logfiler
Hvis logning er konfigureret, som vi gjorde, kan logfilerne overvåges fra Logge fanen, som vist i figur 10. Klik på opgavelinket for at få vist CloudWatch-logfilerne.
Figur 10: Logfiler
CloudWatch-logfilerne bliver vist (se figur 11).
Figur 11: CloudWatch-logfiler
Som en CloudWatch-log-meddelelse i figur 12 angiver, "Alle tabeller er indlæst. Opgaven med kun fuld load er stoppet”.
Figur 12: Alle tabeller er indlæst
Antallet af overførte poster er også angivet, som for sys.sys_config tabel i figur 13.
Figur 13: Logindtastning for en databasetabel inkluderer # overførte poster
CloudWatch-logfiler kan bruges til at fejlsøge en migreringsopgavekørsel. Fejlmeddelelserne er angivet for de tabeller, der ikke blev migreret korrekt i CloudWatch-logfilerne.
Begrænsninger i MySQL til PostgreSQL-migrering med DMS
Migrering fra MySQL-database til PostgreSQL-database med DMS er ikke uden begrænsninger. Selve DMS-tjenesten har begrænsninger pr. AWS-brugerkonto. Andre DMS-begrænsninger kan være specifikke for en database. DMS-kildedatatyper til MySQL inkluderer ikke UTF-8 4-byte-tegnsættet (utf8mb4). Tegnsættet, der understøttes af DMS, er kode Page 1252 Windows Latin 1 (ANSI), og tegn, der ikke er i tegnsættet, kan generere en fejl under en migrering. Der findes nogle begrænsninger for MySQL-databasen som DMS-kilde. Den eneste begrænsning for at bruge PostgreSQL som en DMS-måldatabase er, at JSON-datatypen konverteres til Native CLOB-datatypen.
Konklusion
I fire selvstudier diskuterede vi migrering af en MySQL-databaseinstans på RDS til en Postgres-databaseinstans på RDS.