sql >> Database >  >> RDS >> Mysql

Een MySQL-database migreren van CloudSQL naar AWS RDS

Google CloudSQL is een beheerde service voor databases met ondersteuning voor MySQL en PostgreSQL. CloudSQL kan worden geïntegreerd met enkele van de andere Google Cloud Platform-services, inclusief gegevensreplicatie over meerdere zones met automatische failover. In dit artikel bespreken we het migreren van een MySQL-database-instantie van Google CloudSQL naar AWS RDS met behulp van Database Migration Service (DMS). Dit artikel heeft de volgende secties:

  • De omgeving instellen
  • Een MySQL RDS DB-instantie maken
  • Verbinding maken met MySQL-database op RDS
  • Een Google Cloud Platform-project maken
  • Een CloudSQL-instantie maken
  • Een route voor CloudSQL DB-instantie IP-adres toevoegen aan de VPC-routetabel
  • Een DMS-replicatie-instantie maken
  • Een netwerk voor replicatie-instance-connectiviteit toevoegen aan CloudSQL DB-instance
  • Databasereplicatie-eindpunten maken
  • Een replicatietaak maken
  • De replicatietaak uitvoeren
  • De gemigreerde tabellen verkennen
  • De CloudWatch-logboeken verkennen
  • Een migratie verwijderen
  • DB-instanties verwijderen
  • Conclusie

De omgeving instellen

Een Google Cloud Platform-factureringsaccount is vereist. Google Cloud Platform Free Tier-account biedt een gratis proefperiode voor het eerste jaar. Een AWS-account is ook vereist; dit kan worden gemaakt op https://aws.amazon.com/resources/create-account/.

Een MySQL RDS DB-instantie maken

Omdat we een MySQL-database van CloudSQL naar AWS RDS gaan migreren, moeten we een MySQL-database-instantie op RDS maken. Navigeer naar RDS op https://aws.amazon.com/rds en selecteer in de RDS-wizard engine als MySQL, zoals weergegeven in afbeelding 1.


Figuur 1: MySQL Database Engine selecteren

In Productie? , selecteer Ontwikkeling/Test , zoals weergegeven in afbeelding 2.


Figuur 2: Ontwikkeling &Test selecteren

In DB-details opgeven , selecteer het selectievakje Alleen opties weergeven die in aanmerking komen voor RDS Free Tier , zoals weergegeven in Afbeelding 3. Selecteer Licentiemodel als algemene openbare licentie. Selecteer DB Engine-versie als MySQL 5.6.35. MySQL-versies 5.5, 5.6 en 5.7 worden ondersteund voor DMS-doel. Selecteer DB Instance Class als db.t2.micro, met een capaciteit van 1 vCPU en 1 GB RAM. Selecteer Multi-AZ-implementatie als Nee. Selecteer Opslagtype als Algemeen gebruik (SSD) en toegewezen opslagruimte als 5 GB.


Figuur 3: Specificeer DB-details

Specificeer in de database-instellingen een DB Instance-ID (mysqldb), Hoofdgebruikersnaam en Hoofdwachtwoord, zoals weergegeven in Afbeelding 4. Klik op Volgende stap.


Figuur 4: Database-instellingen specificeren

Selecteer in Geavanceerde instellingen configureren een VPC, zoals weergegeven in afbeelding 5. De DMS-migratie wordt gemaakt in dezelfde VPC als de RDS DB-instantie. Stel Beschikbaarheidszone in als us-oost-1b. Selecteer de optie om een ​​nieuwe beveiligingsgroep te maken. Geef in Database-opties een databasenaam op (mysqldb). Specificeer een databasepoort (3306) en selecteer een DB-parametergroep.


Figuur 5: Geavanceerde instellingen configureren

De meeste of alle andere instellingen, waaronder Optiegroep, IAM DB-authenticatie inschakelen, Encryptie inschakelen, Back-up en Monitoring, kunnen als standaard worden behouden (zie Afbeelding 6). Automatische back-ups moeten zijn ingeschakeld voor MySQL op RDS als DMS-bron. Klik op DB-instantie starten .


Figuur 6: Start DB-instantie

Er wordt een nieuwe DB-instantie gemaakt, zoals blijkt uit het bericht in Afbeelding 7. Klik op Uw DB-instanties weergeven om de DB-instanties te bekijken.


Figuur 7: Uw DB-instantie wordt gemaakt

Een nieuwe MySQL DB-instantie op RDS wordt gestart, zoals weergegeven in Afbeelding 8.


Figuur 8: MySQL DB-instantie op RDS

Klik op de koppeling Beveiligingsgroep, zoals weergegeven in Afbeelding 9, om de regels voor inkomend/uitgaand verkeer te wijzigen om verkeer van/naar alle IP-adressen toe te staan.


Figuur 9: Koppeling beveiligingsgroep

Selecteer het tabblad Inkomend en klik op de knop Bewerken om de inkomende regels te wijzigen, zoals weergegeven in Afbeelding 10.


Figuur 10: Inkomende regels wijzigen

Stel in Inkomende regels bewerken Type in op Alle verkeer, Protocol op alles, Poortbereik op 0-65535, Bron op overal en klik op Opslaan (zie Afbeelding 11).


Figuur 11: Inkomende regels bewerken

De gewijzigde regels voor inkomend verkeer worden weergegeven in Afbeelding 12.


Figuur 12: Inkomende regels

De uitgaande regels hoeven niet te worden gewijzigd omdat ze al zijn ingesteld om verkeer naar alle bestemmings-IP's toe te staan, zoals weergegeven in afbeelding 13.


Figuur 13: Uitgaande regels

Verbinding maken met MySQL-database op RDS

Verkrijg de RDS DB-instantiehost van het eindpunt; het hostadres is het eindpunt met het poortachtervoegsel :3306 verwijderd. Maak verbinding met de MySQL-database-instantie op RDS met behulp van het hostadres en de poort met de volgende mysql-opdracht om een ​​MySQL-opdrachtregelinterface te starten.

mysql --host=mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=3306 --user=dvohra --password=mysql5db

De host, gebruiker en wachtwoord zijn voor verschillende gebruikers verschillend. Verleen MySQL-accounttoegang aan de DMS-gebruiker met de volgende opdrachten, waarbij de DMS-gebruiker voor verschillende gebruikers anders zou zijn.

WIJS ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON mysqldb.* TO 'dvohra'@'%'; pre> 

Een Google Cloud Platform-project maken

U moet een Google Cloud Platform-project maken om CloudSQL te gebruiken. Om een ​​project aan te maken, klikt u op Een leeg project maken link op de pagina Aan de slag, zoals weergegeven in Afbeelding 14.


Figuur 14: Maak een leeg project

In het Nieuw project wizard, specificeer een projectnaam (MySQLDB) en klik op Maken , zoals weergegeven in Afbeelding 15.


Figuur 15: Nieuw project

Er wordt een nieuw project aangemaakt, zoals weergegeven in het Dashboard in Afbeelding 16.


Figuur 16: Nieuw Google Cloud Platform-project

Een CloudSQL-instantie maken

In deze sectie zullen we een CloudSQL-instantie maken. Navigeer naar de CloudSQL-URL https://cloud.google.com/sql/ in een browser, zoals weergegeven in Afbeelding 17. Klik op View Console.


Figuur 17: Console bekijken

Selecteer de MySQLDB project en klik op Exemplaar maken , zoals weergegeven in Afbeelding 18.


Figuur 18: Instantie maken

In de Een instantie maken wizard, selecteer MySQL en klik op Volgende , zoals weergegeven in Afbeelding 19.


Figuur 19: Engine kiezen als MySQL

In Kies een MySQL-instantietype , klik op Tweede generatie kiezen om het MySQL-instantietype van de tweede generatie te selecteren, zoals weergegeven in Afbeelding 20. Enkele voordelen van het instantietype van de tweede generatie worden ook vermeld.


Figuur 20: Een MySQL-instantie van de tweede generatie kiezen

In Een MySQL Second Generation-instantie maken (zie Afbeelding 21), specificeer een Instance ID en een Rootwachtwoord en selecteer een Regio en Zone. Klik op Maken .


Figuur 21: Maak een MySQL Second Generation-instantie

Er wordt een MySQL-instantie gemaakt, zoals weergegeven in de tabel Instances in Afbeelding 22.


Figuur 22: CloudSQL MySQL-instantie

Een route voor CloudSQL DB-instantie IP-adres toevoegen aan de VPC-routetabel

We moeten de routetabel wijzigen voor de VPC waarin de RDS DB-instantie en DMS-migratie worden gemaakt om toegang te krijgen tot het IP-adres van de CloudSQL-instantie. Verkrijg eerst het IP-adres van de CloudSQL-instantie van de CloudSQL-console, zoals weergegeven in Afbeelding 23.


Figuur 23: IP-adres van de CloudSQL DB-instantie

Klik op de Routetabel link, zoals weergegeven in Afbeelding 24, voor de VPC waarin de RDS DB-instantie wordt gemaakt en DMS wordt vervolgens gemaakt.


Figuur 24: Routetabel link

Selecteer de weergegeven route en klik op Bewerken, zoals weergegeven in Afbeelding 25.


Figuur 25: Route>Bewerken

Klik op Nog een route toevoegen (zie afbeelding 26).


Figuur 26: Nog een route toevoegen

Specificeer het IP-adres van de CloudSQL-instantie in Destination, zoals weergegeven in Afbeelding 27.


Figuur 27: Bestemming specificeren als het IP-adres van de CloudSQL-instantie

Selecteer het doel als de internetgateway die is gekoppeld aan de VPC, zoals weergegeven in afbeelding 28. Een internetgateway maakt communicatie mogelijk tussen de instanties in een VPC en internet.


Figuur 28: Doel selecteren als internetgateway

Klik op Opslaan om de route op te slaan. Er wordt een route toegevoegd, zoals weergegeven in Afbeelding 29.


Figuur 29: Route voor CloudSQL-instantie

Een DMS-replicatie-instantie maken

In deze sectie zullen we een replicatie-instantie maken voor het migreren van een CloudSQL-instantie naar RDS. Klik op Migratie maken op de startpagina van de Database Migration Service, zoals weergegeven in Afbeelding 30.


Figuur 30: Migratie maken

Klik op de welkomstpagina op Volgende (zie Afbeelding 31).


Figuur 31: Welkomstpagina>Volgende

In de Replicatie-instantie maken pagina, geef een naam en beschrijving op, zoals weergegeven in Afbeelding 32. Selecteer een instantieklasse als dms.t2.medium. Selecteer versie van de replicatie-engine als 2.2.1. Selecteer dezelfde VPC waarin de RDS DB-instantie is gemaakt. Selecteer Multi-AZ A Nee. Selecteer het selectievakje Openbaar toegankelijk.


Figuur 32: Een replicatie-instantie configureren

Geef in Geavanceerd de Toegewezen opslag (50 GB) op, selecteer een replicatiesubnetgroep en selecteer Beschikbaarheidszone als hetzelfde als voor RDS DB-instantie, us-east-1b, zoals weergegeven in Afbeelding 33. Selecteer de standaard VPC-beveiligingsgroep. Selecteer de KMS-hoofdsleutel die voor DMS is gemaakt.


Figuur 33: Geavanceerde opties configureren

Selecteer de standaard Onderhoudsinstellingen en klik op Volgende, zoals weergegeven in Afbeelding 34.


Figuur 34: Replicatie-instantie>Volgende

Het bericht "Uw replicatie-instantie wordt gemaakt" wordt weergegeven, zoals weergegeven in Afbeelding 35. De bron- en doeldatabase-eindpunten kunnen pas worden geconfigureerd nadat de replicatie-instantie is gemaakt.


Figuur 35: Uw replicatie-instantie wordt gemaakt

Wanneer de replicatie-instantie is gemaakt, wordt het bericht "Replicatie-instantie gemaakt met succes" weergegeven (zie Afbeelding 36).


Figuur 36: Replicatie-instantie succesvol gemaakt

De replicatie-instanties geven een lijst weer van de nieuwe replicatie-instantie die is gemaakt, zoals weergegeven in Afbeelding 37.


Figuur 37: Replicatie-instanties

Een netwerk voor replicatie-instance-connectiviteit toevoegen aan CloudSQL DB-instance

Bepaal eerst het IP-adres waarop de replicatie-instantie wordt uitgevoerd. Het IP-adres kan worden verkregen via de console van de replicatie-instantie, zoals weergegeven in Afbeelding 38.


Figuur 38: IP-adres voor replicatie-instantie

Nadat we het IP-adres hebben verkregen, zullen we vervolgens een netwerk dat bestaat uit het IP-adres toevoegen aan de MySQL-instantie op CloudSQL. Klik op de CloudSQL MySQL-instantielink, zoals weergegeven in Afbeelding 39.


Figuur 39: CloudSQL MySQL DB-instantie

Klik op Autorisatie MySQL-database-instantie detailpagina, zoals weergegeven in Afbeelding 40.


Figuur 40: Autorisatie

Klik op Netwerk toevoegen (zie Afbeelding 41).


Figuur 41: Netwerk toevoegen

In Nieuw netwerk , specificeer een netwerknaam en netwerk-IP-adres als het IP-adres van de replicatie-instantie, zoals weergegeven in Afbeelding 42, en klik op Gereed.


Figuur 42: Nieuw netwerk toevoegen aan CloudSQL

Er wordt een nieuw netwerk toegevoegd, zoals weergegeven in Afbeelding 43. Klik op Opslaan om het netwerk op te slaan.


Figuur 43: Nieuw netwerk opslaan

Het bericht 'Instance wordt updated' wordt weergegeven, zoals weergegeven in Afbeelding 44.


Figuur 44: Instantie wordt bijgewerkt

Wanneer de instantie is bijgewerkt, geeft het instantiepictogram hetzelfde aan, zoals weergegeven in Afbeelding 45.


Figuur 45: Instantie bijgewerkt

Klik op Overzicht (zie Afbeelding 46) om het instantieoverzicht weer te geven.


Figuur 46: Overzicht

Het nieuwe netwerk wordt vermeld in Geautoriseerde netwerken op de Instance Details pagina, zoals weergegeven in Afbeelding 47.


Figuur 47: Geautoriseerde netwerken

Databasereplicatie-eindpunten maken

Vervolgens zullen we de bron- en doeldatabase-eindpunten maken. Geef eindpunt-ID's op voor bron- en doeldatabases. Selecteer voor Bron-engine mysql , zoals weergegeven in Afbeelding 48.


Figuur 48: Bron-engine selecteren als mysql

Selecteer Target engine als mysql ook, zoals weergegeven in Afbeelding 49.


Figuur 49: Target Engine selecteren als mysql

Kopieer voor de naam van de bronserver het IPv4-adres van de CloudSQL-instantie, zoals weergegeven in Afbeelding 50.


Figuur 50: IPv4-adres van de CloudSQL-instantie

Geef voor de doeldatabase de servernaam op als het eindpunt minus het poortsuffix ":3306" voor de RDS DB-instantie voor de MySQL-database (zie Afbeelding 51). Specificeer Poort voor bron- en doeldatabases als 3306. Selecteer SSL-modus als geen voor zowel bron- als doelverbindingen. Geef de gebruikersnaam voor de brondatabase op als root en het wachtwoord zoals ingesteld bij het maken van de CloudSQL-instantie. Stel op dezelfde manier de gebruikersnaam en het wachtwoord in voor de doeldatabase op RDS.


Figuur 51: Verbindingsdetails voor bron- en doeldatabase configureren

Selecteer voor het gedeelte Geavanceerd van zowel de bron- als de doeldatabase de KMS-hoofdsleutel dms, die is gemaakt voor DMS. Klik op Test uitvoeren , zoals weergegeven in Afbeelding 52, voor de bronaansluiting. Klik op dezelfde manier op Test uitvoeren voor de doelverbinding.


Figuur 52: Test uitvoeren

Als het resultaat van de test "Verbinding met succes getest" is voor zowel de bron- als de doeldatabaseverbindingen, klikt u op Volgende, zoals weergegeven in Afbeelding 53.


Figuur 53: Verbindingen testen

Een replicatietaak maken

Geef in Taak maken een taaknaam en taakbeschrijving op, zoals weergegeven in Afbeelding 54. Het broneindpunt, het doeleindpunt en de replicatie-instantie zijn hard gecodeerd. Selecteer Migratietype als Bestaande gegevens migreren. Schakel het selectievakje Taak starten bij aanmaken in.


Figuur 54: Taak maken

Selecteer/stel in Taakinstellingen Doeltabelvoorbereidingsmodus in als Niets doen , LOB-kolommen opnemen in replicatie als Beperkte LOB-modus , en Max LOB-grootte 32 kb, zoals weergegeven in Afbeelding 55. Selecteer de optie Logboekregistratie inschakelen optie.


Figuur 55: Taakinstellingen

In Tabeltoewijzingen , weergegeven in Afbeelding 56, moet ten minste één selectieregel worden toegevoegd.


Figuur 56: Tabeltoewijzingen

Selecteer de Voer een schema in optie in de Schemanaam is veld. Specificeer Schemanaam is als mysql , zoals weergegeven in Afbeelding 57. Specificeer Tabelnaam is als innodb_index_stats. Selecteer Actie als Opnemen . Klik op Selectieregel toevoegen .


Figuur 57: Een selectieregel toevoegen

Om nog een selectieregel toe te voegen, klikt u op de selectieregel toevoegen link, zoals weergegeven in Afbeelding 58.


Figuur 58: Selectieregel toevoegen

Voeg een selectieregel toe om tabel mysql.innodb_table_stats op te nemen , zoals weergegeven in Afbeelding 59.


Figuur 59: Een selectieregel toevoegen voor mysql.innodb_table_stats

Er kunnen selectieregels worden toegevoegd, één voor elke tabel, of door een reguliere expressie met jokertekens te gebruiken. Vervolgens zullen we een % gebruiken om een ​​selectieregel toe te voegen. Klik op selectieregel toevoegen , zoals weergegeven in Afbeelding 60.


Figuur 60: Link naar selectieregel toevoegen

Specificeer Schema als mysql en specificeer Tabelnaam als time_zone% , die alle tabellen vertegenwoordigt die beginnen met "time_zone" (zie Afbeelding 61).


Figuur 61: Een selectieregel toevoegen om alle tabellen in het mysql-schema op te nemen, beginnend met time_zone

Klik op Taak maken om een ​​taak te maken, zoals weergegeven in Afbeelding 62.


Figuur 62: Taak maken

Er wordt een nieuwe taak toegevoegd met de status Aanmaken in eerste instantie, zoals weergegeven in Afbeelding 63. Klik op Gegevens vernieuwen van server periodiek om de taakstatus te vernieuwen.


Figuur 63: Taak toegevoegd met status Aanmaken

Wanneer de taak is gemaakt en klaar is om te worden uitgevoerd, wordt de Status Gereed, zoals weergegeven in Afbeelding 64.


Figuur 64: Taakstatus gereed

De replicatietaak uitvoeren

Om de replicatie-instantie te starten, klikt u op de knop Start/Resume, zoals weergegeven in Afbeelding 65.


Figuur 65: Start/Hervat

De taakstatus wordt Begint (zie Afbeelding 66). Klik regelmatig op Gegevens vernieuwen van server knop om de status te vernieuwen zoals weergegeven in Afbeelding 66.


Figuur 66: Taakstatus begint

Taakstatus wordt Bezig wanneer de taak begint te lopen. Wanneer de volledige lading is voltooid, wordt de status Laden voltooid , zoals weergegeven in Afbeelding 67.


Figuur 67: Laden voltooid

De gemigreerde tabellen verkennen

De Tabellen geladen kolom heeft een waarde van 7 voor de zeven tabellen die zijn gemigreerd, zoals weergegeven in Afbeelding 68.


Figuur 68: Zeven tabellen gemigreerd

Om details over de gemigreerde tabellen te vinden, selecteert u de Tabelstatistieken tabblad, zoals weergegeven in Afbeelding 69.


Figuur 69: Tabelstatistieken

Alle tabellen die zijn gemigreerd, worden weergegeven, zoals weergegeven in Afbeelding 70.


Figuur 70: Tabellen gemigreerd

De CloudWatch-logboeken verkennen

Om de CloudWatch-logboeken te verkennen, klikt u op de link in de Logs tabblad (zie Afbeelding 71).


Figuur 71: Logboeklink

CloudWatch-logboeken geven een logboekitem weer voor elke gemigreerde tabel, zoals weergegeven in Afbeelding 72. Wanneer alle tabellen die zijn geconfigureerd met behulp van de selectie- en transformatieregels zijn gemigreerd, wordt het logboekitem "Alle tabellen zijn geladen" toegevoegd.


Figuur 72: CloudWatch-logboeken

Wanneer alle tabellen zijn geladen, is een logboekitem Taakbeheer beëindigd wordt toegevoegd, zoals weergegeven in Afbeelding 73.


Figuur 73: Taakbeheer beëindigd

Een migratie verwijderen

Om een ​​migratie te verwijderen, is de volgorde omgekeerd van het maken van een migratie.

  1. Verwijder de migratietaak(en).
  2. Verwijder de database-eindpunten.
  3. Verwijder de replicatie-instantie.

Om de taak te verwijderen, selecteert u de taak en klikt u op Verwijderen, zoals weergegeven in Afbeelding 74.


Figuur 74: Taak>Verwijderen

Klik in het dialoogvenster Taak verwijderen op Verwijderen, zoals weergegeven in Afbeelding 75.


Figuur 75: Dialoogvenster Taakbevestiging verwijderen

De taakstatus wordt Verwijderen (zie Afbeelding 76).


Figuur 76: Taak verwijderen

Om de eindpunten te verwijderen, selecteert u de eindpunten en klikt u op Verwijderen, zoals weergegeven in Afbeelding 77.


Figuur 77: Eindpunten>Verwijderen

In het Eindpunt verwijderen bevestigingsvenster, klikt u op Verwijderen, zoals weergegeven in Afbeelding 78.


Figuur 78: Dialoogvenster voor bevestiging van eindpunt verwijderen

De status voor de eindpunten wordt Verwijderen, zoals weergegeven in Afbeelding 79.


Figuur 79: Eindpunten verwijderen

Om een ​​replicatie-instantie te verwijderen, selecteert u de replicatie-instantie en klikt u op Verwijderen, zoals weergegeven in Afbeelding 80.


Figuur 80: Replicatie-instanties>Verwijderen

In de Replicatie-instantie verwijderen bevestigingsvenster, klikt u op Verwijderen (zie Afbeelding 81).


Figuur 81: Bevestigingsdialoogvenster Replicatie-instantie verwijderen

De status voor de replicatie-instantie wordt Verwijderen, zoals weergegeven in Afbeelding 82.


Figuur 82: Replicatie-instantie verwijderen

DB-instanties verwijderen

Verwijder vervolgens de bron- en doeldatabases. Om de doeldatabase, een MySQL-database op RDS, te verwijderen, selecteert u de database-instantie in de tabel Alle instanties en klikt u op Instantieacties>Verwijderen, zoals weergegeven in Afbeelding 83.


Figuur 83: Instantieacties>Verwijderen

Selecteer in Delete DB instance de optie om geen definitieve momentopname te maken en schakel het selectievakje voor bevestiging in en klik op Delete, zoals weergegeven in Afbeelding 84.


Figuur 84: Dialoogvenster DB-instantie verwijderen

Het RDS DB-exemplaar begint te worden verwijderd, zoals aangegeven door de status Verwijderen in Afbeelding 85.


Figuur 85: RDS DB-instantie verwijderen

Om de CloudSQL DB-instantie te verwijderen, klikt u met de rechtermuisknop op de mysql DB-instantiebeheerpictogram en selecteer Verwijderen (zie Afbeelding 86).


Figuur 86: CloudSQL mysql>Verwijderen

In de Exemplaar verwijderen? bevestigingsvenster, specificeert u de instantienaam in het daarvoor bestemde veld om te bevestigen dat de instantie moet worden verwijderd en klikt u op Verwijderen, zoals weergegeven in Afbeelding 87.


Figuur 87: Bevestigingsdialoogvenster instantie verwijderen

Conclusie

In dit artikel hebben we het migreren van MySQL op CloudSQL naar AWS RDS met AWS Database Migration Service besproken.


  1. Update query if-instructie voor Oracle

  2. Verbinding kan niet worden gecast naar oracle.jdbc.OracleConnection

  3. Waarom geeft SQL-server deze fout:Kan de waarde NULL niet invoegen in kolom 'id'?

  4. Wereldback-updag:4 interessante feiten over gegevensverlies om te weten