Google CloudSQL je spravovaná služba pro databáze s podporou MySQL a PostgreSQL. CloudSQL je integrovatelný s některými dalšími službami Google Cloud Platform, včetně replikace dat ve více zónách s automatickým převzetím služeb při selhání. V tomto článku budeme diskutovat o migraci instance databáze MySQL z Google CloudSQL na AWS RDS pomocí Database Migration Service (DMS). Tento článek má následující sekce:
- Nastavení prostředí
- Vytvoření instance MySQL RDS DB
- Připojení k databázi MySQL na RDS
- Vytvoření projektu Google Cloud Platform
- Vytvoření instance CloudSQL
- Přidání trasy pro IP adresu instance CloudSQL DB do tabulky směrování VPC
- Vytvoření instance replikace DMS
- Přidání sítě pro připojení instance replikace do instance CloudSQL DB
- Vytvoření koncových bodů replikace databáze
- Vytvoření úlohy replikace
- Spuštění úlohy replikace
- Prozkoumání migrovaných tabulek
- Prozkoumání protokolů CloudWatch
- Smazání migrace
- Odstranění instancí DB
- Závěr
Nastavení prostředí
Je vyžadován fakturační účet Google Cloud Platform. Účet Google Cloud Platform Free Tier poskytuje bezplatnou zkušební verzi na první rok. Vyžaduje se také účet AWS; toto lze vytvořit na https://aws.amazon.com/resources/create-account/.
Vytvoření instance MySQL RDS DB
Protože budeme migrovat databázi MySQL z CloudSQL na AWS RDS, musíme vytvořit instanci databáze MySQL na RDS. Přejděte na RDS na https://aws.amazon.com/rds a v průvodci RDS vyberte engine jako MySQL, jak je znázorněno na obrázku 1.
Obrázek 1: Výběr databázového stroje MySQL
V části Produkce? , vyberte Vývoj/Test , jak je znázorněno na obrázku 2.
Obrázek 2: Výběrem možnosti Vývoj a testování
V části Zadat podrobnosti DB , zaškrtněte políčko Zobrazit pouze možnosti, které jsou způsobilé pro bezplatnou úroveň RDS , jak je znázorněno na obrázku 3. Vyberte Licenční model jako obecnou veřejnou licenci. Vyberte verzi DB Engine jako MySQL 5.6.35. Pro cíl DMS jsou podporovány verze MySQL 5.5, 5.6 a 5.7. Vyberte DB Instance Class jako db.t2.micro, který má kapacitu 1 vCPU a 1 GB RAM. Vyberte možnost Multi-AZ Deployment jako Ne. Vyberte Typ úložiště jako General Purpose (SSD) a přidělené úložiště jako 5 GB.
Obrázek 3: Zadejte podrobnosti DB
V nastavení databáze zadejte identifikátor instance DB (mysqldb), hlavní uživatelské jméno a hlavní heslo, jak je znázorněno na obrázku 4. Klikněte na Další krok.
Obrázek 4: Zadání nastavení databáze
V Configure Advanced Settings vyberte VPC, jak je znázorněno na obrázku 5. Migrace DMS bude vytvořena ve stejném VPC jako instance RDS DB. Nastavte zónu dostupnosti jako us-východ-1b. Vyberte možnost Vytvořit novou skupinu zabezpečení. V Možnostech databáze zadejte Název databáze (mysqldb). Zadejte databázový port (3306) a vyberte skupinu parametrů DB.
Obrázek 5: Konfigurace pokročilých nastavení
Většina nebo všechna ostatní nastavení – včetně skupiny možností, Povolit ověřování IAM DB, Povolit šifrování, Zálohování a Sledování – mohou být ponechány jako výchozí (viz obrázek 6). Pro MySQL na RDS jako zdroj DMS je nutné povolit automatické zálohování. Klikněte na Spustit instanci DB .
Obrázek 6: Spusťte DB Instance
Začne se vytvářet nová instance DB, jak ukazuje zpráva na obrázku 7. Kliknutím na Zobrazit vaše instance DB zobrazíte instance DB.
Obrázek 7: Vaše instance DB se vytváří
Spustí se nová instance databáze MySQL na RDS, jak je znázorněno na obrázku 8.
Obrázek 8: Instance MySQL DB na RDS
Kliknutím na odkaz Security Group, jak je znázorněno na obrázku 9, upravte pravidla příchozího/odchozího hovoru tak, aby povolovala provoz z/na všechny IP adresy.
Obrázek 9: Odkaz na bezpečnostní skupinu
Vyberte kartu Příchozí a kliknutím na tlačítko Upravit upravte příchozí pravidla, jak je znázorněno na obrázku 10.
Obrázek 10: Úprava příchozích pravidel
V Edit Inbound rules nastavte Type na All Traffic, Protocol na All, Port Range na 0-65535, Source na Anywhere a klikněte na Save (viz obrázek 11).
Obrázek 11: Upravit příchozí pravidla
Upravená příchozí pravidla jsou zobrazena na obrázku 12.
Obrázek 12: Příchozí pravidla
Odchozí pravidla není nutné upravovat, protože jsou již nastavena tak, aby umožňovala provoz na všechny cílové IP adresy, jak je znázorněno na obrázku 13.
Obrázek 13: Odchozí pravidla
Připojení k databázi MySQL na RDS
Získejte hostitele instance RDS DB z koncového bodu; adresa hostitele je koncový bod s odstraněnou příponou portu :3306. Připojte se k instanci databáze MySQL na RDS pomocí adresy hostitele a portu pomocí následujícího příkazu mysql a spusťte rozhraní příkazového řádku MySQL.
mysql --host=mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=3306 --user=dvohra --password=mysql5db
Hostitel, uživatel a heslo by se pro různé uživatele lišilo. Udělte přístup k účtu MySQL uživateli DMS pomocí následujících příkazů, ve kterých by se uživatel DMS pro různé uživatele lišil.
UDĚLEJTE ZMĚNIT, VYTVOŘIT, ZAPNOUT, INDEXOVAT, VLOŽIT, AKTUALIZOVAT, ODSTRANIT, VYBRAT NA mysqldb.* TOMU 'dvohra'@'%';UDĚLIT VŠECHNA PRIVILEGIA NA awsdms_control.* TOMU 'dvohra'@'%';Vytvoření projektu Google Cloud Platform
Chcete-li používat CloudSQL, musíte vytvořit projekt Google Cloud Platform. Chcete-li vytvořit projekt, klikněte na Vytvořit prázdný projekt na stránce Začínáme, jak je znázorněno na obrázku 14.
Obrázek 14: Vytvořte prázdný projektV Novém projektu průvodce, zadejte Název projektu (MySQLDB) a klikněte na Vytvořit , jak je znázorněno na obrázku 15.
Obrázek 15: Nový projektVytvoří se nový projekt, jak je znázorněno na řídicím panelu na obrázku 16.
Obrázek 16: Nový projekt Google Cloud PlatformVytvoření instance CloudSQL
V této části vytvoříme instanci CloudSQL. V prohlížeči přejděte na adresu URL CloudSQL https://cloud.google.com/sql/, jak je znázorněno na obrázku 17. Klikněte na Zobrazit konzolu.
Obrázek 17: Zobrazit konzoluVyberte MySQLDB projektu a klikněte na Vytvořit instanci , jak je znázorněno na obrázku 18.
Obrázek 18: Vytvořit instanciV části Vytvořit instanci průvodce, vyberte MySQL a klikněte na Další , jak je znázorněno na obrázku 19.
Obrázek 19: Výběr motoru jako MySQLV části Vyberte typ instance MySQL , klikněte na Vybrat druhou generaci vyberte typ instance MySQL Second Generation, jak ukazuje Obrázek 20. Jsou zde také uvedeny některé výhody typu instance Second Generation.
Obrázek 20: Výběr instance MySQL druhé generaceV části Vytvoření instance MySQL druhé generace (viz obrázek 21), zadejte ID instance a heslo uživatele root a vyberte Region a Zóna. Klikněte na Vytvořit .
Obrázek 21: Vytvořte instanci MySQL druhé generaceZačne se vytvářet instance MySQL, jak je znázorněno v tabulce Instance na obrázku 22.
Obrázek 22: Instance CloudSQL MySQLPřidání trasy pro IP adresu instance CloudSQL DB do tabulky směrování VPC
Potřebujeme upravit Route Table pro VPC, ve kterém je vytvořena instance RDS DB a migrace DMS, aby umožnila přístup k IP adrese instance CloudSQL. Nejprve získejte IP adresu instance CloudSQL z konzoly CloudSQL, jak je znázorněno na obrázku 23.
Obrázek 23: IP adresa instance CloudSQL DBKlikněte na Tabulku trasy odkaz, jak je znázorněno na obrázku 24, pro VPC, ve kterém je vytvořena instance RDS DB a následně bude vytvořen DMS.
Obrázek 24: Odkaz na tabulku trasyVyberte uvedenou trasu a klikněte na Upravit, jak ukazuje Obrázek 25.
Obrázek 25: Trasa>UpravitKlikněte na Přidat další trasu (viz obrázek 26).
Obrázek 26: Přidat další trasuZadejte IP adresu instance CloudSQL v Destination, jak je znázorněno na obrázku 27.
Obrázek 27: Zadání cíle jako IP adresy instance CloudSQLVyberte Cíl jako internetovou bránu spojenou s VPC, jak je znázorněno na obrázku 28. Internetová brána umožňuje komunikaci mezi instancemi ve VPC a internetem.
Obrázek 28: Výběr cíle jako internetové brányKlepnutím na tlačítko Uložit trasu uložíte. Přidá se trasa, jak je znázorněno na obrázku 29.
Obrázek 29: Trasa pro instanci CloudSQLVytvoření instance replikace DMS
V této části vytvoříme replikační instanci pro migraci instance CloudSQL do RDS. Klikněte na Vytvořit migraci na úvodní stránce Database Migration Service, jak ukazuje Obrázek 30.
Obrázek 30: Vytvořit migraciNa úvodní stránce klikněte na Další (viz Obrázek 31).
Obrázek 31: Uvítací stránka>DalšíV Vytvořit instanci replikace zadejte název a popis, jak ukazuje Obrázek 32. Vyberte třídu instance jako dms.t2.medium. Vyberte verzi modulu replikace jako 2.2.1. Vyberte stejný VPC, ve kterém byla vytvořena instance RDS DB. Vyberte Multi-AZ A No. Zaškrtněte políčko Publicly Accessible.
Obrázek 32: Konfigurace instance replikaceV části Upřesnit zadejte přidělené úložiště (50 GB), vyberte skupinu podsítí replikace a vyberte zónu dostupnosti stejně jako pro instanci RDS DB, us-východ-1b, jak je znázorněno na obrázku 33. Vyberte výchozí skupinu zabezpečení VPC. Vyberte hlavní klíč KMS vytvořený pro DMS.
Obrázek 33: Konfigurace pokročilých možnostíVyberte výchozí nastavení údržby a klepněte na tlačítko Další, jak ukazuje Obrázek 34.
Obrázek 34: Instance replikace>DalšíZobrazí se zpráva „Vaše instance replikace se vytváří“, jak ukazuje Obrázek 35. Koncové body zdrojové a cílové databáze lze konfigurovat až po vytvoření instance replikace.
Obrázek 35: Vaše instance replikace se vytváříPo vytvoření instance replikace se zobrazí zpráva „Instance replikace byla úspěšně vytvořena“ (viz Obrázek 36).
Obrázek 36: Instance replikace byla úspěšně vytvořenaInstance replikace uvádí nově vytvořenou instanci replikace, jak ukazuje Obrázek 37.
Obrázek 37: Instance replikacePřidání sítě pro připojení instance replikace do instance CloudSQL DB
Nejprve určete IP adresu, na které běží instance replikace. Adresu IP lze získat z konzoly instance Replication, jak ukazuje Obrázek 38.
Obrázek 38: IP adresa pro instanci replikacePo získání IP adresy dále přidáme síť skládající se z IP adresy do instance MySQL na CloudSQL. Klikněte na odkaz instance CloudSQL MySQL, jak je znázorněno na obrázku 39.
Obrázek 39: CloudSQL MySQL DB instanceKlikněte na Authorization MySQL Database Instance stránku s podrobnostmi, jak je znázorněno na obrázku 40.
Obrázek 40: AutorizaceKlikněte na Přidat síť (viz obrázek 41).
Obrázek 41: Přidat síťV Nová síť , zadejte název sítě a adresu IP sítě jako adresu IP instance replikace, jak ukazuje Obrázek 42, a klikněte na Hotovo.
Obrázek 42: Přidání nové sítě do CloudSQLPřidá se nová síť, jak ukazuje Obrázek 43. Klikněte na Uložit pro uložení sítě.
Obrázek 43: Ukládání nové sítěZobrazí se zpráva „Instance is being updated“, jak je znázorněno na obrázku 44.
Obrázek 44: Instance se aktualizujeKdyž byla instance aktualizována, ikona instance ukazuje totéž, jak je znázorněno na obrázku 45.
Obrázek 45: Instance aktualizovánaKlepnutím na Přehled (viz Obrázek 46) zobrazíte přehled instance.
Obrázek 46: PřehledNová síť bude uvedena v seznamu Autorizované sítě na stránce Podrobnosti o instanci stránku, jak je znázorněno na obrázku 47.
Obrázek 47: Autorizované sítěVytvoření koncových bodů replikace databáze
Dále vytvoříme zdrojové a cílové koncové body databáze. Zadejte identifikátory koncových bodů pro zdrojové a cílové databáze. Pro zdrojový modul vyberte mysql , jak je znázorněno na obrázku 48.
Obrázek 48: Výběr zdrojového modulu jako mysqlVyberte Cílový stroj jako mysql také, jak je znázorněno na obrázku 49.
Obrázek 49: Výběr cílového modulu jako mysqlPro název zdrojového serveru zkopírujte adresu IPv4 instance CloudSQL, jak je znázorněno na obrázku 50.
Obrázek 50: Adresa IPv4 instance CloudSQLPro cílovou databázi zadejte název serveru jako Koncový bod mínus přípona portu „:3306“ pro instanci RDS DB pro databázi MySQL (viz Obrázek 51). Zadejte port pro zdrojovou a cílovou databázi jako 3306. Vyberte režim SSL jako žádný pro zdrojová i cílová připojení. Zadejte uživatelské jméno pro zdrojovou databázi jako root a heslo podle nastavení při vytváření instance CloudSQL. Podobně nastavte uživatelské jméno a heslo pro cílovou databázi na RDS.
Obrázek 51: Konfigurace podrobností o připojení zdroje a cílové databázeV části Upřesnit ve zdrojové i cílové databázi vyberte hlavní klíč KMS dms, který byl vytvořen pro DMS. Klikněte na Spustit test , jak je znázorněno na obrázku 52, pro připojení zdroje. Podobně klikněte na Spustit test pro cílové připojení.
Obrázek 52: Spustit testPokud je výsledkem testu „Připojení bylo úspěšně otestováno“ pro připojení ke zdrojové i cílové databázi, klikněte na tlačítko Další, jak je znázorněno na obrázku 53.
Obrázek 53: Testování připojeníVytvoření úlohy replikace
V části Vytvořit úlohu zadejte název úlohy a popis úlohy, jak ukazuje Obrázek 54. Zdrojový koncový bod, Cílový koncový bod a Instance replikace jsou pevně zakódovány. Vyberte Typ migrace jako Migrovat existující data. Zaškrtněte políčko Spustit úlohu při vytvoření.
Obrázek 54: Vytvořit úkolV Nastavení úlohy vyberte/nastavte Režim přípravy cílového stolu jako Nedělat nic , Zahrnout do replikace sloupce LOB jako Omezený režim LOB a maximální velikost LOB je 32 kb, jak je znázorněno na obrázku 55. Vyberte možnost Povolit protokolování možnost.
Obrázek 55: Nastavení úkoluV Mapování tabulek , znázorněné na obrázku 56, je třeba přidat alespoň jedno pravidlo výběru.
Obrázek 56: Tabulková mapováníVyberte možnost Zadat schéma možnost v Název schématu je pole. Zadejte Název schématu je podobný mysql , jak je znázorněno na obrázku 57. Zadejte Název tabulky je podobný innodb_index_stats. Vyberte Akce jako Zahrnout . Klikněte na Přidat pravidlo výběru .
Obrázek 57: Přidání pravidla výběruChcete-li přidat další pravidlo výběru, klikněte na přidat pravidlo výběru odkaz, jak je znázorněno na obrázku 58.
Obrázek 58: Přidat pravidlo výběruPřidejte pravidlo výběru pro zahrnutí tabulky mysql.innodb_table_stats , jak je znázorněno na obrázku 59.
Obrázek 59: Přidání pravidla výběru pro mysql.innodb_table_statsMohou být přidána pravidla výběru, jedno pro každou tabulku, nebo pomocí regulárního výrazu se zástupnými znaky. Dále použijeme % k přidání pravidla výběru. Klikněte na přidat pravidlo výběru , jak je znázorněno na obrázku 60.
Obrázek 60: Přidat odkaz na pravidlo výběruZadejte Schéma jako mysql a zadejte Název tabulky jako time_zone% , který představuje všechny tabulky začínající „time_zone“ (viz Obrázek 61).
Obrázek 61: Přidání pravidla výběru pro zahrnutí všech tabulek do schématu mysql počínaje time_zoneKlikněte na Vytvořit úkol k vytvoření úkolu, jak je znázorněno na obrázku 62.
Obrázek 62: Vytvořit úkolPřidá se nový úkol se stavem Vytváří se zpočátku, jak ukazuje Obrázek 63. Klikněte na Obnovit data ze serveru pravidelně obnovovat stav úlohy.
Obrázek 63: Úkol přidán se stavem VytvářeníKdyž je úloha vytvořena a je připravena ke spuštění, stav se změní na Připraveno, jak je znázorněno na obrázku 64.
Obrázek 64: Stav úlohy PřipravenoSpuštění úlohy replikace
Chcete-li spustit instanci replikace, klepněte na tlačítko Spustit/Pokračovat, jak ukazuje Obrázek 65.
Obrázek 65: Start/ResumeStav úlohy se změní na Spouštění (viz obrázek 66). Pravidelně klikněte na tlačítko Obnovit data ze serveru tlačítko pro obnovení stavu, jak je znázorněno na obrázku 66.
Obrázek 66: Stav úlohy SpouštěníStav úlohy se změní na Spuštěno když se úloha spustí. Po dokončení úplného načtení se stav změní na Načítání dokončeno , jak je znázorněno na obrázku 67.
Obrázek 67: Načítání dokončenoProzkoumání migrovaných tabulek
Tabulky načteny sloupec má hodnotu 7 pro sedm migrovaných tabulek, jak ukazuje obrázek 68.
Obrázek 68: Bylo migrováno sedm tabulekChcete-li zjistit podrobnosti o migrovaných tabulkách, vyberte Statistiky tabulek viz Obrázek 69.
Obrázek 69: Tabulkové statistikyZobrazí se seznam všech tabulek, které byly migrovány, jak ukazuje Obrázek 70.
Obrázek 70: Tabulky byly migroványProzkoumání protokolů CloudWatch
Chcete-li prozkoumat protokoly CloudWatch, klikněte na odkaz v Protokolech (viz Obrázek 71).
Obrázek 71: Odkaz na protokolyProtokoly CloudWatch obsahují záznam protokolu pro každou migrovanou tabulku, jak ukazuje Obrázek 72. Po migraci všech tabulek, které byly nakonfigurovány pomocí pravidel výběru a transformace, se přidá položka protokolu „Všechny tabulky jsou načteny“.
Obrázek 72: Protokoly CloudWatchPo načtení všech tabulek bude záznam protokolu Správa úloh ukončena se přidá, jak je znázorněno na obrázku 73.
Obrázek 73: Správa úloh ukončenaOdstranění migrace
Chcete-li odstranit migraci, postup je opačný než při vytváření migrace.
- Smažte úlohy migrace.
- Smažte koncové body databáze.
- Smažte instanci replikace.
Chcete-li úlohu odstranit, vyberte ji a klepněte na Odstranit, jak ukazuje Obrázek 74.
Obrázek 74: Úkol>OdstranitV dialogovém okně Odstranit úlohu klikněte na Odstranit, jak ukazuje Obrázek 75.
Obrázek 75: Dialogové okno potvrzení smazání úlohyStav úkolu se změní na Mazání (viz obrázek 76).
Obrázek 76: Mazání úlohyChcete-li odstranit koncové body, vyberte koncové body a klepněte na Odstranit, jak je znázorněno na obrázku 77.
Obrázek 77: Endpoints>SmazatV části Smazat koncový bod v potvrzovacím dialogu klikněte na Odstranit, jak ukazuje Obrázek 78.
Obrázek 78: Dialogové okno potvrzení smazání koncového boduStav pro koncové body se změní na Odstranění, jak ukazuje Obrázek 79.
Obrázek 79: Odstranění koncových bodůChcete-li odstranit instanci replikace, vyberte instanci replikace a klepněte na Odstranit, jak je znázorněno na obrázku 80.
Obrázek 80: Instance replikace>OdstranitV Odstranit instanci replikace potvrzovacím dialogu klikněte na Odstranit (viz Obrázek 81).
Obrázek 81: Dialogové okno potvrzení Odstranit instanci replikaceStav instance replikace se změní na Odstranění, jak ukazuje Obrázek 82.
Obrázek 82: Odstranění instance replikaceOdstranění instancí DB
Dále odstraňte zdrojovou a cílovou databázi. Chcete-li odstranit cílovou databázi, což je databáze MySQL na RDS, vyberte instanci databáze v tabulce Všechny instance a klikněte na Akce s instancí>Odstranit, jak ukazuje Obrázek 83.
Obrázek 83: Akce instance>OdstranitV instanci Odstranit DB vyberte možnost nevytvářet konečný snímek a zaškrtněte políčko potvrzení a klikněte na Odstranit, jak ukazuje Obrázek 84.
Obrázek 84: Smazat dialogové okno instance DBInstance RDS DB se začne odstraňovat, jak ukazuje stav mazání na obrázku 85.
Obrázek 85: Odstranění instance RDS DBChcete-li odstranit instanci CloudSQL DB, klikněte pravým tlačítkem na mysql ikonu správy instance DB a vyberte Odstranit (viz Obrázek 86).
Obrázek 86: CloudSQL mysql>OdstranitV Smazat instanci? potvrzovacím dialogu zadejte do poskytnutého pole název instance, abyste potvrdili, že instance má být odstraněna, a klepněte na Odstranit, jak ukazuje Obrázek 87.
Obrázek 87: Dialogové okno potvrzení smazání instanceZávěr
V tomto článku jsme diskutovali o migraci MySQL na CloudSQL na AWS RDS pomocí AWS Database Migration Service.