Ve čtyřech výukových programech zkoumáme migraci databáze MySQL do databáze PostgreSQL pomocí služby AWS Database Migration Service (DMS). Začali jsme vytvořením uživatele IAM pro DMS v prvním tutoriálu „Migrace MySQL na PostgreSQL na AWS RDS, část 1“. Následně jsme diskutovali o vytváření instancí MySQL a PostgreSQL na AWS Relational Database Service (RDS) ve druhém tutoriálu „Migrace MySQL na PostgreSQL na AWS RDS, část 2“. Ve třetím tutoriálu „Migrace MySQL na PostgreSQL na AWS RDS, část 3“ jsme vytvořili migraci DMS. V tomto závěrečném tutoriálu probereme spuštění migrace DMS za účelem provedení migrace.
Tento výukový program má následující sekce:
- Spuštění úlohy migrace DMS
- Prozkoumání migrované databáze
- Prozkoumávání protokolů CloudWatch
- Omezení migrace MySQL na PostgreSQL pomocí DMS
- Závěr
Spuštění úlohy migrace DMS
Po vytvoření úkolu se zobrazí Stav by měl být Připraven , jak je znázorněno na obrázku 1. Klikněte na Start/Pokračovat pro zahájení úkolu.
Obrázek 1: Start/Resume
Stav by měl být Spouštění , jak je znázorněno na obrázku 2.
Obrázek 2: Spouštění úlohy
Když úloha naváže spojení s instancí replikace a koncovými body databáze a použije se, tabulka mapující stav se změní na Spuštěno , jak je znázorněno na obrázku 3.
Obrázek 3: Stav Spuštěno
Migrace se spustí podle konfigurace a po úspěšném dokončení migrace se zobrazí Stav se změní na Načítání dokončeno , jak je znázorněno na obrázku 4. Tabulky načteny udává počet načtených tabulek.
Obrázek 4: Stav Načítání dokončeno
U tabulek, které byly migrovány, klikněte na Statistika tabulky 5. Zobrazí se statistika tabulky, včetně schématu, tabulky, stavu, počtu vložení, odstranění, aktualizací, DDL, řádků plného zatížení a celkem.
Obrázek 5: Statistika tabulky
Pokud zdrojová databázová tabulka neobsahuje tabulky, zobrazí se Řádky s úplným načtením je 0. Pokud má zdrojová tabulka řádky, řádky s plným zatížením udávají počet řádků, jak je znázorněno pro některé řádky na obrázku 6.
Obrázek 6: Plné načtení řádků pro některé tabulky je 0, zatímco pro jiné tabulky je počet načtených řádků
Prozkoumání migrované databáze
Po migraci databázových schémat a tabulek MySQL do PostgreSQL vypište schémata v PostgreSQL CLI pomocí dn příkaz. Zobrazí se migrovaná schémata, jak je znázorněno na obrázku 7. public schéma již existovalo před migrací.
Obrázek 7: Schémata migrovaná z MySQL do PostgreSQL databáze
Migrace DMS automaticky převede typy sloupců tabulky. Pro primární klíč se přidá sekundární index, který se automaticky vytvoří v mapování tabulky.
Data tabulky se také migrují, jak je znázorněno pro mysql.user tabulka na obrázku 8.
Obrázek 8: Data tabulky jsou také migrována
Při migraci z jednoho typu databáze na jiný (heterogenní migrace) jsou mapování datových typů prováděna DMS automaticky. Během migrace se používá zprostředkující typ dat DMS. Při migraci z databáze MySQL na PostgreSQL jsou nejprve datové typy MySQL migrovány na datový typ DMS pomocí vestavěných mapování pro databázi MySQL jako zdrojovou databázi. Následně je datový typ DMS mapován na datové typy PostgreSQL, opět pomocí vestavěných mapování pro PostgreSQL jako cílovou databázi. Tabulky související s RDS v databázi MySQL na RDS byly také migrovány do databáze PostgreSQL, jako je tabulka „mysql“.“rds_replication_status“ zobrazená na obrázku 9.
Obrázek 9: Migrovaná data pro informační tabulku RDS
Prozkoumávání protokolů CloudWatch
Pokud je nakonfigurováno protokolování, jako jsme to udělali my, lze protokoly sledovat z Protokolů kartu, jak je znázorněno na obrázku 10. Klepnutím na odkaz úlohy zobrazíte seznam protokolů CloudWatch.
Obrázek 10: Protokoly
Zobrazí se protokoly CloudWatch (viz obrázek 11).
Obrázek 11: Protokoly CloudWatch
Jak ukazuje zpráva protokolů CloudWatch na obrázku 12:„Všechny tabulky jsou načteny. Úloha pouze plného zatížení je zastavena.“
Obrázek 12: Všechny tabulky jsou načteny
Počet přenesených záznamů je také uveden jako u sys.sys_config tabulka na obrázku 13.
Obrázek 13: Záznam protokolu pro tabulku databáze obsahuje počet přenesených záznamů
Protokoly CloudWatch lze použít k ladění běhu úlohy migrace. Chybové zprávy jsou uvedeny pro tabulky, které nebyly úspěšně migrovány v protokolech CloudWatch.
Omezení migrace MySQL na PostgreSQL pomocí DMS
Migrace z databáze MySQL do databáze PostgreSQL pomocí DMS není bez omezení. Samotná služba DMS má limity na uživatelský účet AWS. Další omezení DMS mohou být specifická pro databázi. Typy zdrojových dat DMS pro MySQL nezahrnují 4bajtovou znakovou sadu UTF-8 (utf8mb4). Znaková sada podporovaná systémem DMS je Code Page 1252 Windows Latin 1 (ANSI) a znaky, které nejsou ve znakové sadě, mohou během migrace způsobit chybu. Pro databázi MySQL jako zdroj DMS existují určitá omezení. Jediným omezením pro použití PostgreSQL jako cílové databáze DMS je to, že datový typ JSON je převeden na datový typ Native CLOB.
Závěr
Ve čtyřech tutoriálech jsme diskutovali o migraci instance databáze MySQL na RDS na instanci databáze Postgres na RDS.