Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

Od roku 1999 naše banka využívá pro obsluhu back office integrovaný bankovní systém BISKVIT na platformě Progress OpenEdge, který je široce používán po celém světě, včetně finančního sektoru. Výkon tohoto DBMS umožňuje číst až milion nebo více záznamů za sekundu v jedné databázi (DB). Náš Progress OpenEdge obsluhuje zhruba 1,5 milionu jednotlivých vkladů a zhruba 22,2 milionu smluv na aktivní produkty (úvěry na auta a hypotéky) a je také zodpovědný za všechna vypořádání s regulátorem (Centrální banka) a SWIFT.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

Při použití Progress OpenEdge jsme čelili potřebě zajistit, aby fungoval s Oracle DBMS. Zpočátku byl tento balíček úzkým hrdlem naší infrastruktury – dokud jsme nenainstalovali a nenakonfigurovali Pro2 CDC – produkt Progress, který vám umožňuje odesílat data z Progress DBMS do Oracle DBMS přímo online. V tomto příspěvku vám podrobně se všemi úskalími prozradíme, jak se efektivně spřátelit mezi OpenEdge a Oracle.

Jak se to stalo: nahrání dat na QCD prostřednictvím sdílení souborů

Nejprve několik faktů o naší infrastruktuře. Počet aktivních uživatelů databáze je přibližně 15 tisíc. Objem všech produktivních databází včetně replik a pohotovostních je 600 TB, největší databáze je 16,5 TB. Databáze jsou přitom neustále doplňovány: jen za poslední rok přibylo asi 120 TB produktivních dat. Systém je poháněn 150 předními servery na platformě x86. Databáze jsou hostovány na 21 serverech platformy IBM.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS
Front-end systémy, různé základní bankovní systémy a bankovní služby jsou integrovány s OpenEdge Progress (BISCUIT IBS) prostřednictvím sběrnice Sonic ESB. Nahrávání dat do QCD probíhá výměnou souborů. Do určitého okamžiku mělo toto řešení dva velké problémy najednou – nízký výkon nahrávání informací do podnikového datového skladu (CDW) a dlouhou dobu provádění rekonciliace (odsouhlasení) dat s jinými systémy.
Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS
Proto jsme začali hledat nástroj, který by mohl tyto procesy urychlit. Řešením obou problémů byl nový produkt Progress OpenEdge – Pro2 CDC (Change Data Capture). Takže, začněme.

Nainstalujte Progress OpenEdge a Pro2Oracle

Pro spuštění Pro2 Oracle na administrátorově počítači s Windows stačí nainstalovat Progress OpenEdge Developer Kit Classroom Edition, která může být ke stažení zdarma. Výchozí instalační adresáře OpenEdge:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL procesy vyžadují licence Progress OpenEdge verze 11.7+ – konkrétně OE DataServer for Oracle a 4GL Development System. Tyto licence jsou součástí Pro2. Pro plný provoz DataServeru pro Oracle se vzdálenou databází Oracle je nainstalován Full Oracle Client.

Na server Oracle je potřeba nainstalovat Oracle Database 12+, vytvořit prázdnou databázi a přidat uživatele (říkejme mu cdc).

Chcete-li nainstalovat Pro2Oracle, stáhněte si nejnovější distribuci z centra stahování Software Progress. Rozbalte archiv do adresáře C:Pro2 (Pro konfiguraci Pro2 na Unixu se používá stejná distribuce a platí stejné principy konfigurace).

Vytvoření replikační databáze cdc

Replikační databáze cdc (repl) Pro2 se používá k ukládání konfiguračních informací, včetně mapy replikace, názvů replikovaných databází a jejich tabulek. Obsahuje také replikační frontu sestávající z poznámek o tom, že se ve zdrojové databázi změnil řádek tabulky. Data z replikační fronty využívají procesy ETL k identifikaci řádků, které je třeba zkopírovat do Oracle ze zdrojové databáze.

Vytváříme samostatnou cdc databázi.

Postup pro vytvoření databáze

  1. Na databázovém serveru vytvoříme adresář pro databázi cdc - například na serveru /database/cdc/.
  2. Vytvořte figurínu pro databázi cdc: kopie $DLC/prázdné cdc
  3. Povolit podporu pro velké soubory: proutil cdc -C EnableLargeFiles
  4. Připravíme skript pro spuštění databáze cdc. Počáteční parametry musí být podobné počátečním parametrům replikované databáze.
  5. Spustíme databázi cdc.
  6. Připojte se k databázi cdc a načtěte schéma Pro2 ze souboru cdc.df, který je součástí Pro2.
  7. V databázi cdc vytváříme následující uživatele:

pro2adm – pro připojení z administrativního panelu Pro2;
pro2etl – pro připojení ETL procesů (ReplBatch);
pro2cdc – pro připojení procesů CDC (CDCBatch);

Aktivace OpenEdge Change Data Capture

Nyní zapněme samotný mechanismus CDC, s jehož pomocí budou data replikována do další technologické oblasti. Ke každé zdrojové databázi Progress OpenEdge musíte přidat samostatné oblasti úložiště, do kterých budou zdrojová data duplikována, a aktivovat samotný mechanismus pomocí příkazu proutil.

Příklad postupu pro databázi bisquit

  1. Kopírování z katalogu C: Pro2db файл cdcadd.st do adresáře zdrojové databáze bisquit.
  2. Popisujeme v cdcadd.st pevné rozsahy velikosti pro regiony "ReplCDCArea" и "ReplCDCArea_IDX". Nové úložné oblasti můžete přidat online: prostrct addonline bisquit cdcadd.st
  3. Aktivace OpenEdge CDC:
    proutil bisquit -C enablecdc oblast "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. Aby bylo možné identifikovat běžící procesy, musí být ve zdrojové databázi vytvořeni následující uživatelé:
    A. pro2adm – pro připojení z administrativního panelu Pro2.
    b. pro2etl – pro připojení ETL procesů (ReplBatch).
    C. pro2cdc – pro připojení procesů CDC (CDCBatch).

Vytvoření držitele schématu pro DataServer pro Oracle

Dále musíme na serveru vytvořit databázi Schema Holder, kde budou data z Progress DBMS replikována do Oracle DBMS. DataServer Schema Holder je prázdná databáze Progress OpenEdge bez dat uživatelů nebo aplikací, která obsahuje mapu korespondence mezi zdrojovými tabulkami a externími tabulkami Oracle.

Databáze Schema Holder pro Progress OpenEdge DataServer for Oracle for Pro2 musí být umístěna na procesním serveru ETL, vytváří se samostatně pro každou pobočku.

Jak vytvořit držák schématu

  1. Rozbalte distribuci Pro2 do adresáře /pro2
  2. Vytvořte a přejděte do adresáře /pro2/dbsh
  3. Vytvořte databázi Schema Holder pomocí příkazu zkopírujte $DLC/empty bisquitsh
  4. Provádění konverze bisquitsh do požadovaného kódování - například v UTF-8, pokud databáze Oracle mají kódování UTF-8: proutil bisquitsh -C convchar převést UTF-8
  5. Po vytvoření prázdné databáze bisquitsh připojte se k němu v režimu jednoho uživatele: pro bisquitsh
  6. Pojďme do datového slovníku: Nástroje -> Data Dictionary -> DataServer -> ORACLE Utilities -> Create DataServer Schema
  7. Spusťte Schema Holder
  8. Nastavení brokera Oracle DataServer:
    A. Spusťte AdminServer.
    proadsv -start
    b. Spuštění zprostředkovatele Oracle DataServer
    oraman -jméno orabroker1 -start

Nastavení administrativního panelu a schématu replikace

Pomocí administrativního panelu Pro2 se konfigurují parametry Pro2, včetně nastavení schématu replikace a generování ETL procesů (Knihovna procesorů), primárních synchronizačních programů (Bulk-Copy Processor), spouštěčů replikace a zásad OpenEdge CDC. Existují také primární nástroje pro monitorování a řízení procesů ETL a CDC. Nejprve nastavíme soubory parametrů.

Jak nakonfigurovat soubory parametrů

  1. Přejděte do katalogu C:Pro2bpreplScripts
  2. Otevřete soubor pro úpravy replProc.pf
  3. Přidejte parametry připojení do replikační databáze cdc:
    # Replikační databáze
    -db cdc -ld repl -H <název hostitele hlavní databáze> -S <port zprostředkovatele databáze cdc>
    -U pro2admin -P <heslo>
  4. Přidat do replProc.pf parametry připojení ke zdrojovým databázím a Schema Holder ve formě souborů parametrů. Název souboru parametrů se musí shodovat s názvem připojované zdrojové databáze.
    # Připojte se ke všem replikovaným zdrojům BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Přidat do replProc.pf parametry pro připojení k Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <název hostitele procesu ETL>
    -S <port zprostředkovatele biskuitsh>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <název hostitele zprostředkovatele Oracle>
    -DataService orabroker1
  6. Uložte soubor parametrů replProc.pf
  7. Dále je třeba vytvořit a otevřít pro úpravy soubory parametrů pro každou připojenou zdrojovou databázi v adresáři C:Pro2bpreplScripts: bisquit.pf. Každý soubor pf obsahuje parametry pro připojení k odpovídající databázi, například:
    -db bisquit -ld bisquit -H <název hostitele> -S <port zprostředkovatele>
    -U pro2admin -P <heslo>

Chcete-li nakonfigurovat zástupce systému Windows, musíte přejít do adresáře C:Pro2bpreplScripts a upravte zástupce „Pro2 – Správa“. Chcete-li to provést, otevřete vlastnosti zástupce a v řádku Začít v označte instalační adresář Pro2. Podobnou operaci je třeba provést pro zkratky „Pro2 – Editor“ a „RunBulkLoader“.

Nastavení správy Pro2: Načtení počáteční konfigurace

Spustíme konzoli.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

Přejděte na „Mapa databáze“.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

Pro propojení databází v Pro2 – Administrace přejděte na záložku Mapa DB. Přidat mapování zdrojových databází - Držitel schématu - Oracle.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

Přejděte na kartu Mapování... V seznamu Zdrojová databáze Ve výchozím nastavení je vybrána první připojená zdrojová databáze. Napravo od seznamu by měl být nápis Všechny databáze připojeny — vybrané databáze jsou připojeny. Níže vlevo byste měli vidět seznam Progress tabulek od bisquitu. Vpravo je seznam tabulek z databáze Oracle.

Vytváření SQL schémat a databází v Oracle

Chcete-li vytvořit mapu replikace, musíte ji nejprve vygenerovat SQL schéma v Oracle. V Pro2 Administration spustíme položku menu Nástroje -> Generovat kód -> Cílové schémaa poté v dialogovém okně Vyberte databázi vyberte jednu nebo více zdrojových databází a přesuňte je doprava.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

Klikněte na OK a vyberte adresář pro uložení schémat SQL.

Dále vytvoříme základnu. To lze provést např. přes Vývojář Oracle SQL. K tomu se připojíme k databázi Oracle a načteme schéma pro přidávání tabulek. Po změně složení tabulek Oracle je třeba aktualizovat schémata SQL v Držiteli schémat.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

Po úspěšném dokončení stahování ukončete databázi bisquitsh a otevřete administrativní panel Pro2. Tabulky z databáze Oracle by se měly objevit na kartě Mapování vpravo.

Tabulkové mapování

Chcete-li vytvořit mapu replikace, přejděte v administrativním panelu Pro2 na kartu Mapování a vyberte zdrojovou databázi. Klikněte na Map Tables, vyberte Select Changes nalevo od tabulek, které by měly být replikovány v Oracle, přesuňte je doprava a potvrďte výběr. Pro vybrané stoly se automaticky vytvoří mapa. Opakujeme operaci, abychom vytvořili mapu replikace pro další zdrojové databáze.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

Generování knihovny replikačního procesoru Pro2 a programů procesoru pro hromadné kopírování

Knihovna Replication Processor Library je navržena pro vlastní replikační procesy (ETL), které zpracovávají replikační frontu Pro2 a přenášejí změny do databáze Oracle. Programy knihoven replikačních procesorů se po vygenerování automaticky ukládají do adresáře bprepl/repl_proc (parametr PROC_DIRECTORY). Chcete-li vygenerovat knihovnu replikačního procesoru, přejděte na Nástroje -> Generovat kód -> Knihovna procesoru. Po dokončení generování se programy objeví v adresáři bprepl/repl_proc.

Programy Bulk Load Processor se používají k synchronizaci zdrojových databází Progress s cílovou databází Oracle na základě programovacího jazyka Progress ABL (4GL). Chcete-li je vygenerovat, přejděte na položku nabídky Nástroje -> Generovat kód -> Procesor hromadného kopírování. V dialogovém okně Vybrat databázi vyberte zdrojové databáze, přesuňte je na pravou stranu okna a klikněte OK. Po dokončení generování se programy objeví v adresáři bpreplrepl_mproc.

Nastavení replikačních procesů v Pro2

Rozdělení tabulek do sad obsluhovaných samostatným replikačním vláknem zlepšuje výkon a efektivitu Pro2 Oracle. Ve výchozím nastavení jsou všechna připojení vytvořená v mapě replikace pro nové replikační tabulky přidružena k vláknu číslo 1. Doporučuje se rozdělit tabulky do různých vláken.

Informace o stavu vláken replikace se zobrazují na obrazovce Správa Pro2 na kartě Monitor v části Stav replikace. Podrobný popis hodnot parametrů naleznete v dokumentaci Pro2 (adresář C:Pro2Docs).

Vytvořte a aktivujte zásady CDC

Zásady jsou sada pravidel pro engine OpenEdge CDC ke sledování změn v tabulkách. V době psaní tohoto článku Pro2 podporuje pouze zásady CDC s úrovní 0, to znamená, že je sledována pouze skutečnost zaznamenat změny.

Chcete-li vytvořit zásadu CDC, přejděte na administrativním panelu na kartu Mapování, vyberte zdrojovou databázi a klikněte na tlačítko Přidat/odebrat zásady. V okně Vybrat změny, které se otevře, vyberte na levé straně tabulky, pro které potřebujete vytvořit nebo odstranit zásady CDC, a přesuňte je doprava.

Pro aktivaci znovu otevřete záložku Mapování, vyberte zdrojovou databázi a klikněte na tlačítko (Ne)Aktivovat zásady. Vyberte a přesuňte na pravou stranu tabulky zásady, které je třeba aktivovat, klikněte na OK. Poté jsou označeny zeleně. Používáním (Ne)Aktivovat zásady Zásady CDC můžete také deaktivovat. Všechny transakce jsou prováděny online.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

Po aktivaci zásady CDC se poznámky o upravených záznamech uloží do oblasti úložiště "ReplCDCArea" podle zdrojové databáze. Tyto poznámky budou zpracovány speciálním procesem CDCBatch, který na jejich základě vytvoří poznámky v replikační frontě Pro2 v databázi cdc (repl).

Máme tedy dvě fronty pro replikaci. První fází je CDCBatch: ze zdrojové databáze jdou data nejprve do zprostředkující databáze CDC. Druhou fází je přenos dat z databáze CDC do Oracle. To je vlastnost současné architektury a samotného produktu – zatím se vývojářům nepodařilo zavést přímou replikaci.

Primární synchronizace

Po povolení mechanismu CDC a nastavení replikačního serveru Pro2 musíme zahájit počáteční synchronizaci. Počáteční příkaz synchronizace:

/pro2/bprepl/Script/replLoad.sh název-tabulky bisquit

Po dokončení počáteční synchronizace lze spustit procesy replikace.

Spuštění replikačních procesů

Chcete-li spustit replikační procesy, musíte spustit skript replbatch.sh. Před spuštěním se ujistěte, že existují skripty replbatch pro všechna vlákna - replbatch1, replbatch2 atd. Pokud je vše na svém místě, otevřete příkazový řádek (např. proenv), přejděte do adresáře /bprepl/scripts a spusťte skript. V administrativním panelu zkontrolujeme, zda odpovídající proces získal stav RUNNING.

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS

výsledky

Jak se spřátelit mezi bankovním systémem Progress OpenEdge a Oracle DBMS
Po implementaci jsme velmi zrychlili nahrávání informací do firemního datového skladu. Data se automaticky dostanou do Oracle online. Není třeba ztrácet čas prováděním nějakých dlouhotrvajících dotazů pro sběr dat z různých systémů. Navíc v tomto řešení může proces replikace komprimovat data, což má také pozitivní vliv na rychlost. Nyní začalo denní sladění systému BISKVIT s jinými systémy trvat 15-20 minut místo 2-2,5 hodiny a úplné sladění trvalo několik hodin místo dvou dnů.

Zdroj: www.habr.com

Přidat komentář