Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Sûnt 1999 hat ús bank it yntegreare banksysteem BISKVIT brûkt om it efterkantoar te betsjinjen op it Progress OpenEdge-platfoarm, dat oer de hiele wrâld in soad brûkt wurdt, ynklusyf yn 'e finansjele sektor. De prestaasjes fan dizze DBMS kinne jo lêze oant in miljoen of mear records per sekonde yn ien database (DB). Us Progress OpenEdge tsjinnet sawat 1,5 miljoen yndividuele ôfsettings en sawat 22,2 miljoen kontrakten foar aktive produkten (autolieningen en hypoteken), en is ek ferantwurdlik foar alle delsettings mei de tafersjochhâlder (Sintrale Bank) en SWIFT.

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Mei it brûken fan Progress OpenEdge waarden wy konfrontearre mei de needsaak om it te wurkjen mei de Oracle DBMS. Yn it earstoan wie dizze bondel de knelpunt fan ús ynfrastruktuer - oant wy Pro2 CDC ynstalleare en konfigureare - in Progress-produkt wêrmei jo gegevens fan 'e Progress DBMS direkt, online, nei de Oracle DBMS kinne stjoere. Yn dit berjocht sille wy jo yn detail fertelle, mei alle falkûlen, hoe't jo effektyf freonen kinne meitsje tusken OpenEdge en Oracle.

Hoe't it barde: gegevens opladen nei QCD fia triem te dielen

Earst wat feiten oer ús ynfrastruktuer. It oantal aktive brûkers fan de databank is likernôch 15 tûzen. It folume fan alle produktive databases, ynklusyf replika en standby, is 600 TB, de grutste databank is 16,5 TB. Tagelyk wurde de databanken konstant oanfolle: allinich yn it lêste jier is sa'n 120 TB oan produktive gegevens tafoege. It systeem wurdt oandreaun troch 150 front tsjinners op de x86 platfoarm. De databases wurde host op 21 IBM-platfoarmservers.

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS
Front-end systemen, ferskate kearnbanksystemen en banktsjinsten wurde yntegrearre mei OpenEdge Progress (BISCUIT IBS) fia de Sonic ESB-bus. It opladen fan gegevens nei QCD bart troch triem útwikseling. Oant in bepaald punt yn 'e tiid hie dizze oplossing twa grutte problemen tagelyk - lege prestaasjes fan it uploaden fan ynformaasje yn in bedriuwsdatapakhús (CDW) en in lange tiid foar it útfieren fan gegevensfermoedsoening (fermoedsoening) mei oare systemen.
Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS
Dêrom begûnen wy te sykjen nei in ark dat dizze prosessen koe fersnelle. De oplossing foar beide problemen wie it nije Progress OpenEdge-produkt - Pro2 CDC (Change Data Capture). Dus, litte wy begjinne.

Ynstallearje Progress OpenEdge en Pro2Oracle

Om Pro2 Oracle út te fieren op de Windows-komputer fan de behearder, is it genôch om de Progress OpenEdge Developer Kit Classroom Edition te ynstallearjen, dy't kin wurde скачать fergees. Standert OpenEdge ynstallaasje mappen:

DLC: C: ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL-prosessen fereaskje Progress OpenEdge-lisinsjes ferzje 11.7+ - nammentlik OE DataServer foar Oracle en 4GL Development System. Dizze lisinsjes binne opnommen mei de Pro2. Foar folsleine wurking fan DataServer foar Oracle mei in Oracle-database op ôfstân, wurdt Full Oracle Client ynstalleare.

Op de Oracle-tsjinner moatte jo Oracle Database 12+ ynstallearje, in lege database oanmeitsje en in brûker taheakje (litte wy him neame cdc).

Om Pro2Oracle te ynstallearjen, download de lêste distribúsje fan it ynlaadsintrum Progress Software. Pake it argyf út yn in map C: Pro2 (Om Pro2 op Unix te konfigurearjen, wurdt deselde distribúsje brûkt en deselde konfiguraasjeprinsipes jilde).

It meitsjen fan in cdc-replikaasjedatabase

Replikaasje databank cdc (repl) Pro2 wurdt brûkt om konfiguraasjeynformaasje op te slaan, ynklusyf de replikaasjekaart, nammen fan replikearre databases en har tabellen. It befettet ek in replikaasjewachtrige, besteande út notysjes oer it feit dat in tabelrige yn 'e boarnedatabase feroare is. Gegevens fan 'e replikaasjewachtrige wurde brûkt troch ETL-prosessen om rigen te identifisearjen dy't moatte wurde kopieare nei Oracle fan' e boarnedatabase.

Wy meitsje in aparte cdc-database.

Proseduere foar it meitsjen fan in databank

  1. Op de databanktsjinner meitsje wy in map foar de cdc-database - bygelyks op de server /database/cdc/.
  2. Meitsje in dummy foar de cdc-database: procopy $DLC/lege cdc
  3. Stipe ynskeakelje foar grutte bestannen: proutil cdc -C EnableLargeFiles
  4. Wy meitsje in skript foar it starten fan de cdc-database. De startparameters moatte fergelykber wêze mei de startparameters fan de replikearre databank.
  5. Wy begjinne de cdc-database.
  6. Ferbine mei de cdc-database en lade it Pro2-skema út it bestân cdc.df, dy't opnommen is mei de Pro2.
  7. Wy meitsje de folgjende brûkers yn 'e cdc-database:

pro2adm - foar ferbining fanút it Pro2 bestjoerlike paniel;
pro2etl - foar it ferbinen fan ETL-prosessen (ReplBatch);
pro2cdc - foar it ferbinen fan CDC-prosessen (CDCBatch);

Aktivearje OpenEdge Change Data Capture

Litte wy no it CDC-meganisme sels ynskeakelje, mei help fan hokker gegevens wurde replikearre nei in ekstra technologygebiet. Oan elke Progress OpenEdge-boarnedatabase moatte jo aparte opslachgebieten tafoegje wêryn de boarnegegevens duplikearre wurde, en it meganisme sels aktivearje mei it kommando proutil.

Foarbyld proseduere foar de bisquit databank

  1. Kopiearje út de katalogus C: Pro2db file cdcadd.st nei de bisquit source database map.
  2. Wy beskriuwe yn cdcadd.st fêste grutte omfang foar regio's "ReplCDCArea" и "ReplCDCArea_IDX". Jo kinne nije opslachgebieten online tafoegje: prostrct addonline bisquit cdcadd.st
  3. Aktivearje OpenEdge CDC:
    proutil bisquit -C enablecdc gebiet "ReplCDCArea" yndeksgebiet "ReplCDCArea_IDX"
  4. De folgjende brûkers moatte wurde makke yn 'e boarne databank om rinnende prosessen te identifisearjen:
    in. pro2adm - foar ferbining fanút it Pro2 bestjoerlike paniel.
    b. pro2etl - foar it ferbinen fan ETL-prosessen (ReplBatch).
    c. pro2cdc - foar it ferbinen fan CDC-prosessen (CDCBatch).

It meitsjen fan in skemahâlder foar DataServer foar Oracle

Dêrnei moatte wy in Schema Holder-database oanmeitsje op 'e tsjinner wêr't gegevens fan' e Progress DBMS wurde replikearre nei de Oracle DBMS. DataServer Schema Holder is in lege Progress OpenEdge-database sûnder brûkers of applikaasjegegevens, mei in kaart fan korrespondinsje tusken boarnetabellen en eksterne Oracle-tabellen.

De Schema Holder-database foar Progress OpenEdge DataServer foar Oracle foar Pro2 moat lizze op 'e ETL-prosesserver; it wurdt apart makke foar elke branch.

Hoe meitsje in Schema Holder

  1. Utpakke de Pro2-distribúsje yn in map /pro2
  2. Meitsje en gean nei de map /pro2/dbsh
  3. Meitsje in Schema Holder-database mei it kommando kopiearje $ DLC / lege bisquitsh
  4. It útfieren fan de konverzje bisquitsh yn 'e fereaske kodearring - bygelyks yn UTF-8 as Oracle-databases UTF-8-kodearring hawwe: proutil bisquitsh -C convchar konvertearje UTF-8
  5. Nei it meitsjen fan in lege databank bisquitsh ferbine mei it yn ien-brûkersmodus: pro bisquitsh
  6. Litte wy nei Data Dictionary gean: Ark -> Data Dictionary -> DataServer -> ORACLE Utilities -> Create DataServer Schema
  7. Launch Schema Holder
  8. De Oracle DataServer-broker ynstelle:
    in. Start AdminServer.
    proadsv -start
    b. Begjin fan de Oracle DataServer broker
    oraman -namme orabroker1 -start

It ynstellen fan it bestjoerlike paniel en replikaasjeskema

Mei it brûken fan it Pro2-bestjoerspaniel wurde Pro2-parameters konfigureare, ynklusyf it ynstellen fan it replikaasjeskema en it generearjen fan ETL-prosessen (Processor Library), primêre syngronisaasjeprogramma's (Bulk-Copy Processor), replikaasje-triggers en OpenEdge CDC-belied. D'r binne ek primêre ark foar it kontrolearjen en behearen fan ETL- en CDC-prosessen. Alderearst sette wy de parameterbestannen yn.

Hoe kinne jo parameterbestannen konfigurearje

  1. Gean nei de katalogus C:Pro2bpreplScripts
  2. Iepenje de triem foar bewurkjen replProc.pf
  3. Foegje ferbiningsparameters ta oan de cdc-replikaasjedatabase:
    # Replikaasjedatabase
    -db cdc -ld repl -H <haaddatabase hostnamme> -S <database broker poarte cdc>
    -U pro2admin -P <wachtwurd>
  4. Taheakje replProc.pf ferbining parameters oan boarne databases en Schema Holder yn 'e foarm fan parameter triemmen. De namme fan it parameterbestân moat oerienkomme mei de namme fan de boarnedatabase dy't ferbûn is.
    # Ferbine mei alle replike boarnen BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Taheakje replProc.pf parameters foar ferbining mei Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <ETL proses host namme>
    -S <biskuitsh broker port>
    -db bisquitsql
    -ld bisquitsql
    -dt ORAKEL
    -S 5162 -H <Oracle broker hostnamme>
    -DataService orabroker1
  6. Bewarje de parameterbestân replProc.pf
  7. Dêrnei moatte jo oanmeitsje en iepenje foar it bewurkjen fan parameterbestannen foar elke ferbûne boarnedatabase yn 'e map C:Pro2bpreplScripts: bisquit.pf. Elk pf-bestân befettet parameters foar ferbining mei de oerienkommende databank, bygelyks:
    -db bisquit -ld bisquit -H <hostname> -S <broker port>
    -U pro2admin -P <wachtwurd>

Om Windows fluchtoetsen te konfigurearjen, moatte jo nei de map gean C:Pro2bpreplScripts en bewurkje de fluchtoets "Pro2 - Administration". Om dit te dwaan, iepenje de eigenskippen fan 'e fluchtoets en yn' e line Begjin yn jouwe de Pro2-ynstallaasjemap oan. In ferlykbere operaasje moat dien wurde foar de fluchtoetsen "Pro2 - Editor" en "RunBulkLoader".

Pro2 Administration Setup: Laden Inisjele konfiguraasje

Litte wy de konsole starte.

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Gean nei "DB Map".

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Om databases te keppeljen yn Pro2 - Administration, gean nei it ljepblêd DB Map. Mapping tafoegje fan boarnedatabases - Skema Holder - Oracle.

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Gean nei tab mapping... Yn de list Boarne Databank Standert wurdt de earste ferbûne boarnedatabank selektearre. Oan de rjochterkant fan de list moat der in ynskripsje Alle databases ferbûn - de selektearre databases binne ferbûn. Ûnder oan de linkerkant jo moatte sjen in list fan Progress tabellen út bisquit. Oan 'e rjochterkant is in list mei tabellen út' e Oracle-database.

SQL-skema's en databases oanmeitsje yn Oracle

Om in replikaasjekaart te meitsjen, moatte jo earst generearje SQL skema yn Oracle. Yn Pro2 Administration útfiere wy it menu item Ark -> Koade generearje -> Doelskema, dan yn it dialoochfinster Selektearje databank selektearje ien of mear boarne databases en ferpleatse se nei rjochts.

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Klikje OK en selektearje de map om de SQL-skema's op te slaan.

Folgjende meitsje wy de basis. Dat kin bygelyks fia Oracle SQL Untwikkelder. Om dit te dwaan, ferbine wy ​​mei de Oracle-database en laden it skema foar it tafoegjen fan tabellen. Nei it feroarjen fan de gearstalling fan Oracle-tabellen, moatte jo de SQL-skema's yn 'e Schema Holder bywurkje.

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Nei't de ynlaad mei súkses foltôge is, ferlitte de bisquitsh-database en iepenje it Pro2-bestjoerspaniel. Tabellen út 'e Oracle-database moatte ferskine op' e ljepper Mapping oan 'e rjochterkant.

Tabel mapping

Om in replikaasjekaart te meitsjen, gean yn it Pro2-bestjoerspaniel nei it ljepblêd Mapping en selektearje de boarnedatabase. Klikje op Map Tables, selektearje Selektearje feroarings oan 'e lofterkant fan' e tabellen dy't moatte wurde replikearre yn Oracle, ferpleatse se nei rjochts en befêstigje de seleksje. In kaart wurdt automatysk oanmakke foar de selektearre tabellen. Wy werhelje de operaasje om in replikaasjekaart te meitsjen foar oare boarnedatabases.

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Pro2-replikaasjeprosessorbibleteek en programma's foar bulkkopy-prosessor generearje

De replikaasjeprosessorbibleteek is ûntworpen foar oanpaste replikaasjeprosessen (ETL's) dy't de Pro2-replikaasjewachtrige ferwurkje en wizigingen yn 'e Oracle-database drukke. Replikaasjeprosessorbibleteekprogramma's wurde nei generaasje automatysk bewarre yn 'e map bprepl/repl_proc (PROC_DIRECTORY parameter). Om de replikaasjeprosessorbibleteek te generearjen, gean nei Ark -> Koade generearje -> Prozessorbibleteek. Nei it generearjen is foltôge, sille de programma's ferskine yn 'e map bprepl/repl_proc.

Bulk Load Processor-programma's wurde brûkt om boarne Progress-databases te syngronisearje mei de doel Oracle-database basearre op de programmeartaal Progress ABL (4GL). Om se te generearjen, gean nei it menu item Ark -> Koade generearje -> Bulk-kopiearprosessor. Selektearje yn it dialoochfinster Selektearje databank de boarnedatabases, ferpleatse se nei de rjochterkant fan it finster en klikje OK. Nei it generearjen is foltôge, sille de programma's ferskine yn 'e map bpreplrepl_mproc.

Replikaasjeprosessen ynstelle yn Pro2

It opsplitsen fan tabellen yn sets betsjinne troch in aparte replikaasjetried ferbetteret de prestaasjes en effisjinsje fan Pro2 Oracle. Standert wurde alle ferbiningen makke yn 'e replikaasjekaart foar nije replikaasjetabellen ferbûn mei thread nûmer 1. It is oan te rieden om tabellen te skieden yn ferskate triedden.

Ynformaasje oer de status fan replikaasje-threads wurdt werjûn op it Pro2 Administration-skerm yn it ljepblêd Monitor yn 'e seksje Replikaasjestatus. In detaillearre beskriuwing fan parameterwearden is te finen yn 'e Pro2-dokumintaasje (map C: Pro2Docs).

Meitsje en aktivearje CDC-belied

Policies binne in set regels foar de OpenEdge CDC-motor om feroarings oan tabellen te kontrolearjen. Op it stuit fan skriuwen stipet Pro2 allinich CDC-belied mei nivo 0, dat is, allinich feit wurdt kontrolearre record feroarings.

Om in CDC-belied te meitsjen, gean op it bestjoerlike paniel nei it ljepblêd Mapping, selektearje de boarnedatabase en klikje op de knop Belied taheakje / fuortsmite. Selektearje yn it finster Selektearje wizigingen dat iepenet, oan 'e lofterkant en ferpleatse nei rjochts de tabellen wêrfoar jo in CDC-belied moatte oanmeitsje of wiskje.

Om te aktivearjen, iepenje it ljepblêd Mapping opnij, selektearje de boarnedatabase en klikje op de knop (In) Belied aktivearje. Selektearje en ferpleatse nei de rjochterkant fan 'e tabel it belied dat moatte wurde aktivearre, klik OK. Dêrnei wurde se yn grien markearre. Troch te brûken (In) Belied aktivearje Jo kinne ek CDC-belied deaktivearje. Alle transaksjes wurde online útfierd.

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Neidat it CDC-belied is aktivearre, wurde notysjes oer wizige records opslein yn it opslachgebiet "ReplCDCArea" neffens de boarne databank. Dizze notysjes sille wurde ferwurke troch in spesjaal proses CDCBatch, dy't op basis fan harren notysjes sille meitsje yn 'e Pro2-replikaasjewachtrige yn' e databank cdc (repl).

Sa hawwe wy twa wachtrijen foar replikaasje. De earste etappe is CDCBatch: fan 'e boarnedatabase geane de gegevens earst nei de tuskenlizzende CDC-database. De twadde etappe is as gegevens wurde oerdroegen fan 'e CDC-database nei Oracle. Dit is in skaaimerk fan 'e hjoeddeistige arsjitektuer en it produkt sels - oant no ta hawwe de ûntwikkelders gjin direkte replikaasje fêststeld.

Primêre syngronisaasje

Nei it ynskeakeljen fan it CDC-meganisme en it ynstellen fan de Pro2-replikaasje-tsjinner, moatte wy de earste syngronisaasje begjinne. Inisjele syngronisaasjekommando:

/pro2/bprepl/Script/replLoad.sh bisquit tabelnamme

Nei't de earste syngronisaasje foltôge is, kinne replikaasjeprosessen wurde begon.

Begjin fan replikaasjeprosessen

Om replikaasjeprosessen te begjinnen moatte jo in skript útfiere replbatch.sh. Foardat jo begjinne, soargje derfoar dat der replbatch-skripts binne foar alle diskusjes - replbatch1, replbatch2, ensfh. As alles yn plak is, iepenje de kommandorigel (bygelyks, proenv), gean nei de map /bprepl/skripts en begjin it skript. Yn it bestjoerlike paniel kontrolearje wy dat it oerienkommende proses de RUNNING-status hat krigen.

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS

Resultaten

Hoe kinne jo freonen meitsje tusken it Progress OpenEdge banksysteem en it Oracle DBMS
Nei ymplemintaasje fersnelden wy de upload fan ynformaasje nei it bedriuwsdatapakhús sterk. De gegevens komme automatysk yn Oracle online. D'r is gjin ferlet om tiid te fergriemen mei it útfieren fan wat langrinnende fragen om gegevens fan ferskate systemen te sammeljen. Derneist kin it replikaasjeproses yn dizze oplossing gegevens komprimearje, wat ek in posityf effekt hat op snelheid. No begon de deistige fermoedsoening fan it BISKVIT-systeem mei oare systemen 15-20 minuten te nimmen ynstee fan 2-2,5 oeren, en in folsleine fermoedsoening naam ferskate oeren ynstee fan twa dagen.

Boarne: www.habr.com

Add a comment