Google CloudSQL är en hanterad tjänst för databaser med stöd för MySQL och PostgreSQL. CloudSQL kan integreras med några av de andra Google Cloud Platform-tjänsterna, inklusive datareplikering över flera zoner med automatisk failover. I den här artikeln ska vi diskutera migrering av en MySQL-databasinstans från Google CloudSQL till AWS RDS med hjälp av Database Migration Service (DMS). Den här artikeln har följande avsnitt:
- Ställa in miljön
- Skapa en MySQL RDS DB-instans
- Ansluter till MySQL-databasen på RDS
- Skapa ett Google Cloud Platform-projekt
- Skapa en CloudSQL-instans
- Lägga till en rutt för CloudSQL DB-instansens IP-adress till VPC-rutttabellen
- Skapa en DMS-replikeringsinstans
- Lägga till ett nätverk för replikeringsinstansanslutning till CloudSQL DB-instans
- Skapa slutpunkter för databasreplikering
- Skapa en replikeringsuppgift
- Köra replikeringsuppgiften
- Utforska de migrerade tabellerna
- Utforska CloudWatch-loggarna
- Ta bort en migrering
- Ta bort DB-instanser
- Slutsats
Ställa in miljön
Ett Google Cloud Platform-faktureringskonto krävs. Google Cloud Platform Free Tier-konto ger en kostnadsfri provperiod det första året. Ett AWS-konto krävs också; detta kan skapas på https://aws.amazon.com/resources/create-account/.
Skapa en MySQL RDS DB-instans
Eftersom vi ska migrera en MySQL-databas från CloudSQL till AWS RDS måste vi skapa en MySQL-databasinstans på RDS. Navigera till RDS på https://aws.amazon.com/rds och, i RDS-guiden, välj motor som MySQL, som visas i figur 1.
Figur 1: Väljer MySQL Database Engine
I Produktion? , välj Dev/Test , som visas i figur 2.
Figur 2: Välj utveckling och test
I Ange DB-detaljer , markera kryssrutan Visa endast alternativ som är kvalificerade för RDS Free Tier , som visas i figur 3. Välj Licensmodell som allmän-offentlig-licens. Välj DB Engine Version som MySQL 5.6.35. MySQL-versionerna 5.5, 5.6 och 5.7 stöds för DMS-mål. Välj DB Instance Class som db.t2.micro, som har en kapacitet på 1 vCPU och 1 GB RAM. Välj Multi-AZ-distribution som nr. Välj Storage Type as General Purpose (SSD) och allokerad lagring som 5 GB.
Figur 3: Ange DB-detaljer
Ange en DB-instansidentifierare i databasinställningar (mysqldb), huvudanvändarnamn och huvudlösenord, som visas i figur 4. Klicka på Nästa steg.
Figur 4: Ange databasinställningar
I Konfigurera avancerade inställningar väljer du en VPC, som visas i figur 5. DMS-migreringen ska skapas i samma VPC som RDS DB-instansen. Ställ in tillgänglighetszon som us-east-1b. Välj alternativet Skapa ny säkerhetsgrupp. I Databasalternativ, ange ett databasnamn (mysqldb). Ange en databasport (3306) och välj en DB-parametergrupp.
Figur 5: Konfigurera avancerade inställningar
De flesta eller alla andra inställningar – inklusive Alternativgrupp, Aktivera IAM DB-autentisering, Aktivera kryptering, Säkerhetskopiering och övervakning – kan behållas som standard (se figur 6). Automatiska säkerhetskopieringar krävs för att vara aktiverade för MySQL på RDS som DMS-källa. Klicka på Starta DB-instans .
Figur 6: Starta DB-instans
En ny DB-instans börjar skapas, vilket visas av meddelandet i figur 7. Klicka på Visa dina DB-instanser för att se DB-instanserna.
Figur 7: Din DB-instans skapas
En ny MySQL DB-instans på RDS startar, som visas i figur 8.
Figur 8: MySQL DB-instans på RDS
Klicka på länken Säkerhetsgrupp, som visas i figur 9, för att ändra reglerna för inkommande/utgående för att tillåta trafik från/till alla IP-adresser.
Figur 9: Säkerhetsgrupplänk
Välj fliken Inkommande och klicka på knappen Redigera för att ändra reglerna för inkommande, som visas i figur 10.
Figur 10: Ändra inkommande regler
I Redigera inkommande regler, ställ in Typ till All Traffic, Protocol to All, Port Range till 0-65535, Source to Anywhere, och klicka på Spara (se figur 11).
Figur 11: Redigera inkommande regler
De modifierade inkommande reglerna visas i figur 12.
Figur 12: Inkommande regler
De utgående reglerna behöver inte ändras eftersom de redan är inställda för att tillåta trafik till alla destinations-IP:er, som visas i figur 13.
Figur 13: Utgående regler
Ansluter till MySQL-databasen på RDS
Skaffa RDS DB-instansvärden från Endpoint; värdadressen är slutpunkten med portsuffixet :3306 borttaget. Anslut till MySQL-databasinstansen på RDS med värdadressen och porten med följande mysql-kommando för att starta ett MySQL-kommandoradsgränssnitt.
mysql --host=mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=3306 --user=dvohra --password=mysql5db
Värden, användaren och lösenordet skulle vara olika för olika användare. Ge MySQL-kontoåtkomst till DMS-användaren med följande kommandon, där DMS-användaren skulle vara olika för olika användare.
GIVNA ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT PÅ mysqldb.* TO 'dvohra'@'%';GI ALLA PRIVILEGIER PÅ awsdms_control.* TO 'dvohra'@'%';Skapa ett Google Cloud Platform-projekt
Du måste skapa ett Google Cloud Platform-projekt för att använda CloudSQL. För att skapa ett projekt klickar du på Skapa ett tomt projekt länken på sidan Komma igång, som visas i figur 14.
Figur 14: Skapa ett tomt projektI Nytt projekt guiden, ange ett projektnamn (MySQLDB) och klicka på Skapa , som visas i figur 15.
Figur 15: Nytt projektEtt nytt projekt skapas, som visas i instrumentpanelen i figur 16.
Figur 16: Nytt Google Cloud Platform-projektSkapa en CloudSQL-instans
I det här avsnittet ska vi skapa en CloudSQL-instans. Navigera till CloudSQL URL https://cloud.google.com/sql/ i en webbläsare, som visas i figur 17. Klicka på View Console.
Figur 17: Visa konsolVälj MySQLDB projekt och klicka på Skapa instans , som visas i figur 18.
Figur 18: Skapa instansI Skapa en instans guiden, välj MySQL och klicka på Nästa , som visas i figur 19.
Figur 19: Väljer motor som MySQLI Välj en MySQL-instanstyp klickar du på Välj andra generationen för att välja MySQL andra generationens instanstyp, som visas i figur 20. Några av fördelarna med andra generationens instanstyp listas också.
Figur 20: Att välja en andra generationens MySQL-instansI Skapa en MySQL andra generationens instans (se figur 21), ange ett instans-ID och ett rootlösenord och välj en Region och Zone. Klicka på Skapa .
Figur 21: Skapa en MySQL andra generationens instansEn MySQL-instans börjar skapas, som visas i tabellen Instans i figur 22.
Figur 22: CloudSQL MySQL-instansLägga till en rutt för CloudSQL DB-instansens IP-adress till VPC-rutttabellen
Vi måste ändra rutttabellen för VPC där RDS DB-instansen och DMS-migreringen skapas för att tillåta åtkomst till IP-adressen för CloudSQL-instansen. Skaffa först IP-adressen för CloudSQL-instansen från CloudSQL-konsolen, som visas i figur 23.
Figur 23: IP-adress för CloudSQL DB-instansenKlicka på Rutttabell länk, som visas i figur 24, för den VPC där RDS DB-instansen skapas och DMS ska skapas därefter.
Figur 24: Länk till rutttabellVälj rutten i listan och klicka på Redigera, som visas i figur 25.
Figur 25: Rutt>RedigeraKlicka på Lägg till en annan rutt (se figur 26).
Figur 26: Lägg till en annan ruttAnge IP-adressen för CloudSQL-instansen i Destination, som visas i figur 27.
Figur 27: Ange destination som IP-adress för CloudSQL-instansenVälj Target som Internet Gateway som är associerad med VPC, som visas i figur 28. En Internet Gateway tillåter kommunikation mellan instanserna i en VPC och Internet.
Figur 28: Välja Target som Internet GatewayKlicka på Spara för att spara rutten. En rutt läggs till, som visas i figur 29.
Figur 29: Rutt för CloudSQL-instansSkapa en DMS-replikeringsinstans
I det här avsnittet ska vi skapa en replikeringsinstans för att migrera en CloudSQL-instans till RDS. Klicka på Skapa migrering på startsidan för Database Migration Service, som visas i figur 30.
Figur 30: Skapa migreringPå välkomstsidan klickar du på Nästa (se figur 31).
Figur 31: Välkomstsida>NästaI Skapa replikeringsinstans sida, ange ett namn och en beskrivning, som visas i figur 32. Välj en instansklass som dms.t2.medium. Välj version av replikeringsmotorn som 2.2.1. Välj samma VPC som RDS DB-instansen skapades i. Välj Multi-AZ A No. Markera kryssrutan Allmänt tillgänglig.
Figur 32: Konfigurera en replikeringsinstansI Avancerat, ange Allokerad lagring (50 GB), välj en replikeringsundernätsgrupp och välj Tillgänglighetszon på samma sätt som för RDS DB-instans, us-east-1b, som visas i figur 33. Välj standard VPC-säkerhetsgrupp. Välj KMS-huvudnyckeln som skapats för DMS.
Figur 33: Konfigurera avancerade alternativVälj standardinställningarna för underhåll och klicka på Nästa, som visas i figur 34.
Figur 34: Replikeringsinstans>NästaMeddelandet "Din replikeringsinstans skapas" visas, som visas i figur 35. Käll- och måldatabasens slutpunkter kan konfigureras först efter att replikeringsinstansen har skapats.
Figur 35: Din replikeringsinstans skapasNär replikeringsinstansen har skapats visas meddelandet "Replikeringsinstans skapad framgångsrikt" (se figur 36).
Figur 36: Replikeringsinstansen skapades framgångsriktReplikeringsinstanserna listar den nya replikeringsinstansen som skapats, som visas i figur 37.
Figur 37: ReplikeringsinstanserLägga till ett nätverk för replikeringsinstansanslutning till CloudSQL DB-instans
Bestäm först vilken IP-adress som replikeringsinstansen körs på. IP-adressen kan erhållas från replikeringsinstanskonsolen, som visas i figur 38.
Figur 38: IP-adress för replikeringsinstansEfter att ha erhållit IP-adressen ska vi lägga till ett nätverk som består av IP-adressen till MySQL-instansen på CloudSQL. Klicka på länken CloudSQL MySQL-instans, som visas i figur 39.
Figur 39: CloudSQL MySQL DB-instansKlicka på Authorization MySQL Database Instance detaljsida, som visas i figur 40.
Figur 40: AuktoriseringKlicka på Lägg till nätverk (se figur 41).
Figur 41: Lägg till nätverkI Nytt nätverk , ange ett nätverksnamn och nätverks-IP-adress som IP-adress för replikeringsinstansen, som visas i figur 42, och klicka på Klar.
Figur 42: Lägger till nytt nätverk till CloudSQLEtt nytt nätverk läggs till, som visas i figur 43. Klicka på Spara för att spara nätverket.
Figur 43: Sparar nytt nätverkEtt meddelande om "Instans uppdateras" visas, som visas i figur 44.
Figur 44: Förekomsten uppdaterasNär instansen har uppdaterats indikerar instansikonen detsamma, som visas i figur 45.
Figur 45: Förekomsten uppdateradKlicka på Översikt (se figur 46) för att visa instansöversikten.
Figur 46: ÖversiktDet nya nätverket listas i Auktoriserade nätverk på Instansinformation sida, som visas i figur 47.
Figur 47: Auktoriserade nätverkSkapa slutpunkter för databasreplikering
Därefter ska vi skapa käll- och måldatabasens slutpunkter. Ange slutpunktsidentifierare för käll- och måldatabaser. För källmotor, välj mysql , som visas i figur 48.
Figur 48: Väljer källmotor som mysqlVälj Målmotor som mysql också, som visas i figur 49.
Figur 49: Välj Target Engine som mysqlFör källservernamnet, kopiera IPv4-adressen för CloudSQL-instansen, som visas i figur 50.
Figur 50: IPv4-adress för CloudSQL-instansenFör måldatabasen, ange servernamnet som Endpoint minus portsuffixet ":3306" för RDS DB-instansen för MySQL-databasen (se figur 51). Ange port för käll- och måldatabaser som 3306. Välj SSL-läge som ingen för både käll- och målanslutningar. Ange användarnamn för källdatabasen som root och lösenordet som ställts in när du skapar CloudSQL-instansen. På samma sätt ställer du in användarnamnet och lösenordet för måldatabasen på RDS.
Figur 51: Konfigurera käll- och måldatabasanslutningsdetaljerFör avsnittet Avancerat i både käll- och måldatabasen, välj KMS-huvudnyckeln dms, som skapades för DMS. Klicka på Kör test , som visas i figur 52, för källanslutningen. På samma sätt klickar du på Kör test för målanslutningen.
Figur 52: Kör testOm resultatet av testet är "Anslutning testad framgångsrikt" för både käll- och måldatabasanslutningarna, klicka på Nästa, som visas i figur 53.
Figur 53: Testa anslutningarSkapa en replikeringsuppgift
I Skapa uppgift anger du ett uppgiftsnamn och en uppgiftsbeskrivning, som visas i figur 54. Källändpunkten, måländpunkten och replikeringsinstansen är hårdkodade. Välj Migreringstyp som Migrera befintliga data. Markera kryssrutan Starta uppgift vid skapa.
Figur 54: Skapa uppgiftI Uppgiftsinställningar väljer/ställer du in läge för förberedelse av måltabell som Gör ingenting , Inkludera LOB-kolumner i replikering som Begränsat LOB-läge , och Max LOB-storlek som 32 kb, som visas i figur 55. Välj Aktivera loggning alternativ.
Figur 55: UppgiftsinställningarI Tabellmappningar , som visas i figur 56, måste minst en urvalsregel läggas till.
Figur 56: TabellmappningarVälj Ange ett schema alternativet i Schemanamnet är fält. Ange Schemanamnet är som mysql , som visas i figur 57. Ange Tabellnamnet är som innodb_index_stats. Välj Åtgärd som Inkludera . Klicka på Lägg till urvalsregel .
Figur 57: Lägga till en urvalsregelOm du vill lägga till en annan urvalsregel klickar du på lägg till urvalsregel länk, som visas i figur 58.
Figur 58: Lägg till urvalsregelLägg till en urvalsregel för att inkludera tabellen mysql.innodb_table_stats , som visas i figur 59.
Figur 59: Lägger till en urvalsregel för mysql.innodb_table_statsUrvalsregler kan läggas till, en för varje tabell, eller genom att använda ett reguljärt jokerteckenuttryck. Därefter ska vi använda en % för att lägga till en urvalsregel. Klicka på lägg till urvalsregel , som visas i figur 60.
Figur 60: Lägg till länk för urvalsregelAnge Schema som mysql och ange Tabellnamn som tidszon% , som representerar alla tabeller som börjar med "tidszon" (se figur 61).
Figur 61: Lägger till en urvalsregel för att inkludera alla tabeller i mysql-schemat som börjar med time_zoneKlicka på Skapa uppgift för att skapa en uppgift, som visas i figur 62.
Figur 62: Skapa uppgiftEn ny uppgift läggs till med statusen Skapar initialt, som visas i figur 63. Klicka på Uppdatera data från server regelbundet för att uppdatera aktivitetsstatusen.
Figur 63: Uppgift tillagd med status SkaparNär uppgiften har skapats och är redo att köras, blir statusen Klar, som visas i figur 64.
Figur 64: Uppgiftsstatus redoKör replikeringsuppgiften
För att starta replikeringsinstansen, klicka på Start/Fortsätt-knappen, som visas i figur 65.
Figur 65: Starta/ÅterupptaAktivitetsstatusen blir Startar (se figur 66). Med jämna mellanrum klickar du på Uppdatera data från server för att uppdatera statusen som visas i figur 66.
Figur 66: Uppgiftsstatus startarAktivitetsstatus blir Kör när uppgiften börjar köras. När den fullständiga laddningen har slutförts blir statusen Lastningen klar , som visas i figur 67.
Figur 67: Inläsningen är klarUtforska de migrerade tabellerna
Tabellerna har laddats kolumnen har värdet 7 för de sju migrerade tabellerna, som visas i figur 68.
Figur 68: Sju tabeller migreradeOm du vill hitta information om de migrerade tabellerna väljer du Tabellstatistik fliken, som visas i figur 69.
Figur 69: TabellstatistikAlla tabeller som har migrerats listas, som visas i figur 70.
Figur 70: Tabeller migreradeUtforska CloudWatch-loggarna
För att utforska CloudWatch-loggarna, klicka på länken i Loggar fliken (se figur 71).
Figur 71: Loggar länkCloudWatch-loggar visar en loggpost för varje migrerad tabell, som visas i figur 72. När alla tabeller som konfigurerats med hjälp av urvals- och transformationsreglerna har migrerats, läggs loggposten "Alla tabeller laddas" till.
Figur 72: CloudWatch-loggarNär alla tabeller har laddats avslutades en loggpost Uppgiftshantering läggs till, som visas i figur 73.
Figur 73: Uppgiftshanteringen avslutadesTa bort en migrering
För att ta bort en migrering är sekvensen omvänd mot att skapa en migrering.
- Ta bort migreringsuppgifterna.
- Ta bort databasens slutpunkter.
- Ta bort replikeringsinstansen.
För att ta bort uppgiften, välj uppgiften och klicka på Ta bort, som visas i figur 74.
Figur 74: Uppgift>Ta bortI dialogrutan Ta bort uppgift klickar du på Ta bort, som visas i figur 75.
Figur 75: Dialogrutan Ta bort uppgiftsbekräftelseAktivitetsstatusen blir Ta bort (se figur 76).
Figur 76: Ta bort uppgiftFör att ta bort ändpunkterna, välj ändpunkterna och klicka på Ta bort, som visas i figur 77.
Figur 77: Endpoints>Ta bortI Ta bort slutpunkt bekräftelsedialogrutan, klicka på Ta bort, som visas i figur 78.
Figur 78: Dialogrutan Ta bort slutpunktsbekräftelseStatusen för ändpunkterna blir Deleting, som visas i figur 79.
Figur 79: Ta bort slutpunkterFör att ta bort en replikeringsinstans, välj replikeringsinstansen och klicka på Ta bort, som visas i figur 80.
Figur 80: Replikeringsinstanser>Ta bortI Ta bort replikeringsinstansen bekräftelsedialogruta, klicka på Ta bort (se figur 81).
Figur 81: Dialogrutan för bekräftelse Ta bort replikeringsinstansStatusen för replikeringsinstansen blir Deleting, som visas i figur 82.
Figur 82: Ta bort replikeringsinstansTa bort DB-instanser
Ta sedan bort käll- och måldatabaserna. För att ta bort måldatabasen, som är en MySQL-databas på RDS, välj databasinstansen i tabellen Alla instanser och klicka på Instansåtgärder>Ta bort, som visas i figur 83.
Figur 83: Instansåtgärder>Ta bortI Ta bort DB-instans väljer du alternativet att inte skapa en slutlig ögonblicksbild och markerar kryssrutan för bekräftelse och klickar på Ta bort, som visas i figur 84.
Figur 84: Ta bort DB Instance DialogRDS DB-instansen börjar tas bort, vilket indikeras av Ta bort status i figur 85.
Figur 85: Radering av RDS DB-instansFör att ta bort CloudSQL DB-instansen högerklickar du på mysql DB-instanshanteringsikonen och välj Ta bort (se figur 86).
Figur 86: CloudSQL mysql>Ta bortI Ta bort instans? bekräftelsedialogruta, ange instansnamnet i fältet för att bekräfta att instansen ska tas bort och klicka på Ta bort, som visas i figur 87.
Figur 87: Dialogrutan för bekräftelse av radera instansSlutsats
I den här artikeln diskuterade vi migrering av MySQL på CloudSQL till AWS RDS med hjälp av AWS Database Migration Service.