I fyra handledningar undersöker vi migrera en MySQL-databas till en PostgreSQL-databas med hjälp av AWS Database Migration Service (DMS). Vi började med att skapa en IAM-användare för DMS i den första handledningen, "Migrera MySQL till PostgreSQL på AWS RDS, del 1." Därefter diskuterade vi att skapa instanser av MySQL och PostgreSQL på AWS Relational Database Service (RDS) i den andra handledningen, "Migrera MySQL till PostgreSQL på AWS RDS, del 2." I den tredje handledningen, "Migrera MySQL till PostgreSQL på AWS RDS, del 3", skapade vi en DMS-migrering. I den här sista handledningen kommer vi att diskutera att köra DMS-migreringen för att utföra migreringen.
Denna handledning har följande avsnitt:
- Köra DMS-migreringsuppgiften
- Utforska den migrerade databasen
- Utforska CloudWatch-loggar
- Begränsningar i MySQL till PostgreSQL-migrering med DMS
- Slutsats
Köra DMS-migreringsuppgiften
När uppgiften har skapats visas Status bör bli Redo , som visas i figur 1. Klicka på Starta/Återuppta för att starta uppgiften.
Figur 1: Starta/Återuppta
Statusen bör bli Startar , som visas i figur 2.
Figur 2: Uppgift startar
När uppgiften har upprättat en anslutning till replikeringsinstansen och databasens slutpunkter och tillämpats, blir tabellmappningen status Kör , som visas i figur 3.
Figur 3: Status körs
Migreringen körs som konfigurerad och, efter att migreringen har slutförts framgångsrikt, visas Status blir Laddningen är klar , som visas i figur 4. Tabellerna laddade kolumnen anger antalet laddade tabeller.
Figur 4: Statusladdning klar
Klicka på Tabellstatistik för de tabeller som har migrerats fliken, som visas i figur 5. Tabellstatistik, inklusive schema, tabell, status, antal infogningar, raderingar, uppdateringar, DDL:er, rader med full belastning och totalt visas.
Figur 5: Tabellstatistik
Om källdatabastabellen inte innehåller tabeller, Raderna för full belastning är 0. Om en källtabell har rader, anger Full Load Rows antalet rader som visas för några av raderna i figur 6.
Figur 6: Fullbelastningsrader för vissa tabeller är 0, medan för andra tabeller är antalet rader som laddas
Utforska den migrerade databasen
Efter att ha migrerat MySQL-databasscheman och tabeller till PostgreSQL, lista schemana i PostgreSQL CLI med dn kommando. De migrerade scheman listas, som visas i figur 7. allmänheten schemat fanns redan före migreringen.
Figur 7: Scheman migrerade från MySQL till PostgreSQL Database
DMS-migreringen konverterar tabellkolumntyperna automatiskt. Ett sekundärt index läggs till för en primärnyckel, skapat automatiskt i tabellmappningen.
Tabelldata migreras också, som visas för mysql.user tabell i figur 8.
Figur 8: Tabelldata migreras också
Vid migrering från en databastyp till en annan (heterogen migrering) görs datatypsmappningarna automatiskt av DMS. En mellanliggande DMS-datatyp används under en migrering. Vid migrering från MySQL-databas till PostgreSQL migreras först MySQL-datatyperna till DMS-datatypen med hjälp av de inbyggda mappningarna för MySQL-databasen som källdatabas. Därefter mappas DMS-datatypen till PostgreSQL-datatyper, återigen med inbyggda mappningar för PostgreSQL som måldatabas. RDS-relaterade tabeller i MySQL-databasen på RDS migreras också till PostgreSQL-databasen, till exempel tabellen "mysql"."rds_replication_status" som visas i figur 9.
Figur 9: Migrerade data för en RDS-informationstabell
Utforska CloudWatch-loggar
Om loggning är konfigurerad, som vi gjorde, kan loggarna övervakas från loggarna fliken, som visas i figur 10. Klicka på uppgiftslänken för att lista CloudWatch-loggarna.
Figur 10: Loggar
CloudWatch-loggarna listas (se figur 11).
Figur 11: CloudWatch-loggar
Som ett CloudWatch-loggmeddelande i figur 12 indikerar, "Alla tabeller är laddade. Uppgiften endast fulladdat stoppas”.
Figur 12: Alla tabeller är laddade
Antalet poster som överförts listas också, som för sys.sys_config tabell i figur 13.
Figur 13: Loggposten för en databastabell inkluderar antal överförda poster
CloudWatch-loggar kan användas för att felsöka en körning av en migreringsuppgift. Felmeddelandena listas för tabellerna som inte migrerades framgångsrikt i CloudWatch-loggarna.
Begränsningar i MySQL till PostgreSQL-migrering med DMS
Att migrera från MySQL-databas till PostgreSQL-databas med DMS är inte utan begränsningar. Själva DMS-tjänsten har gränser per AWS-användarkonto. Andra DMS-begränsningar kan vara specifika för en databas. DMS-källdatatyper för MySQL inkluderar inte teckenuppsättningen UTF-8 4 byte (utf8mb4). Teckenuppsättningen som stöds av DMS är kod Page 1252 Windows Latin 1 (ANSI) och tecken som inte finns i teckenuppsättningen kan generera ett fel under en migrering. Vissa begränsningar finns för MySQL-databas som DMS-källa. Den enda begränsningen för att använda PostgreSQL som en DMS-måldatabas är att JSON-datatypen konverteras till Native CLOB-datatypen.
Slutsats
I fyra handledningar diskuterade vi migrering av en MySQL-databasinstans på RDS till en Postgres-databasinstans på RDS.