sql >> Database teknologi >  >> RDS >> Mysql

Migrering af MySQL til PostgreSQL på AWS RDS, del 3

I et sæt af fire selvstudier undersøger vi migrering af en MySQL-databaseinstans til en PostgreSQL-database ved at bruge AWS Database Migration Service (DMS). I det første selvstudie, "Migrering af MySQL til PostgreSQL på AWS RDS, del 1", introducerede vi DMS og oprettede en IAM-bruger til DMS. I det andet selvstudium, Migrering af MySQL til PostgreSQL på AWS RDS, del 2,” skabte vi forekomster af MySQL og PostgreSQL på RDS og koblede til de to forekomster. I denne fortsættelsesvejledning skal vi oprette en DMS-migrering for at udføre migreringen. Denne øvelse har følgende sektioner:

  • Oprettelse af en DMS-migrering
  • Oprettelse af en replikeringsinstans
  • Oprettelse af migrationsopgaveslutpunkter
  • Oprettelse af en migreringsopgave
  • Konklusion

Oprettelse af en DMS-migrering

I dette afsnit skal vi oprette en Database Migration Service (DMS) til at migrere MySQL-databasen til PostgreSQL-databasen. En DMS-migrering består af følgende komponenter:

  • Replikeringsinstans
  • Databaseendepunkter
  • Opgave

Vi vil diskutere oprettelse af hver af disse i underafsnit, men først skal du oprette en DMS-migrering. Naviger til DMS-dashboardet, og klik på Opret migration , som vist i figur 1.


Figur 1: Opret migrering

DMS-guiden starter. Klik på Næste, som vist i figur 2.


Figur 2: DMS-guiden

Oprettelse af en replikeringsinstans

Konfigurer derefter en replikeringsinstans, som etablerer forbindelsen mellem kilde- og måldatabaserne, overfører dataene og cacher dataændringer, der opstår under den indledende dataindlæsning. Angiv en replikeringsinstans Navn og Beskrivelse , og vælg en Forekomstklasse (standardindstillingen er dms.t2.medium), som vist i figur 3. Vælg en VPC og vælg muligheden for at konfigurere høj tilgængelighed med Mult-Az; standardindstillingen er sat til "Nej". Vælg indstillingen Offentligt tilgængelig .


Figur 3: Konfiguration af en replikeringsinstans

I Avanceret , behold standardindstillingerne for Tildelt lagerplads (50 GB), Replication Subnet Group, Availability zone (Ingen præference) og VPC Security Group (Brug standard), som vist i figur 4. Vælg KMS-hovednøglen (dbms) oprettet tidligere i Indstilling af miljøet afsnit.


Figur 4: Konfiguration af avancerede indstillinger for replikeringsinstans

Klik på Næste, som vist i figur 5.


Figur 5: Næste

Replikeringsforekomsten begynder at blive oprettet, som vist i meddelelsen i figur 6. Dernæst skal kilde- og måldatabaseforbindelserne konfigureres, hvilket vi skal udføre i næste underafsnit.


Figur 6: Replikeringsinstansen begynder at blive oprettet

Oprettelse af migrationsopgaveslutpunkter

Replikeringsforekomsten kan tage et par minutter at blive oprettet. Migreringsslutpunkterne kan tilføjes, mens replikeringsforekomsten oprettes. Vælg Kildemotoren som "mysql", som vist i figur 7.


Figur 7: Valg af kildemaskine

Vælg Target engine som "postgres", som vist i figur 8.


Figur 8: Valg af målmotor

I Servernavn , angiv endepunktet for RDS DB-instansen for databasen ved at fjerne :port suffiks. For en MySQL-database er RDS-endepunktet mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:3306 . Angiv derfor servernavnet som mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com , som vist i figur 9. For en PostgreSQL-database på RDS er endepunktet postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:5432; angiv derfor servernavnet som postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com . Angiv porten separat for kilde- og måldatabaserne:3306 for MySQL-database og 5432 for Postgres.


Figur 9: Angivelse af servernavn og port for kilde- og måldatabaser

Rul ned for at se flere endpoint-konfigurationsindstillinger, som vist i figur 10. Vælg SSL-tilstand som ingen for både kilde- og måldatabaserne. Angiv brugernavnet og adgangskoden som konfigureret, når du opretter RDS DB-forekomsterne. Angiv PostgreSQL-databasenavnet (postgresdb), også som konfigureret ved oprettelse af RDS DB-forekomsten.


Figur 10: Angivelse af SSL-tilstand, brugernavn, adgangskode og SID eller databasenavn

I avancerede indstillinger kan ekstra forbindelsesattributter, der er tilgængelige for MySQL-databasen og PostgreSQL-databasen, angives, men ingen er påkrævet til denne øvelse. Vælg KMS-hovednøglen (dbms) for både kilde- og måldatabasen (se figur 11). For at teste DMS-endepunkterne skal du bruge Kør test knapper leveres, som vist i figur 11. Kør test knapper er nedtonet eller deaktiveret, indtil replikeringsforekomsten er blevet oprettet.


Figur 11: Konfiguration af avancerede indstillinger for DMS-endepunkter

Når replikeringsforekomsten er blevet oprettet, vises meddelelsen "Replikeringsforekomst oprettet vellykket", som vist i figur 12.


Figur 12: Replikeringsforekomsten blev oprettet

Efter at replikeringsforekomsten er blevet oprettet, Kør test knapper bliver aktiveret. Klik på Kør test , som vist i figur 13, for hver database.


Figur 13: Kør test

Forbindelserne begynder at blive testet, som angivet af meddelelsen "Testende slutpunktsforbindelse" i figur 14.


Figur 14: Test af slutpunktforbindelser

Hvis endepunktsforbindelserne er blevet konfigureret som påkrævet, skulle meddelelsen "Forbindelse testet vellykket" blive vist, som vist i figur 15. Klik på Næste.


Figur 15: Forbindelsen testet med succes

Oprettelse af en migreringsopgave

Efter at have oprettet en replikeringsinstans og databaseslutpunkter, skal vi derefter oprette en migreringsopgave for at oprette forbindelse til slutpunkterne og faktisk overføre dataene. I Opret opgave guiden, skal du angive et Opgavenavn (en standard er også angivet) og tilføj en opgavebeskrivelse (se figur 16). Vælg muligheden for at Start opgave ved oprettelse .


Figur 16: Opret opgaveguide

Kilde- og målslutpunkterne og replikeringsforekomsten blev tidligere konfigureret og kan ikke ændres ved oprettelse af en opgave. Vælg en Migreringstype , som viser tre muligheder, som vist i figur 17.

  • Migrer eksisterende data :Migrerer de eksisterende skemaer, tabeller og tabeldata, der allerede findes i kildedatabasen, men migrerer ikke efterfølgende ændringer løbende.
  • Migrer eksisterende data og repliker løbende ændringer :Migrerer de eksisterende skemaer, tabeller og tabeldata, der allerede findes i kildedatabasen og migrerer også efterfølgende ændringer løbende.
  • Repliker kun dataændringer :Migrerer ikke eksisterende skemaer, tabeller og data og migrerer kun dataændringerne.

Vælg Migrer eksisterende data mulighed, som vist i figur 17. For at migrere ændringer, hvilket er, hvad de to andre muligheder giver, skal den binære logopbevaringstid på MySQL DB-instansen øges til 24 timer eller mere.


Figur 17: Valg af Migrationstype som Migrer eksisterende data

Konfigurer derefter Opgaveindstillinger . Tilberedning af målbord indstillingen gælder for tabellerne i måldatabasen og giver tre muligheder:

  • Gør ingenting :Data og metadata for måltabellerne ændres ikke
  • Slip tabeller på målet :De eksisterende tabeller, hvis nogen, slettes, og nye tabeller oprettes
  • Trunkeret :Tabeller afkortes, hvilket betyder, at tabeldataene slettes, men tabellens metadata ændres ikke. Inkluder LOB-kolonner i replikering indstillingen gælder for LOB-datatypekolonnerne i kildedatabasen og giver tre muligheder:
    • Inkluder ikke LOB-kolonner :LOB-kolonner er udelukket fra migreringen
    • Fuld LOB-tilstand :Migrerer komplette LOB'er uanset størrelsen; LOB'er migreres i bidder, hvilket kan bremse migreringsprocessen
    • Begrænset LOB-tilstand :Afkort LOB'erne til den størrelse, der er angivet i maks. LOB-størrelse (kb)

Vælg Tilberedningstilstand for målbord som Gør ingenting, som vist i figur 18. Vælg Inkluder LOB-kolonner i replikering som Begrænset LOB-tilstand og angiv Maks. LOB-størrelse som 32 kb (standard). Vælg Aktiver logning mulighed.


Figur 18: Opgaveindstillinger

Tilføj derefter udvælgelsesregler og transformationsregler i Tabeltilknytninger , som vist i figur 19. Tabelkortlægninger kan tilføjes ved at bruge Guided brugergrænseflade eller som JSON . Den guidede brugergrænseflade anbefales. Der skal tilføjes mindst én udvælgelsesregel, og transformationsregler er valgfrie. Udvælgelsesregler anvendes, hvorimod valg af skemaer, tabeller og kolonner fra kildedatabasen og transformationsregler anvendes, før skemaer, tabeller og kolonner migreres til måldatabasen.


Figur 19: Tabelkortlægninger

Skemaet kan vælges fra Skemanavnet er rullemenuen eller, hvis ingen er på listen, vælg Indtast et skema og angiv et skema i Skemanavnet er som Mark. Handlingen rullemenuen viser to muligheder:Medtag og Ekskluder . Indstillingen Inkluder inkluderer de valg, der er foretaget for skemaer og tabeller, og indstillingen Exclude ekskluderer skemaer og tabeller. Ekskluderingerne behandles efter Inkluderingerne. Ikke alle skemaer skal vælges, og ikke alle tabeller fra et skema skal vælges.

Vi tilføjer følgende udvælgelsesregel:

  • Medtag alle skemaer og alle tabeller fra kildedatabasen

For valgreglen skal du vælge Indtast et skema og angiv Skemanavn er som % , som vælger alle skemaer i kildedatabasen, som vist i figur 20. Angiv Tabelnavnet er som som % , som vælger alle tabeller i de valgte skemaer. Vælg Handling som Medtag .


Figur 20: Konfiguration af en udvælgelsesregel

Klik på Tilføj valgregel (se figur 21).


Figur 21: Tilføjelse af en udvælgelsesregel

En udvælgelsesregel tilføjes, som vist i figur 22. Når opgaven er oprettet, vil en IAM-rolle dms-cloudwatch-logs-role er oprettet for at give DMS adgang til CloudWatch.


Figur 22: Udvælgelsesregel tilføjet

Tilføj derefter en transformationsregel. For at gøre dette skal du klikke på tilføj transformationsregel link, som vist i figur 23.


Figur 23: Tilføj transformationsregel

En transformationsregel har indstillinger for målet . Reglen har tre muligheder, som vist i figur 24.

  • Skema
  • Tabel
  • Kolonne

Hvor angiver et undersæt af de objekter, der er valgt af udvælgelsesreglerne. Handlingen er den transformation, der skal anvendes, og følgende muligheder er tilgængelige:

  • Omdøb til (tilgængelig for skema- og tabelobjekter)
  • Fjern kolonne (tilgængelig for kolonner)
  • Lav små bogstaver (tilgængelig for skemaer, tabeller og kolonner)
  • Lav store bogstaver (tilgængelig for skemaer, tabeller og kolonner)
  • Tilføj præfiks (tilgængelig for skemaer, tabeller og kolonner)
  • Fjern præfiks (tilgængelig for skemaer, tabeller og kolonner)


Figur 24: Indstillinger for transformationsregler

PostgreSQL gør brug af små bogstaver i skemaer, tabeller og kolonner. Vi tilføjer tre transformationsregler:

  • Gør alle skemaerne til små bogstaver
  • Gør alle tabeller med små bogstaver
  • Gør alle kolonner til små bogstaver

For at tilføje den første af disse transformationsregler skal du vælge Mål som Skema som vist i figur 25. Angiv Skemanavnet er som % . Vælg Handling som Lav små bogstaver og klik på Tilføj transformationsregel .


Figur 25: Tilføjelse af en transformationsregel

En transformationsregel tilføjes (se figur 26). For at tilføje en anden transformationsregel skal du klikke på tilføj transformationsregel link igen.


Figur 26: Transformationsregel tilføjet

Vælg Mål som Tabel , som vist i figur 27. Angiv Skemanavnet er som % . Vælg Tabelnavnet er som % . Vælg Handling som Lav små bogstaver og klik på Tilføj transformationsregel .


Figur 27: Tilføjelse af en transformationsregel for at omdøbe en tabel

Vælg Mål som Kolonne , som vist i figur 28. Angiv Skemanavnet er som % . Vælg Tabelnavnet er som % . Vælg Kolonnenavn er som % . Vælg Handling som Lav små bogstaver og klik på Tilføj transformationsregel .


Figur 28: Tilføjelse af en transformationsregel for at gøre kolonnenavn med små bogstaver

De tre udvælgelsesregler og en tilføjet transformationsregel er vist i figur 29. Når opgaven køres, anvendes udvælgelsesreglerne før transformationsreglerne. For avancerede indstillinger skal du klikke på Avancerede indstillinger , som vist i figur 29.


Figur 29: Udvælgelsesregler og transformationsregler

I Avancerede indstillinger , vælg Kontrol tabelindstillinger og angiv Opret kontroltabel i mål ved hjælp af skema som offentlig , som vist i figur 30, og klik på Udført.


Figur 30: Indstilling af kontroltabelskema i mål

Den avancerede indstilling tilføjes (se figur 31).


Figur 31: Avanceret indstilling

Når du har konfigureret opgaven, skal du klikke på Opret opgave , som vist i figur 32, for at oprette opgaven.


Figur 32: Opret opgave

En migreringsopgave bliver oprettet, som vist i figur 33. Opgavestatus er oprindeligt "Opretter".


Figur 33: Migrationsopgave

En opgave kan have en af ​​de statusser, der er beskrevet i tabel 1.

Status Beskrivelse
Opretter Opgaven oprettes.
Klar Opgaven er klar til at blive startet og køre. Følger normalt statussen "Opretter".
Starter Opgaven starter, i hvilket tidsrum opgaven forbindes med replikeringsforekomsten og databaseslutpunkterne. Udvælgelse og transformationsregler bliver anvendt.
Kører Opgaven kører, hvilket betyder, at opgaven migrerer databasen.
Indlæsning fuldført Opgaven har fuldført indlæsning (migrering) af databasen.
Mislykkedes Opgaven mislykkedes.
Fejl Der er opstået en fejl under migreringen. Nogle af skemaerne og tabellerne kan være migreret med succes, men mindst ét ​​skema eller en tabel er ikke blevet migreret.
Ændring Opgaven ændres, normalt efter en bruger har ændret opgaven.
Stop Opgaven stopper, hvilket normalt er efter, at brugeren har valgt at stoppe en opgave.
Stoppet Opgaven er stoppet, hvilket kan skyldes, at en bruger har stoppet en opgave, eller fordi en Migrationstype Migrer eksisterende data og repliker igangværende ændringer er brugt, og opgaven har fuldført den indledende indlæsning .
Sletter Opgaven bliver slettet, hvilket skyldes, at brugeren har slettet opgaven.

Tabel 1: Opgavestatusser

To IAM-roller, en for CloudWatch og den anden for VPC, bliver oprettet, som vist i figur 34.


Figur 34: IAM-roller for DMS

Konklusion

I denne tredje selvstudie om migrering af en MySQL-databaseinstans på RDS til en Postgres-databaseinstans på RDS, har vi oprettet en DMS-migrering inklusive replikeringsinstans, migreringsslutpunkter og migreringsopgave. I det fjerde selvstudie vil vi diskutere at køre DMS-migreringen for at udføre migreringen og evaluere resultaterne.


  1. Sådan krypteres hybrid cloud-databasetrafik

  2. Kom godt i gang med Shareplex på Windows på AWS, del 1

  3. Forbindelsestimeout for DriverManager getConnection

  4. Oracle PL/SQL:hvordan får man staksporet, pakkenavnet og procedurenavnet