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

Migrace databáze Oracle do MySQL na AWS, část 2

AWS Database Migration Service (DMS) je služba pro migraci databází na AWS, ve které by zdrojová databáze mohla být:

  • Databáze na AWS (EC2,RDS)
  • Místní databáze
  • Databáze na jiné cloudové platformě, jako je Oracle Cloud Platform

Cílová databáze může být:

  • Databáze na AWS (EC2, RDS, Redshift, DynamoDB)
  • Místní databáze
  • Databáze na jiné cloudové platformě, jako je Oracle Cloud Platform

Alespoň jedna ze dvou databází, zdrojová a cílová, musí být na AWS. Například DMS nelze použít k migraci místní databáze na platformu Google Cloud. Ve dvou článcích diskutujeme o migraci databáze Oracle na databázi MySQL pomocí služby Database Migration Service. V dřívějším článku „Migrace databáze Oracle do MySQL na AWS, část 1“ jsme diskutovali o nastavení zdrojových a cílových databází. V tomto pokračování článku provedeme migraci. Tento článek má následující sekce:

  • Vytvoření migrace
  • Spuštění migrace
  • Dotaz na schéma migrované databáze
  • Restartování migrace
  • Úprava migrace
  • Závěr

Vytvoření migrace

V této části vytvoříme migraci DMS pro migraci instance Oracle DB na RDS do instance MySQL DB na RDS. Přihlaste se jako uživatel IAM (dvohra nebo jiný) vytvořený dříve. Vyberte DMS služby v konzole AWS, jak je znázorněno na obrázku 1.


Obrázek 1: Služba DMS v konzole AWS

Klikněte na Vytvořit migraci , jak je znázorněno na obrázku 2.


Obrázek 2: Vytvořit migraci

Spustí se průvodce službou migrace databáze AWS, jak je znázorněno na obrázku 3. Na úvodní stránce klikněte na Další.


Obrázek 3: Průvodce službou migrace databáze AWS

Dále Vytvořit instanci replikace se zobrazí stránka, jak je znázorněno na obrázku 4.


Obrázek 4: Vytvořit instanci replikace

Zadejte název instance replikace nebo ponechte výchozí nastavení, jak je znázorněno na obrázku 5. Vyberte třídu instance nebo ponechte výchozí nastavení. Vyberte VPC protože není nakonfigurováno žádné výchozí VPC. Vyberte Multi-AZ jako Ne používat jednu zónu dostupnosti. Vyberte možnost Veřejně přístupné možnost.


Obrázek 5: Konfigurace instance replikace

V Pokročilé výchozí nastavení pro přidělené úložiště, skupinu replikovaných podsítí a zónu dostupnosti jsou znázorněna na obrázku 6.


Obrázek 6: Pokročilá nastavení

Jako šifrovací klíč vyberte hlavní klíč KMS (dms ) vytvořené dříve, jak je znázorněno na obrázku 7. Klepněte na tlačítko Další.


Obrázek 7: Výběr hlavního klíče KMS

Dále nakonfigurujte koncové body databáze pro připojení ke zdrojovým a cílovým koncovým bodům databáze, jak je znázorněno na obrázku 8. Koncové body databáze lze zadat při vytváření instance replikace. Zdrojové a cílové koncové body jsou nakonfigurovány v samostatných sloupcích označených Podrobnosti o připojení ke zdrojové databázi a Podrobnosti o připojení k cílové databázi.


Obrázek 8: Koncové body databáze

Vyberte Zdrojový modul z rozevíracího seznamu jako oracle , jak je znázorněno na obrázku 9.


Obrázek 9: Zdrojový engine

Vyberte Cílový vyhledávač z rozevíracího seznamu jako mysql , jak je znázorněno na obrázku 10.


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

Pro Název serveru s, určete koncové body pro instance DB, jak jsou uvedeny v konzole RDS odstraněním přípony :port. Název serveru pro Oracle DB je orcl.crbmlbxmp8qi.us-east-1.rds.amazonaws.com a název serveru pro databázi MySQL je mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com . Port je specifikován samostatně v Port pole a je 1521 pro databázi Oracle a 3306 pro databázi MySQL. Vyberte Režim SSL jako žádný pro zdrojovou i cílovou databázi. Zadejte uživatelské jméno a heslo jako hlavní uživatelské jméno a hlavní heslo nakonfigurované při vytváření instancí RDS. Podrobnosti o zdrojovém a cílovém připojení jsou zobrazeny na obrázku 11.


Obrázek 11: Podrobnosti zdroje a cílového připojení

Přejděte dolů a vyhledejte připojení Pokročilá nastavení. Pro databázi Oracle zadejte SID, jak je znázorněno na obrázku 12. Pro databázi MySQL nastavte Atributy připojení navíc na targetDbType=SPECIFIC_DATABASE . Hlavní klíč KMS musí být šifrovací klíč (dms) vytvořený jako uživatel IAM (dvohra) pro DMS.


Obrázek 12: Pokročilá nastavení připojení

Klikněte na Spustit test pro každou z databází otestovat připojení. Výsledkem by mělo být úspěšné otestování připojení, jak ukazuje obrázek 13.


Obrázek 13: Spustit test

Dále je třeba nakonfigurovat úlohu migrace, před kterou by měla být vytvořena instance replikace, jak ukazuje obrázek 14.


Obrázek 14: Vytvořena instance replikace

Po konfiguraci koncových bodů databáze klikněte na Další, jak je znázorněno na obrázku 15.


Obrázek 15: Koncové body databáze nakonfigurovány

V Úkolu musí být nakonfigurováno alespoň jedno pravidlo výběru, jinak se úkol nevytvoří, jak ukazuje chybová zpráva při Vytvořit úkol (viz obrázek 16).


Obrázek 16: Je vyžadováno alespoň jedno pravidlo výběru

Klikněte na přidat pravidlo výběru odkaz zobrazený na obrázku 16. V detailu pravidla výběru nakonfigurujte Kde pravidlo výběru. Vyberte Schéma jako DVOHRA (schéma by se pro různé uživatele lišilo) a zadejte Název tabulky je podobný jako % . V Akci , objekty lze zahrnout nebo vyloučit výběrem Zahrnout nebo Vyloučit . Vyloučení se zpracovávají po zařazení. Vyberte možnost Akce jako Zahrnout. Mohou být přidány zdrojové filtry pro omezení počtu a typu záznamů přenášených ze zdroje do cíle. Klikněte na Přidat pravidlo výběru , jak je znázorněno na obrázku 17. Následně klikněte na Vytvořit úlohu .


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

Bude přidán nový úkol, jak je znázorněno na obrázku 18. Zpočátku je stav úkolu „Vytváří se“.


Obrázek 18: Nový úkol

Po vytvoření úkolu se stav změní na Připraveno , jak je znázorněno na obrázku 19.


Obrázek 19: Stav úlohy jako připraven

Spuštění migrace

Chcete-li spustit migraci, klikněte na Spustit/Pokračovat , jak je znázorněno na obrázku 20.


Obrázek 20: Start/Resume

Stav by měl být Spouštění (viz obrázek 21).


Obrázek 21: Spouštění úlohy

Po spuštění se stav změní na Spuštěno . Po dokončení migrace se stav změní na Načítání dokončeno , jak je znázorněno na obrázku 22.


Obrázek 22: Načítání dokončeno

Tabulkové statistiky tab by měla obsahovat seznam migrovaných tabulek, jak je znázorněno na obrázku 23.


Obrázek 23: Statistika tabulky

Dotaz na schéma migrované databáze

V MySQL CLI zadejte seznam databází pomocí příkazu show databases, jak je znázorněno na obrázku 24. DVOHRA databáze (schéma) bude uvedena.


Obrázek 24: Výpis databází

Vyberte DVOHRA databáze s použitím DVOHRA příkaz. Vypište tabulky pomocí příkazu show tables, jak je znázorněno na obrázku 25. WEBLOGICLOG a WLSLOG tabulky, které byly dříve vytvořeny v databázi Oracle, byly migrovány a jsou uvedeny.


Obrázek 25: Výpisové tabulky

Stůl se také migruje. WEBLOGICLOG tabulka neobsahuje žádná data a žádná se nevracejí v dotazu SQL (viz obrázek 26).


Obrázek 26: SQL Query na WEBLOGLOG neuvádí žádná data

Migrovaná tabulka WLSLOG obsahuje data, jak ukazuje výsledek dotazu na obrázku 27.


Obrázek 27: Data v tabulce WLSLOG jsou migrována

Restartování migrace

Ve výchozím nastavení migrace neprovádí aktivní dotazování ve zdrojové databázi za účelem migrace změn, pokud existují. Pokud jsou ve zdrojové databázi provedeny nějaké úpravy, například jsou přidána data do tabulky nebo vytvořena nová tabulka, je nutné migraci spustit znovu. Jako příklad přidejte data do weblogiclog tabulky v databázi Oracle.

INSERT INTO weblogiclog(time_stamp,category,type,servername,
   code,msg) VALUES('Apr-8-2014-7:06:16-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000365','Server state
   changed to STANDBY');
INSERT INTO weblogiclog(time_stamp,category,type,servername,
   code,msg) VALUES('Apr-8-2014-7:06:17-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000365','Server state
   changed to STARTING');
INSERT INTO weblogiclog(time_stamp,category,type,servername,
   code,msg) VALUES('Apr-8-2014-7:06:18-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000365','Server state
   changed to ADMIN');
INSERT INTO weblogiclog(time_stamp,category,type,servername,
   code,msg) VALUES('Apr-8-2014-7:06:19-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000365','Server state
   changed to RESUMING');
INSERT INTO weblogiclog(time_stamp,category,type,servername,
   code,msg) VALUES('Apr-8-2014-7:06:20-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000361','Started WebLogic
   AdminServer');
INSERT INTO weblogiclog(time_stamp,category,type,servername,
   code,msg) VALUES('Apr-8-2014-7:06:21-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000365','Server state
   changed to RUNNING');
INSERT INTO weblogiclog(time_stamp,category,type,servername,
   code,msg) VALUES('Apr-8-2014-7:06:22-PM-PDT','Notice',
   'WebLogicServer','AdminServer','BEA-000360','Server started
   in RUNNING mode');

Chcete-li migrovat data přidaná do MySQL, klikněte na Start/Pokračovat , jak je znázorněno na obrázku 28.


Obrázek 28: Restartování migrace

V části Spustit úlohu V dialogovém okně jsou k dispozici dvě možnosti:Start a Restartovat , jak je znázorněno na obrázku 29. Tlačítko Start volba načte pouze nové tabulky (plné načtení) a tabulky, které byly neúplné (částečné načtení) při předchozím spuštění úlohy.


Obrázek 29: Spustit úlohu

Protože WEBLOGICLOG tabulka již byla migrována (úplné načtení je dokončeno) a je třeba migrovat nová data, Restartovat je třeba vybrat možnost, jak je znázorněno na obrázku 30.


Obrázek 30: Restartování migrace

Stav úlohy se opět změní na Spouštění následuje Spuštěno (viz obrázek 31).


Obrázek 31: Stav úlohy běží

Po dokončení úlohy se stav změní na Načítání dokončeno , jak je znázorněno na obrázku 32.


Obrázek 32: Načítání dokončeno

Dotaz na WEBLOGICLOG data v MySQL CLI a migrovaná data se zobrazí, jak je znázorněno na obrázku 33.


Obrázek 33: Data migrována při restartování úlohy

Úprava migrace

Úlohu migrace může být nutné upravit, například přidat/odebrat pravidlo výběru nebo upravit jedno z dalších nastavení úlohy. Úlohu lze upravit, když není spuštěna a stav je Načítání dokončeno. Klikněte na Upravit pro úpravu úlohy, jak je znázorněno na obrázku 34.


Obrázek 34: Upravit

Úloha Upravit spustí se dialog. I když jiný Typ migrace s jsou uvedeny, jak je znázorněno na obrázku 35, typ migrace nelze v tuto chvíli upravit. Výchozí nastavení je „Migrovat existující data.“


Obrázek 35: Upravit úkol

Nastavení úlohy znázorněné na obrázku 36 mohou být upraveny. Klikněte na Pokročilá nastavení pro úpravu pokročilých nastavení.


Obrázek 36: Nastavení úkolu

V Pokročilém nastavení Tabulka ovládání nastavení lze upravit, jak je znázorněno na obrázku 37.


Obrázek 37: Nastavení řídicí tabulky

Nastavení ladění lze upravit, jak je znázorněno na obrázku 38.


Obrázek 38: Nastavení ladění

Chcete-li přidat pravidlo transformace, klikněte na možnost přidat pravidlo transformace , jak je znázorněno na obrázku 39.


Obrázek 39: Přidat pravidlo transformace

V části Transformační pravidla , vyberte Cíl pro transformaci jako tabulku , jak je znázorněno na obrázku 40. Vyberte Název schématu je jako DVOHRA. Zadejte Název tabulky je podobný jako % . Vyberte Akce jako Přidat předponu , jako příklad.


Obrázek 40: Přidání pravidel transformace

Zadejte předponu tabulky, kterou chcete přidat do každé migrované tabulky (viz Obrázek 41). Klikněte na Přidat pravidlo transformace .


Obrázek 41: Přidat pravidlo transformace

Klikněte na Upravit , jak je znázorněno na obrázku 42.


Obrázek 42: Upravit

V části Spustit úlohu , vyberte možnost Restartovat a klikněte na Spustit úlohu , jak je znázorněno na obrázku 43.


Obrázek 43: Spustit úlohu

Stav úkolu se změní na Upravování , jak je znázorněno na obrázku 44.


Obrázek 44: Úprava

Stav úlohy lze obnovit pomocí tlačítka aktualizace. Stav se změní na Spuštěno , jak je znázorněno na obrázku 45.


Obrázek 45: Spuštění úlohy

Po dokončení úlohy se stav změní na Načítání dokončeno (viz obrázek 46).


Obrázek 46: Načítání dokončeno

Následně vypište tabulky v MySQL. Zobrazí se seznam nových tabulek s předponou, jak ukazuje Obrázek 47.


Obrázek 47: Tabulky s prefixem

Závěr

Ve dvou článcích jsme diskutovali o migraci databáze Oracle na RDS do databáze MySQL na RDS pomocí služby AWS Database Migration.


  1. Ekvivalent funkce SQLServeru SCOPE_IDENTITY() v mySQL?

  2. Jak funguje justify_hours() v PostgreSQL

  3. Vyberte sloupec, pokud má jiný sloupec hodnotu null

  4. Nelze se přihlásit do databáze jako SYS pomocí Oracle SQL Developer