sql >> Databáze >  >> RDS >> Mysql

Migrace MySQL na PostgreSQL na AWS RDS, část 3

V sadě čtyř výukových programů zkoumáme migraci instance databáze MySQL do databáze PostgreSQL pomocí služby AWS Database Migration Service (DMS). V prvním tutoriálu „Migrace MySQL na PostgreSQL na AWS RDS, část 1“ jsme představili DMS a vytvořili pro DMS uživatele IAM. Ve druhém tutoriálu, Migrace MySQL na PostgreSQL na AWS RDS, část 2,“ jsme vytvořili instance MySQL a PostgreSQL na RDS a připojili se ke dvěma instancím. V tomto pokračování tutoriálu vytvoříme migraci DMS, abychom provedli migraci. Tento výukový program má následující sekce:

  • Vytvoření migrace DMS
  • Vytvoření instance replikace
  • Vytvoření koncových bodů úlohy migrace
  • Vytvoření úlohy migrace
  • Závěr

Vytvoření migrace DMS

V této části vytvoříme Database Migration Service (DMS) pro migraci databáze MySQL do databáze PostgreSQL. Migrace DMS se skládá z následujících součástí:

  • Instance replikace
  • Koncové body databáze
  • Úkol

Vytvoření každého z nich probereme v podsekcích, ale nejprve musíte vytvořit migraci DMS. Přejděte na řídicí panel DMS a klikněte na Vytvořit migraci , jak je znázorněno na obrázku 1.


Obrázek 1: Vytvořit migraci

Spustí se průvodce DMS. Klepněte na tlačítko Další, jak je znázorněno na obrázku 2.


Obrázek 2: Průvodce DMS

Vytvoření instance replikace

Dále nakonfigurujte instanci replikace, která vytvoří spojení mezi zdrojovou a cílovou databází, přenese data a uloží změny dat, ke kterým dojde během počátečního načtení dat. Zadejte Název instance replikace a Popis a vyberte Třídu instance (výchozí je dms.t2.medium), jak je znázorněno na obrázku 3. Vyberte VPC a vyberte možnost konfigurace vysoké dostupnosti pomocí Mult-Az; výchozí nastavení je „Ne“. Vyberte možnost Veřejně přístupné .


Obrázek 3: Konfigurace instance replikace

V Pokročilé , ponechte výchozí nastavení pro Přidělené úložiště (50 GB), Replication Subnet Group, Availability zone (Bez preference) a VPC Security Group (Použít výchozí), jak je znázorněno na obrázku 4. Vyberte hlavní klíč KMS (dbms) vytvořený dříve v Nastavení prostředí sekce.


Obrázek 4: Konfigurace pokročilých nastavení pro instanci replikace

Klepněte na tlačítko Další, jak je znázorněno na obrázku 5.


Obrázek 5: Další

Začne se vytvářet instance replikace, jak ukazuje zpráva na obrázku 6. Dále je třeba nakonfigurovat připojení ke zdrojové a cílové databázi, což provedeme v další podsekci.


Obrázek 6: Začíná se vytvářet instance replikace

Vytvoření koncových bodů úlohy migrace

Vytvoření instance replikace může trvat několik minut. Koncové body migrace mohou být přidány během vytváření instance replikace. Vyberte Zdrojový modul jako „mysql“, jak je znázorněno na obrázku 7.


Obrázek 7: Výběr Source Engine

Vyberte Cílový vyhledávač jako „postgres“, jak je znázorněno na obrázku 8.


Obrázek 8: Výběr cílového vyhledávače

V Název serveru , zadejte Koncový bod pro instanci RDS DB pro databázi odstraněním :port přípona. Pro databázi MySQL je koncovým bodem RDS mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:3306 . Zadejte proto Název serveru jako mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com , jak je znázorněno na obrázku 9. Pro databázi PostgreSQL na RDS je koncovým bodem postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com:5432; proto zadejte Název serveru jako postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com . Zadejte port samostatně pro zdrojovou a cílovou databázi:3306 pro databázi MySQL a 5432 pro Postgres.


Obrázek 9: Zadání názvu serveru a portu pro zdrojové a cílové databáze

Přejděte dolů pro další nastavení konfigurace koncového bodu, jak je znázorněno na obrázku 10. Vyberte Režim SSL jako žádný pro zdrojovou i cílovou databázi. Zadejte uživatelské jméno a heslo podle konfigurace při vytváření instancí RDS DB. Zadejte název databáze PostgreSQL (postgresdb), také podle konfigurace při vytváření instance RDS DB.


Obrázek 10: Zadání režimu SSL, uživatelského jména, hesla a SID nebo názvu databáze

V Pokročilém nastavení lze zadat další atributy připojení dostupné pro databázi MySQL a databázi PostgreSQL, ale pro tento výukový program nejsou žádné vyžadovány. Vyberte hlavní klíč KMS (dbms) pro zdrojovou i cílovou databázi (viz Obrázek 11). Chcete-li otestovat koncové body DMS, Spustit test jsou k dispozici tlačítka, jak je znázorněno na obrázku 11. Spustit test tlačítka jsou zašedlá nebo zakázána, dokud nebude vytvořena instance replikace.


Obrázek 11: Konfigurace pokročilých nastavení pro koncové body DMS

Po vytvoření instance replikace se zobrazí zpráva „Instance replikace byla úspěšně vytvořena“, jak ukazuje obrázek 12.


Obrázek 12: Instance replikace byla úspěšně vytvořena

Po vytvoření instance replikace Spustit test tlačítka se aktivují. Klikněte na Spustit test , jak je znázorněno na obrázku 13, pro každou databázi.


Obrázek 13: Spustit test

Připojení se začnou testovat, jak ukazuje zpráva „Testing endpoint connection“ na obrázku 14.


Obrázek 14: Testování připojení koncových bodů

Pokud byla připojení koncových bodů nakonfigurována podle potřeby, měla by se zobrazit zpráva „Připojení bylo úspěšně otestováno“, jak je znázorněno na obrázku 15. Klikněte na tlačítko Další.


Obrázek 15: Připojení bylo úspěšně testováno

Vytvoření úlohy migrace

Po vytvoření replikační instance a koncových bodů databáze dále vytvoříme úlohu migrace pro připojení ke koncovým bodům a skutečný přenos dat. V části Vytvořit úkol průvodce, zadejte Název úlohy (je také specifikováno výchozí nastavení) a přidejte popis úlohy (viz Obrázek 16). Vyberte možnost Zahájit úlohu při vytvoření .


Obrázek 16: Průvodce vytvořením úlohy

Koncové body Zdroj a Cíl a instance replikace byly dříve nakonfigurovány a nelze je při vytváření úlohy upravovat. Vyberte Typ migrace , který uvádí tři možnosti, jak je znázorněno na obrázku 17.

  • Migrujte stávající data :Migruje existující schémata, tabulky a data tabulek, které již existují ve zdrojové databázi, ale nemigruje průběžně následné změny.
  • Migrujte stávající data a replikujte probíhající změny :Migruje existující schémata, tabulky a data tabulek, které již existují ve zdrojové databázi, a také průběžně migruje následné změny.
  • Pouze replikovat změny dat :Nemigruje existující schémata, tabulky a data a migruje pouze změny dat.

Vyberte možnost Migrovat existující data možnost, jak je znázorněno na obrázku 17. Chcete-li migrovat změny, což poskytují další dvě možnosti, musí být doba uchování binárního protokolu v instanci databáze MySQL zvýšena na 24 hodin nebo více.


Obrázek 17: Vyberte Typ migrace jako Migrovat existující data

Dále nakonfigurujte Nastavení úlohy . Režim přípravy cílového stolu nastavení se vztahuje na tabulky v cílové databázi a poskytuje tři možnosti:

  • Nedělat nic :Data a metadata cílových tabulek se nezmění
  • Přetáhněte tabulky na cíl :Stávající tabulky, pokud existují, jsou zrušeny a jsou vytvořeny nové tabulky
  • Zkrácení :Tabulky jsou zkráceny, což znamená, že data tabulky jsou odstraněna, ale metadata tabulky se nezmění. Možnost Zahrnout do replikace sloupce LOB nastavení se vztahuje na sloupce typu dat LOB ve zdrojové databázi a poskytuje tři možnosti:
    • Nezahrnujte sloupce LOB :Sloupce LOB jsou z migrace vyloučeny
    • Úplný režim LOB :Migruje kompletní LOB bez ohledu na velikost; LOB jsou migrovány po částech, což by mohlo zpomalit proces migrace
    • Omezený režim LOB :Zkrátí objekty LOB na velikost zadanou v maximální velikosti LOB (kb)

Vyberte Režim přípravy cílového stolu jako Nedělat nic, jak je znázorněno na obrázku 18. Vyberte Zahrnout do replikace sloupce LOB jako Omezený režim LOB a zadejte Max. velikost LOB jako 32 kb (výchozí). Vyberte možnost Povolit protokolování možnost.


Obrázek 18: Nastavení úkolu

Dále přidejte pravidla výběru a transformační pravidla do Mapování tabulek , jak je znázorněno na obrázku 19. Mapování tabulek lze přidat pomocí Průvodce uživatelské rozhraní nebo jako JSON . Doporučuje se řízené uživatelské rozhraní. Musí být přidáno alespoň jedno pravidlo výběru a pravidla transformace jsou volitelná. Pravidla výběru se použijí, zatímco výběr schémat, tabulek a sloupců ze zdrojové databáze a transformační pravidla se použijí před migrací schémat, tabulek a sloupců do cílové databáze.


Obrázek 19: Tabulková mapování

Schéma lze vybrat z Název schématu je nebo, pokud nejsou uvedeny žádné, vyberte Zadat schéma a v poli Název schématu je podobný zadejte schéma pole. Akce rozevírací seznam obsahuje dvě možnosti:Zahrnout a Vyloučit . Možnost Zahrnout zahrnuje výběry provedené pro schémata a tabulky a možnost Vyloučit schémata a tabulky vyloučí. Vyloučení se zpracují po zařazení. Nemusí být vybrána všechna schémata a nemusí být vybrány všechny tabulky ze schématu.

Přidáme následující pravidlo výběru:

  • Zahrnout všechna schémata a všechny tabulky ze zdrojové databáze

Pro pravidlo výběru vyberte Zadat schéma a zadejte Název schématu je jako % , který vybere všechna schémata ve zdrojové databázi, jak je znázorněno na obrázku 20. Zadejte Název tabulky je podobný jako % , který vybere všechny tabulky ve vybraných schématech. Vyberte Akce jako Zahrnout .


Obrázek 20: Konfigurace pravidla výběru

Klikněte na Přidat pravidlo výběru (viz obrázek 21).


Obrázek 21: Přidání pravidla výběru

Bude přidáno pravidlo výběru, jak je znázorněno na obrázku 22. Když je úloha vytvořena, role IAM dms-cloudwatch-logs-role je vytvořen, aby umožnil DMS přístup ke CloudWatch.


Obrázek 22: Přidáno pravidlo výběru

Dále přidejte transformační pravidlo. Chcete-li to provést, klikněte na přidat pravidlo transformace odkaz, jak je znázorněno na obrázku 23.


Obrázek 23: Přidat pravidlo transformace

Transformační pravidlo má nastavení pro Cíl . Pravidlo má tři možnosti, jak ukazuje obrázek 24.

  • Schéma
  • Tabulka
  • Sloupec

Kde určuje podmnožinu objektů vybraných podle pravidel výběru. Akce je k dispozici je transformace, která má být použita, a následující možnosti:

  • Přejmenovat na (dostupné pro objekty Schema a Table)
  • Odebrat sloupec (k dispozici pro sloupce)
  • Nastavte malá písmena (k dispozici pro schémata, tabulky a sloupce)
  • Nastavte velká písmena (k dispozici pro schémata, tabulky a sloupce)
  • Přidejte předponu (k dispozici pro schémata, tabulky a sloupce)
  • Odebrat předponu (k dispozici pro schémata, tabulky a sloupce)


Obrázek 24: Nastavení pravidel transformace

PostgreSQL používá malá písmena ve schématech, tabulkách a sloupcích. Přidáme tři transformační pravidla:

  • Nastavte všechna schémata malými písmeny
  • Nastavte všechny tabulky malými písmeny
  • Nastavte ve všech sloupcích malá písmena

Chcete-li přidat první z těchto pravidel transformace, vyberte Cíl jako Schéma jak je znázorněno na obrázku 25. Zadejte Název schématu je jako % . Vyberte Akce jako Nastavit malá písmena a klikněte na Přidat pravidlo transformace .


Obrázek 25: Přidání pravidla transformace

Přidá se transformační pravidlo (viz obrázek 26). Chcete-li přidat další transformační pravidlo, klikněte na přidat pravidlo transformace znovu odkaz.


Obrázek 26: Přidáno pravidlo transformace

Vyberte Cíl jako tabulku , jak je znázorněno na obrázku 27. Zadejte Název schématu je jako % . Vyberte Název tabulky je jako % . Vyberte Akce jako Nastavit malá písmena a klikněte na Přidat pravidlo transformace .


Obrázek 27: Přidání pravidla transformace pro přejmenování tabulky

Vyberte Cíl jako Sloupec , jak je znázorněno na obrázku 28. Zadejte Název schématu je jako % . Vyberte Název tabulky je jako % . Vyberte Název sloupce je jako % . Vyberte Akce jako Nastavit malá písmena a klikněte na Přidat pravidlo transformace .


Obrázek 28: Přidání transformačního pravidla, aby se název sloupce změnil na malá písmena

Tři pravidla výběru a přidané pravidlo transformace jsou zobrazeny na obrázku 29. Když je úloha spuštěna, pravidla výběru se použijí před pravidly transformace. Pro pokročilé nastavení klikněte na Advanced Settings , jak je znázorněno na obrázku 29.


Obrázek 29: Pravidla výběru a pravidla transformace

V Pokročilých nastaveních , vyberte Nastavení ovládací tabulky a zadejte Vytvořit řídicí tabulku v cíli pomocí schématu jako veřejné , jak je znázorněno na obrázku 30, a klikněte na Hotovo.


Obrázek 30: Nastavení schématu řídicí tabulky v Target

Přidá se nastavení Advanced (viz Obrázek 31).


Obrázek 31: Pokročilé nastavení

Po konfiguraci úlohy klikněte na Vytvořit úlohu , jak je znázorněno na obrázku 32, k vytvoření úlohy.


Obrázek 32: Vytvořit úkol

Úloha migrace se vytvoří, jak ukazuje Obrázek 33. Na začátku je stav úlohy „Vytváří se“.


Obrázek 33: Úloha migrace

Úloha může mít jeden ze stavů popsaných v tabulce 1.

Stav Popis
Vytváření Úloha se vytváří.
Připraveno Úloha je připravena ke spuštění a spuštění. Obvykle následuje stav „Vytváří se“.
Spuštění Úloha se spouští a během této doby se úloha připojí k instanci replikace a koncovým bodům databáze. Budou použita pravidla výběru a transformace.
Běh Úloha je spuštěna, což znamená, že úloha migruje databázi.
Načítání dokončeno Úloha dokončila načítání (migraci) databáze.
Nezdařilo se Úloha se nezdařila.
Chyba Během migrace došlo k chybě. Některá ze schémat a tabulek mohla být migrována úspěšně, ale minimálně jedno schéma nebo tabulka se migrace nezdařila.
Úpravy Úkol se upravuje, obvykle poté, co uživatel úkol upravil.
Zastavení Úloha se zastavuje, což je obvykle poté, co uživatel zvolil zastavení úlohy.
Zastaveno Úloha je zastavena, což může být způsobeno tím, že uživatel zastavil úlohu, nebo protože je použit typ Migrace Migrace existujících dat a replikace probíhajících změn a úloha dokončila počáteční načtení .
Mazání Úkol se odstraňuje, což je způsobeno tím, že uživatel úkol smazal.

Tabulka 1: Stavy úloh

Budou vytvořeny dvě role IAM, jedna pro CloudWatch a druhá pro VPC, jak ukazuje obrázek 34.


Obrázek 34: Role IAM pro DMS

Závěr

V tomto třetím kurzu o migraci instance databáze MySQL na RDS do instance databáze Postgres na RDS jsme vytvořili migraci DMS včetně instance replikace, koncových bodů migrace a úlohy migrace. Ve čtvrtém tutoriálu probereme spuštění migrace DMS za účelem provedení migrace a vyhodnocení výsledků.


  1. Jak používat Coalesce v MySQL

  2. PHP kód pro převod dotazu MySQL na CSV

  3. Jak modelovat pro snadnou údržbu databáze

  4. Postgres analogie k CROSS APPLY na SQL Server