sql >> Databasteknik >  >> RDS >> Mysql

Migrera MySQL till PostgreSQL på AWS RDS, del 4

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.


  1. Returnera en lista över e-postmeddelanden som skickats från SQL Server Database Mail (T-SQL)

  2. Var finns Oracle Bug Database?

  3. Lägg ett plus/minustecken till ett nummer i PostgreSQL

  4. MySQL ROUND() Funktion – Runda ett tal till ett givet antal decimaler