sql >> Database >  >> RDS >> Mysql

MySQL migreren naar PostgreSQL op AWS RDS, deel 3

In een set van vier zelfstudies onderzoeken we het migreren van een MySQL-database-instantie naar een PostgreSQL-database met behulp van AWS Database Migration Service (DMS). In de eerste tutorial, "MySQL migreren naar PostgreSQL op AWS RDS, deel 1", hebben we DMS geïntroduceerd en een IAM-gebruiker voor het DMS gemaakt. In de tweede zelfstudie, MySQL migreren naar PostgreSQL op AWS RDS, deel 2, hebben we instanties van MySQL en PostgreSQL op RDS gemaakt en met de twee instanties verbonden. In deze vervolgtutorial zullen we een DMS-migratie maken om de migratie uit te voeren. Deze tutorial heeft de volgende secties:

  • Een DMS-migratie maken
  • Een replicatie-instantie maken
  • Migratietaakeindpunten maken
  • Een migratietaak maken
  • Conclusie

Een DMS-migratie maken

In deze sectie zullen we een Database Migration Service (DMS) maken om de MySQL-database naar de PostgreSQL-database te migreren. Een DMS-migratie bestaat uit de volgende onderdelen:

  • Replicatie-instantie
  • Database-eindpunten
  • Taak

We zullen het maken van elk van deze in subsecties bespreken, maar eerst moet u een DMS-migratie maken. Navigeer naar het DMS-dashboard en klik op Migratie maken , zoals weergegeven in afbeelding 1.


Figuur 1: Migratie maken

De DMS-wizard wordt gestart. Klik op Volgende, zoals weergegeven in Afbeelding 2.


Figuur 2: DMS-wizard

Een replicatie-instantie maken

Configureer vervolgens een replicatie-instantie, die de verbinding tot stand brengt tussen de bron- en doeldatabase, de gegevens overdraagt ​​en gegevenswijzigingen in de cache opslaat die optreden tijdens het aanvankelijke laden van gegevens. Specificeer een replicatie-instantie Naam en Beschrijving en selecteer een Instance-klasse (de standaard is dms.t2.medium), zoals weergegeven in afbeelding 3. Selecteer een VPC en selecteer de optie om hoge beschikbaarheid te configureren met Mult-Az; de standaardinstelling is "Nee". Selecteer de optie Openbaar toegankelijk .


Figuur 3: Een replicatie-instantie configureren

In Geavanceerd , behoud de standaardinstellingen voor Toegewezen opslagruimte (50 GB), replicatiesubnetgroep, beschikbaarheidszone (geen voorkeur) en VPC-beveiligingsgroep (standaard gebruiken), zoals weergegeven in afbeelding 4. Selecteer de KMS-hoofdsleutel (dbms) die eerder is gemaakt in De omgeving instellen sectie.


Figuur 4: Geavanceerde instellingen configureren voor replicatie-instantie

Klik op Volgende, zoals weergegeven in Afbeelding 5.


Figuur 5: Volgende

De replicatie-instantie begint te worden gemaakt, zoals blijkt uit het bericht in Afbeelding 6. Vervolgens moeten de bron- en doeldatabaseverbindingen worden geconfigureerd, wat we in de volgende subsectie zullen doen.


Figuur 6: Replicatie-instantie wordt gemaakt

Migratietaakeindpunten maken

Het kan enkele minuten duren voordat de replicatie-instantie is gemaakt. De migratie-eindpunten kunnen worden toegevoegd terwijl het replicatie-exemplaar wordt gemaakt. Selecteer de Bronengine als "mysql", zoals weergegeven in Afbeelding 7.


Figuur 7: Bron-engine selecteren

Selecteer Doelengine als “postgres”, zoals weergegeven in Afbeelding 8.


Figuur 8: Doelengine selecteren

In Servernaam , specificeer het Eindpunt voor de RDS DB-instantie voor de database door de :port . te verwijderen achtervoegsel. Voor een MySQL-database is het RDS-eindpunt mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:3306 . Geef daarom de Servernaam . op als mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com , zoals weergegeven in afbeelding 9. Voor een PostgreSQL-database op RDS is het eindpunt postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:5432; specificeer daarom de Servernaam als postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com . Specificeer de poort afzonderlijk voor de bron- en doeldatabases:3306 voor MySQL-database en 5432 voor Postgres.


Figuur 9: Servernaam en poort specificeren voor bron- en doeldatabases

Scroll naar beneden voor meer configuratie-instellingen voor eindpunten, zoals weergegeven in Afbeelding 10. Selecteer SSL-modus als geen voor zowel de bron- als de doeldatabase. Geef de gebruikersnaam en het wachtwoord op zoals geconfigureerd bij het maken van de RDS DB-instanties. Geef de naam van de PostgreSQL-database (postgresdb) op, ook zoals geconfigureerd bij het maken van de RDS DB-instantie.


Figuur 10: SSL-modus, gebruikersnaam, wachtwoord en SID- of databasenaam opgeven

In Geavanceerde instellingen kunnen extra verbindingskenmerken die beschikbaar zijn voor MySQL-database en PostgreSQL-database worden opgegeven, maar deze zijn niet vereist voor deze zelfstudie. Selecteer de KMS-hoofdsleutel (dbms) voor zowel de bron- als de doeldatabase (zie afbeelding 11). Om de DMS-eindpunten te testen, gebruikt u de Test uitvoeren knoppen zijn aanwezig, zoals weergegeven in Afbeelding 11. De Test uitvoeren knoppen zijn grijs of uitgeschakeld totdat de replicatie-instantie is gemaakt.


Figuur 11: Geavanceerde instellingen configureren voor DMS-eindpunten

Wanneer de replicatie-instantie is gemaakt, wordt het bericht "Replicatie-instantie gemaakt met succes" weergegeven, zoals weergegeven in Afbeelding 12.


Figuur 12: Replicatie-instantie succesvol gemaakt

Nadat de replicatie-instantie is gemaakt, wordt de Test uitvoeren knoppen worden ingeschakeld. Klik op Test uitvoeren , zoals weergegeven in Afbeelding 13, voor elke database.


Figuur 13: Test uitvoeren

De verbindingen worden getest, zoals aangegeven door het bericht "Testing endpoint connection" in Afbeelding 14.


Figuur 14: Eindpuntverbindingen testen

Als de eindpuntverbindingen zijn geconfigureerd zoals vereist, zou het bericht "Verbinding getest met succes" moeten worden weergegeven, zoals weergegeven in Afbeelding 15. Klik op Volgende.


Figuur 15: Verbinding succesvol getest

Een migratietaak maken

Nadat we een replicatie-instantie en database-eindpunten hebben gemaakt, zullen we vervolgens een migratietaak maken om verbinding te maken met de eindpunten en de gegevens daadwerkelijk over te dragen. In de Taak maken wizard, specificeer een Taaknaam (er wordt ook een standaard opgegeven) en voeg een taakbeschrijving toe (zie afbeelding 16). Selecteer de optie om Taak starten bij aanmaken .


Figuur 16: Taakwizard maken

De bron- en doeleindpunten en de replicatie-instantie waren eerder geconfigureerd en kunnen niet worden gewijzigd bij het maken van een taak. Selecteer een Migratietype , waarin drie opties worden weergegeven, zoals weergegeven in Afbeelding 17.

  • Bestaande gegevens migreren :migreert de bestaande schema's, tabellen en tabelgegevens die al in de brondatabase bestaan, maar migreert latere wijzigingen niet doorlopend.
  • Bestaande gegevens migreren en doorlopende wijzigingen repliceren :migreert de bestaande schema's, tabellen en tabelgegevens die al in de brondatabase bestaan ​​en migreert ook doorlopend latere wijzigingen.
  • Alleen gegevenswijzigingen herhalen :Migreert geen bestaande schema's, tabellen en gegevens en migreert alleen de gegevenswijzigingen.

Selecteer de optie Bestaande gegevens migreren optie, zoals weergegeven in Afbeelding 17. Om wijzigingen te migreren, wat de andere twee opties bieden, moet de retentietijd van binaire logboeken op de MySQL DB-instantie worden verlengd tot 24 uur of meer.


Figuur 17: Migratietype selecteren als Bestaande gegevens migreren

Configureer vervolgens de Taakinstellingen . De Doeltabel voorbereidingsmodus instelling is van toepassing op de tabellen in de doeldatabase en biedt drie opties:

  • Niets doen :Gegevens en metagegevens van de doeltabellen worden niet gewijzigd
  • Laat tabellen op doel vallen :De bestaande tabellen, indien aanwezig, worden verwijderd en nieuwe tabellen worden aangemaakt
  • Afkappen :Tabellen worden afgekapt, wat inhoudt dat de tabelgegevens worden verwijderd, maar de tabelmetagegevens niet worden gewijzigd. De LOB-kolommen opnemen in replicatie instelling is van toepassing op de LOB-gegevenstypekolommen in de brondatabase en biedt drie opties:
    • Geen LOB-kolommen opnemen :LOB-kolommen worden uitgesloten van de migratie
    • Volledige LOB-modus :Migreert complete LOB's ongeacht de grootte; LOB's worden in delen gemigreerd, wat het migratieproces zou kunnen vertragen
    • Beperkte LOB-modus :kap de LOB's af tot de grootte gespecificeerd in max. LOB-grootte (kb)

Selecteer Doeltabel voorbereidingsmodus als Niets doen, zoals weergegeven in Afbeelding 18. Selecteer Inclusief LOB-kolommen in replicatie als Beperkte LOB-modus en specificeer Max. LOB-grootte als 32 kb (standaard). Selecteer de Logboekregistratie inschakelen optie.


Figuur 18: Taakinstellingen

Voeg vervolgens selectieregels en transformatieregels toe in Tabeltoewijzingen , zoals weergegeven in Afbeelding 19. Tabeltoewijzingen kunnen worden toegevoegd met behulp van de Begeleide gebruikersinterface of als JSON . De begeleide gebruikersinterface wordt aanbevolen. Er moet minimaal één selectieregel worden toegevoegd en transformatieregels zijn optioneel. Er worden selectieregels toegepast, terwijl het selecteren van schema's, tabellen en kolommen uit de brondatabase en transformatieregels worden toegepast voordat schema's, tabellen en kolommen naar de doeldatabase worden gemigreerd.


Figuur 19: Tabeltoewijzingen

Het schema kan worden geselecteerd uit de Schemanaam is vervolgkeuzelijst of, als er geen worden vermeld, selecteer Voer een schema in en specificeer een schema in de Schemanaam is als veld. De Actie vervolgkeuzelijst bevat twee opties:Opnemen en Uitsluiten . De optie Opnemen omvat de selecties die zijn gemaakt voor schema's en tabellen en de optie Uitsluiten sluit de schema's en tabellen uit. De Excludes worden verwerkt na de Includes. Niet alle schema's hoeven te worden geselecteerd en niet alle tabellen uit een schema hoeven te worden geselecteerd.

We zullen de volgende selectieregel toevoegen:

  • Alle schema's en alle tabellen uit de brondatabase opnemen

Selecteer voor de selectieregel Voer een schema in en specificeer Schemanaam is als % , die alle schema's in de brondatabase selecteert, zoals weergegeven in Afbeelding 20. Specificeer Tabelnaam is als als % , die alle tabellen in de geselecteerde schema's selecteert. Selecteer Actie als Opnemen .


Figuur 20: Een selectieregel configureren

Klik op Selectieregel toevoegen (zie afbeelding 21).


Figuur 21: Een selectieregel toevoegen

Er wordt een selectieregel toegevoegd, zoals weergegeven in Afbeelding 22. Wanneer de taak is gemaakt, wordt een IAM-rol dms-cloudwatch-logs-role is gemaakt om DMS toegang te geven tot CloudWatch.


Figuur 22: Selectieregel toegevoegd

Voeg vervolgens een transformatieregel toe. Klik hiervoor op de transformatieregel toevoegen link, zoals weergegeven in Afbeelding 23.


Figuur 23: Transformatieregel toevoegen

Een transformatieregel heeft instellingen voor het Doel . De regel heeft drie opties, zoals weergegeven in Afbeelding 24.

  • Schema
  • Tabel
  • Kolom

Waar specificeert een subset van de objecten die zijn geselecteerd door de selectieregels. De Actie is de transformatie die moet worden toegepast en de volgende opties zijn beschikbaar:

  • Hernoemen naar (beschikbaar voor schema- en tabelobjecten)
  • Kolom verwijderen (beschikbaar voor kolommen)
  • Maak kleine letters (beschikbaar voor schema's, tabellen en kolommen)
  • Maak hoofdletters (beschikbaar voor schema's, tabellen en kolommen)
  • Voorvoegsel toevoegen (beschikbaar voor schema's, tabellen en kolommen)
  • Voorvoegsel verwijderen (beschikbaar voor schema's, tabellen en kolommen)


Figuur 24: Transformatieregels Instellingen

PostgreSQL maakt gebruik van kleine letters in schema's, tabellen en kolommen. We zullen drie transformatieregels toevoegen:

  • Maak alle schema's in kleine letters
  • Maak alle tabellen in kleine letters
  • Maak alle kolommen in kleine letters

Om de eerste van deze transformatieregels toe te voegen, selecteert u Doel als Schema zoals weergegeven in Afbeelding 25. Specificeer Schemanaam is als % . Selecteer Actie als Maak kleine letters en klik op Transformatieregel toevoegen .


Figuur 25: Een transformatieregel toevoegen

Er wordt een transformatieregel toegevoegd (zie Afbeelding 26). Om nog een transformatieregel toe te voegen, klikt u op de transformatieregel toevoegen link opnieuw.


Figuur 26: Transformatieregel toegevoegd

Selecteer Doel als Tabel , zoals weergegeven in Afbeelding 27. Specificeer Schemanaam is als % . Selecteer Tabelnaam is als % . Selecteer Actie als Maak kleine letters en klik op Transformatieregel toevoegen .


Figuur 27: Een transformatieregel toevoegen om een ​​tabel te hernoemen

Selecteer Doel als Kolom , zoals weergegeven in Afbeelding 28. Specificeer Schemanaam is als % . Selecteer Tabelnaam is als % . Selecteer Kolomnaam is als % . Selecteer Actie als Maak kleine letters en klik op Transformatieregel toevoegen .


Figuur 28: Een transformatieregel toevoegen om Kolomnaam in kleine letters te maken

De drie selectieregels en een toegevoegde transformatieregel worden getoond in Afbeelding 29. Wanneer de taak wordt uitgevoerd, worden de selectieregels toegepast vóór de transformatieregels. Klik voor geavanceerde instellingen op Geavanceerde instellingen , zoals weergegeven in Afbeelding 29.


Figuur 29: Selectieregels en transformatieregels

In Geavanceerde instellingen , selecteer Bedieningstabelinstellingen en specificeer Maak controletabel in doel met behulp van schema als openbaar , zoals weergegeven in Afbeelding 30, en klik op Gereed.


Figuur 30: Regeltabelschema instellen in doel

De geavanceerde instelling wordt toegevoegd (zie Afbeelding 31).


Figuur 31: Geavanceerde instelling

Klik na het configureren van de taak op Taak maken , zoals weergegeven in Afbeelding 32, om de taak te maken.


Figuur 32: Taak maken

Er wordt een migratietaak gemaakt, zoals weergegeven in Afbeelding 33. Aanvankelijk is de taakstatus 'Bezig met maken'.


Figuur 33: Migratietaak

Een taak kan een van de in Tabel 1 besproken statussen hebben.

Status Beschrijving
Maken De taak wordt gemaakt.
Klaar De taak is klaar om te worden gestart en uitgevoerd. Volgt meestal de status 'Aanmaken'.
Begin De taak wordt gestart, gedurende welke tijd de taak verbinding maakt met de replicatie-instantie en de database-eindpunten. Selectie- en transformatieregels worden toegepast.
Hardlopen De taak wordt uitgevoerd, wat inhoudt dat de taak de database migreert.
Laden voltooid De taak heeft het laden (migreren) van de database voltooid.
Mislukt De taak is mislukt.
Fout Er is een fout opgetreden tijdens de migratie. Sommige schema's en tabellen zijn mogelijk met succes gemigreerd, maar ten minste één schema of tabel is niet gemigreerd.
Aanpassen De taak wordt gewijzigd, meestal nadat een gebruiker de taak heeft gewijzigd.
Stoppen De taak wordt gestopt, meestal nadat de gebruiker ervoor heeft gekozen een taak te stoppen.
Gestopt De taak is gestopt, wat te wijten kan zijn aan het feit dat een gebruiker een taak heeft gestopt of omdat een Migratietype van Bestaande gegevens migreren en doorlopende wijzigingen repliceren wordt gebruikt en de taak de initiële belasting heeft voltooid .
Verwijderen De taak wordt verwijderd, wat te wijten is aan het feit dat de gebruiker de taak heeft verwijderd.

Tabel 1: Taakstatussen

Er worden twee IAM-rollen gemaakt, een voor CloudWatch en de andere voor VPC, zoals weergegeven in afbeelding 34.


Figuur 34: IAM-rollen voor DMS

Conclusie

In deze derde tutorial over het migreren van een MySQL-database-instance op RDS naar een Postgres-database-instance op RDS, hebben we een DMS-migratie gemaakt inclusief replicatie-instance, migratie-eindpunten en migratietaak. In de vierde zelfstudie bespreken we het uitvoeren van de DMS-migratie om de migratie uit te voeren en de resultaten te evalueren.


  1. hoe meerdere strings samen te vervangen in Oracle

  2. PostgreSQL-waarde uit vorige rij gebruiken als deze ontbreekt

  3. Een kolom bijwerken op basis van een filter van een andere kolom

  4. Slaapstand-annotatie voor PostgreSQL-serieel type