MySQL-database en PostgreSQL-database zijn volgens DBEngines.com beide open source relationele databasebeheersystemen (RDBMS) gerangschikt op respectievelijk 2 en 4. Beide zijn geïmplementeerd in C (C++ wordt ook gebruikt voor MySQL-database) en beide bieden vergelijkbare functies, zoals XML-ondersteuning, secundaire indexen, gelijktijdigheid, duurzaamheid en door de gebruiker gedefinieerde functies. PostgreSQL-database biedt verschillende voordelen, waarvan enkele als volgt:
- Ondersteunt geavanceerde gegevenstypen zoals multidimensionale arrays en door de gebruiker gedefinieerde typen
- Common Table Expressions (CTE's) en Window-functies zijn beschikbaar sinds PostgreSQL 8.4, maar worden pas in versie 8.0 aan MySQL toegevoegd
- Ondersteunt volledige outer joins
- Ondersteunt VALUES-lijsten om een 'constante tabel' te genereren die in een zoekopdracht kan worden gebruikt
- Ondersteunt set terugkerende functies generation_series
- Ondersteunt parallelle zoekopdrachten die gebruikmaken van meerdere CPU's om zoekopdrachten sneller te beantwoorden sinds versie 9.6
- Ondersteunt gematerialiseerde weergaven
Als u migreert van MySQL naar PostgreSQL-database AWS, biedt DMS (Database Migration Service) een betrouwbare beheerde service zonder downtime voor continue gegevensreplicatie. In vier zelfstudies bespreken we het migreren van een MySQL-database-instantie naar een PostgreSQL-database, beide draaiend op AWS Relational Database Service (RDS). Deze tutorial heeft de volgende secties:
- De omgeving instellen
- Een IAM-gebruiker voor DMS maken
De omgeving instellen
De enige vereiste is een AWS-account, dat via deze link kan worden aangemaakt. Maak een KMS-hoofdcoderingssleutel voor gebruik met DMS als er nog geen hoofdsleutel beschikbaar is. Er wordt een KMS-hoofdsleutel gemaakt op basis van de IAM>Encryptiesleutels dashboard. We hebben in deze zelfstudie een KMS-hoofdcoderingssleutel met de naam "dbms" gebruikt.
Installeer de MySQL-database en de PostgreSQL-database op een lokale computer om de clientinterfacetoepassingen te gebruiken om verbinding te maken met MySQL- en PostgreSQL-database-instanties op RDS.
Een IAM-gebruiker voor DMS maken
DMS is volledig geïntegreerd met verschillende andere AWS-services, zoals RDS voor databases, IAM voor identiteits- en toegangsbeheer, KMS voor gegevenscodering en CloudWatch voor logboekregistratie. DMS ondersteunt ook S3 (Simple Storage Service) als doel voor een migratie. In deze sectie zullen we een IAM-gebruiker maken die met DMS wordt gebruikt om een MySQL-database-instantie naar de PostgreSQL-database te migreren. De IAM-gebruiker wordt als volgt aangemaakt:
- Maak een IAM-beleid met alle vereiste machtigingen en beleidsverklaringen.
- Maak een IAM-gebruiker aan op basis van het IAM-beleid.
Als u een IAM-beleid wilt maken, klikt u op Beleid maken in het IAM-dashboard, zoals weergegeven in afbeelding 1.
Figuur 1: Beleid maken
In het Beleid maken wizard, selecteer Uw eigen beleid maken , zoals weergegeven in afbeelding 2.
Figuur 2: De optie Maak uw eigen polis selecteren
In Reviewbeleid , specificeer een Beleidsnaam (DMS). Kopieer vervolgens het volgende beleidsdocument naar het Beleidsdocument veld of regio.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "rds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Effect": "Allow", "Action": "cloudwatch:*", "Resource": "*" }, { "Effect": "Allow", "Action": "aws-marketplace:*", "Resource": "*" }, { "Effect": "Allow", "Action": "logs:*", "Resource": "*" } ] }
Het beleidsdocument voegt machtigingen toe voor toegang tot CloudWatch voor logboekregistratie en RDS voor databases. Klik op Beleid valideren en als het bericht 'Het beleid is geldig' is, klikt u op Beleid maken , zoals weergegeven in afbeelding 3.
Figuur 3: Beleid maken
Als het beleid wordt gemaakt, zou het bericht in Afbeelding 4 moeten worden weergegeven.
Figuur 4: DMS is aangemaakt
Voeg vervolgens een IAM-gebruiker toe. Selecteer Gebruikers in het IAM-dashboard en klik op Gebruiker toevoegen , zoals weergegeven in afbeelding 5.
Figuur 5: Gebruiker toevoegen
Specificeer een Gebruikersnaam (dvohra). Selecteer vervolgens beide vermelde opties voor Toegangstype (zie afbeelding 6).
Figuur 6: Gebruikersdetails toevoegen
Selecteer het Aangepaste wachtwoord optie voor Console-wachtwoord , geef een wachtwoord op en klik op Volgende:machtigingen , zoals weergegeven in afbeelding 7.
Figuur 7: Toegangstype configureren
Stel vervolgens de rechten in voor de gebruiker. Klik op Bestaand beleid rechtstreeks bijvoegen , zoals weergegeven in afbeelding 8.
Figuur 8: Bestaand beleid direct bijvoegen
In het Beleidstype filter, zoek naar "DMS", het eerder gemaakte beleid. Selecteer het DMS-beleid zoals weergegeven in Afbeelding 9 en klik op Volgende.
Figuur 9: Het DMS-beleid selecteren
In Recensie , moet het DMS-beleid worden vermeld als Beheerd beleid in de Machtigingen samenvatting. Klik op Gebruiker maken , zoals weergegeven in afbeelding 10.
Figuur 10: Gebruiker maken
De IAM-gebruiker wordt aangemaakt (zie afbeelding 11).
Figuur 11: IAM-gebruiker gemaakt
De IAM-gebruiker wordt vermeld in de IAM>Gebruikers dashboard, zoals weergegeven in Afbeelding 12.
Figuur 12: IAM-gebruiker
Om in te loggen als de IAM-gebruiker die is gemaakt, klikt u op de link voor de gebruiker, selecteert u de Beveiligingsreferenties en kopieer de Console-aanmeldingslink , zoals weergegeven in Afbeelding 13.
Figuur 13: Console-aanmeldingslink
Log in als de IAM-gebruiker die is gemaakt met behulp van de Console-aanmeldingslink voor de volgende secties.
Conclusie
In deze eerste van vier tutorials over het migreren van een MySQL-database-instantie op RDS naar een Postgres-database-instantie op RDS, hebben we een IAM-gebruiker gemaakt om de migratie uit te voeren.