Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Ekde 1999, por servi la malantaŭan oficejon, nia banko uzas la integran bankan sistemon BISKVIT sur la platformo Progress OpenEdge, kiu estas vaste uzata tra la mondo, inkluzive en la financa sektoro. La agado de ĉi tiu DBMS permesas vin legi ĝis miliono aŭ pli da rekordoj sekundo en unu datumbazo (DB). Nia Progress OpenEdge servas ĉirkaŭ 1,5 milionojn da individuaj deponejoj kaj ĉirkaŭ 22,2 milionojn da kontraktoj por aktivaj produktoj (aŭtopruntoj kaj hipotekoj), kaj ankaŭ respondecas pri ĉiuj kompromisoj kun la reguligisto (Centra Banko) kaj SWIFT.

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Uzante Progress OpenEdge, ni alfrontis la bezonon igi ĝin funkcii kun la Oracle DBMS. Komence, ĉi tiu pakaĵo estis la proplemkolo de nia infrastrukturo - ĝis ni instalis kaj agordis Pro2 CDC - Progress-produkton, kiu ebligas al vi sendi datumojn de la Progress DBMS al la Oracle DBMS rekte, interrete. En ĉi tiu afiŝo ni rakontos al vi detale, kun ĉiuj malfacilaĵoj, kiel efike amikiĝi inter OpenEdge kaj Oracle.

Kiel ĝi okazis: alŝuti datumojn al QCD per dosierdividado

Unue, kelkaj faktoj pri nia infrastrukturo. La nombro de aktivaj uzantoj de la datumbazo estas proksimume 15 mil. La volumeno de ĉiuj produktivaj datumbazoj, inkluzive de kopio kaj standby, estas 600 TB, la plej granda datumbazo estas 16,5 TB. Samtempe, la datumbazoj estas konstante replenigitaj: nur dum la lasta jaro, ĉirkaŭ 120 TB da produktivaj datumoj estis aldonitaj. La sistemo estas funkciigita de 150 antaŭaj serviloj sur la platformo x86. La datumbazoj estas gastigitaj sur 21 IBM-platformserviloj.

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS
Antaŭfinaj sistemoj, diversaj kernaj banksistemoj kaj bankservoj estas integritaj kun OpenEdge Progress (BISCUIT IBS) per la Sonic ESB-buso. Alŝuto de datumoj al QCD okazas per dosierŝanĝo. Ĝis certa tempo, ĉi tiu solvo havis du grandajn problemojn samtempe - malaltan rendimenton de alŝuto de informoj en kompania datuma stokejo (CDW) kaj longan tempon por plenumi datuman repaciĝon (repaciĝon) kun aliaj sistemoj.
Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS
Tial ni komencis serĉi ilon, kiu povus akceli ĉi tiujn procezojn. La solvo al ambaŭ problemoj estis la nova produkto Progress OpenEdge - Pro2 CDC (Ŝanĝi Datuman Kapton). Do, ni komencu.

Instalu Progress OpenEdge kaj Pro2Oracle

Por ruli Pro2 Oracle sur la Vindoza komputilo de la administranto, sufiĉas instali Progress OpenEdge Developer Kit Classroom Edition, kiu povas esti скачать senpage. Defaŭltaj instalaj dosierujoj de OpenEdge:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL-procezoj postulas Progress OpenEdge-licencojn version 11.7+ - nome OE DataServer por Oracle kaj 4GL Development System. Ĉi tiuj permesiloj estas inkluzivitaj kun la Pro2. Por plena funkciado de DataServer por Oracle kun fora Oracle-datumbazo, Plena Oracle Client estas instalita.

Sur la Oracle-servilo vi devas instali Oracle Database 12+, krei malplenan datumbazon kaj aldoni uzanton (ni nomu lin cdc).

Por instali Pro2Oracle, elŝutu la plej novan distribuadon de la elŝutcentro Progresa Programaro. Malpaku la arkivon en dosierujon C:Pro2 (Por agordi Pro2 sur Unikso, la sama distribuo estas uzata kaj la samaj agordaj principoj validas).

Kreante cdc-reproduktan datumbazon

Replika datumbazo cdc (rep) Pro2 estas uzata por stoki agordajn informojn, inkluzive de la reproduktadmapo, nomoj de reproduktitaj datumbazoj kaj iliaj tabeloj. Ĝi ankaŭ enhavas reproduktan atendovicon, konsistantan el notoj pri tio, ke tabelvico en la fonta datumbazo ŝanĝiĝis. Datenoj de la reprodukta atendovico estas uzataj de ETL-procezoj por identigi vicojn, kiuj devas esti kopiitaj al Oracle de la fonta datumbazo.

Ni kreas apartan cdc-datumbazon.

Procedo por krei datumbazon

  1. Sur la datumbaza servilo ni kreas dosierujon por la cdc-datumbazo - ekzemple sur la servilo /datumbazo/cdc/.
  2. Kreu imitaĵon por la cdc-datumbazo: prokopi $DLC/malplenan kdc
  3. Ebligu subtenon por grandaj dosieroj: proutil cdc -C EnableLargeFiles
  4. Ni preparas skripton por komenci la cdc-datumbazon. La komencaj parametroj devas esti similaj al la komencaj parametroj de la reproduktita datumbazo.
  5. Ni komencas la cdc-datumbazon.
  6. Konektiĝu al la cdc-datumbazo kaj ŝarĝu la Pro2-skemon el la dosiero cdc.df, kiu estas inkluzivita kun la Pro2.
  7. Ni kreas la jenajn uzantojn en la cdc-datumbazo:

pro2adm - por konekti de la administra panelo Pro2;
pro2etl - por konekti ETL-procezojn (ReplBatch);
pro2cdc - por konekti CDC-procezojn (CDCBatch);

Aktivigo de OpenEdge Ŝanĝa Datuma Kaptado

Nun ni ŝaltu la CDC-mekanismon mem, kun la helpo de kiu datumoj estos reproduktitaj al plia teknologia areo. Al ĉiu fonta datumbazo de Progress OpenEdge, vi devas aldoni apartajn stokejojn, en kiuj la fontaj datumoj estos duobligitaj, kaj aktivigi la mekanismon mem per la komando. proutil.

Ekzempla proceduro por la datumbazo de bisquit

  1. Kopiado el la katalogo C:Pro2db файл cdcadd.st al la bisquit fonta datumbaza dosierujo.
  2. Ni priskribas en cdcadd.st fiksgrandaj etendaĵoj por regionoj "ReplCDCArea" и "ReplCDCArea_IDX". Vi povas aldoni novajn stokejojn interrete: prostrct addonline bisquit cdcadd.st
  3. Aktivigu OpenEdge CDC:
    proutil bisquit -C enablecdc areo "ReplCDCArea" indeksoareo "ReplCDCArea_IDX"
  4. La sekvaj uzantoj devas esti kreitaj en la fonta datumbazo por identigi kurantajn procezojn:
    a. pro2adm - por konekti de la administra panelo Pro2.
    b. pro2etl - por konekti ETL-procezojn (ReplBatch).
    c. pro2cdc - por ligado de CDC-procezoj (CDCBatch).

Kreante Schema Holder por DataServer por Oracle

Poste, ni devas krei datumbazon de Schema Holder sur la servilo, kie datumoj de la Progress DBMS estos reproduktitaj al la Oracle DBMS. DataServer Schema Holder estas malplena Progress OpenEdge-datumbazo sen uzantoj aŭ aplikaĵdatenoj, enhavanta mapon de korespondado inter fontotabloj kaj eksteraj Oracle-tabeloj.

La datumbazo de Schema Holder por Progress OpenEdge DataServer por Oracle por Pro2 devas troviĝi sur la ETL-proceza servilo; ĝi estas kreita aparte por ĉiu branĉo.

Kiel krei Skeman Tenilon

  1. Malpaku la Pro2-distribuon en dosierujon /pro2
  2. Kreu kaj iru al la dosierujo /pro2/dbsh
  3. Kreu datumbazon de Schema Holder per la komando kopiu $DLC/malplena bisquitsh
  4. Farante la konvertiĝon bisquitsh en la postulatan kodigon - ekzemple, en UTF-8 se Oracle-datumbazoj havas UTF-8-kodigon: proutil bisquitsh -C convchar konverti UTF-8
  5. Post kreado de malplena datumbazo bisquitsh konektiĝi al ĝi en unu-uzanta reĝimo: pro bisquitsh
  6. Ni iru al Datuma Vortaro: Iloj -> Datuma Vortaro -> DataServer -> ORACLE Utilities -> Krei DataServer-Skemon
  7. Lanĉu Schema Holder
  8. Agordo de Oracle DataServer-broker:
    a. Komencu AdminServer.
    proadsv -start
    b. Komenco de la Oracle DataServer makleristo
    oraman -name orabroker1 -start

Agordo de la administra panelo kaj reproduktadskemo

Uzante la administran panelon Pro2, Pro2-parametroj estas agorditaj, inkluzive de starigado de la reproduktadskemo kaj generado de ETL-procezoj (Procesora Biblioteko), primaraj sinkronigaj programoj (Bulk-Copy Processor), reproduktaj ellasiloj kaj OpenEdge CDC-politikoj. Ekzistas ankaŭ primaraj iloj por monitorado kaj administrado de ETL kaj CDC-procezoj. Antaŭ ĉio, ni agordas la parametrajn dosierojn.

Kiel agordi parametrajn dosierojn

  1. Iru al la katalogo C:Pro2bpreplScripts
  2. Malfermu la dosieron por redakti replProc.pf
  3. Aldonu konektajn parametrojn al la reproduktada datumbazo de cdc:
    # Replica Datumaro
    -db cdc -ld repl -H <ĉefa datumbaza gastiga nomo> -S <datumbaza makleristo haveno cdc>
    -U pro2admin -P <pasvorto>
  4. Aldonu al replProc.pf konektoparametroj al fontaj datumbazoj kaj Schema Holder en formo de parametrodosieroj. La nomo de la parametra dosiero devas kongrui kun la nomo de la fonta datumbazo koneksa.
    # Konekti al ĉiuj reproduktitaj fontoj BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Aldonu al replProc.pf parametroj por konekti al Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <ETL-proceza gastiga nomo>
    -S <biskuitsh broker haveno>
    -db bisquitsql
    -ld bisquitsql
    -dt ORAKOLO
    -S 5162 -H <Gastignomo de Oracle-broker>
    -DataServo orabroker1
  6. Konservu la parametran dosieron replProc.pf
  7. Poste, vi devas krei kaj malfermi por redaktado de parametraj dosieroj por ĉiu konektita fonta datumbazo en la dosierujo C:Pro2bpreplScripts: bisquit.pf. Ĉiu pf-dosiero enhavas parametrojn por konekti al la responda datumbazo, ekzemple:
    -db bisquit -ld bisquit -H <gastigantonomo> -S <broker haveno>
    -U pro2admin -P <pasvorto>

Por agordi Vindozajn ŝparvojojn, vi devas iri al la dosierujo C:Pro2bpreplScripts kaj redaktu la ŝparvojon "Pro2 - Administrado". Por fari tion, malfermu la ecojn de la ŝparvojo kaj en la linio Komencu indiku la instalan dosierujon de Pro2. Simila operacio devas esti farita por la ŝparvojoj "Pro2 - Redaktoro" kaj "RunBulkLoader".

Pro2 Administrado-Agordo: Ŝarĝante Komencan Agordon

Ni lanĉu la konzolon.

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Iru al "DB Mapo".

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Por ligi datumbazojn en Pro2 - Administrado, iru al la langeto DB Mapo. Aldoni mapadon de fontaj datumbazoj - Schema Holder - Orakolo.

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Iru al langeto Mapado. Enlistigita Fonta Datumbazo Defaŭlte, la unua ligita fonta datumbazo estas elektita. Dekstre de la listo estu surskribo Ĉiuj Datumbazoj Konektitaj — la elektitaj datumbazoj estas konektitaj. Malsupre maldekstre vi devus vidi liston de Progrestabeloj de bisquit. Dekstre estas listo de tabeloj el la Oracle-datumbazo.

Krei SQL-skemojn kaj datumbazojn en Oracle

Por krei replikan mapon, vi unue devas generi SQL-skemo en Orakolo. En Pro2 Administrado ni ekzekutas la menueron Iloj -> Generu Kodon -> Celskemo, poste en la dialogujo Elektu Datumbazon elektu unu aŭ plurajn fontajn datumbazojn kaj movu ilin dekstren.

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Alklaku OK kaj elektu la dosierujon por konservi la SQL-skemojn.

Poste ni kreas la bazon. Ĉi tio povas esti farita, ekzemple, per Oracle SQL Programisto. Por fari tion, ni konektas al la Oracle-datumbazo kaj ŝarĝas la skemon por aldoni tabelojn. Post ŝanĝi la komponadon de Oracle-tabeloj, vi devas ĝisdatigi la SQL-skemojn en la Schema Holder.

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Post kiam la elŝuto estas sukcese finita, eliru la datumbazon de bisquitsh kaj malfermu la administran panelon Pro2. Tabeloj de la Oracle-datumbazo devus aperi sur la Mappa langeto dekstre.

Tabelmapado

Por krei replikan mapon, en la administra panelo Pro2, iru al la langeto Mapo kaj elektu la fontan datumbazon. Klaku sur Mapo-Tabeloj, elektu Elektu Ŝanĝojn maldekstre de la tabeloj, kiuj devus esti reproduktitaj en Oracle, movu ilin dekstren kaj konfirmu la elekton. Mapo estos aŭtomate kreita por la elektitaj tabeloj. Ni ripetas la operacion por krei replikan mapon por aliaj fontaj datumbazoj.

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Generado de Pro2 Replication Processor Library kaj Bulk-Copy Processor Programs

La Replika Procesoro-Biblioteko estas dizajnita por specialadaptitaj reproduktaj procezoj (ETLoj) kiuj prilaboras la Pro2-reproduktadvicon kaj puŝas ŝanĝojn al la Oracle-datumbazo. Reproduktaj procesoraj bibliotekprogramoj estas aŭtomate konservitaj al la dosierujo post generacio bprepl/repl_proc (parametro PROC_DIRECTORY). Por generi la reproduktan procesorbibliotekon, iru al Iloj -> Generu Kodon -> Procesoro-Biblioteko. Post kiam la generacio finiĝos, la programoj aperos en la dosierujo bprepl/repl_proc.

Bulk Load Processor-programoj estas uzitaj por sinkronigi fontajn Progress-datumbazon kun la cela Oracle-datumbazo bazita sur la Progress ABL (4GL) programlingvo. Por generi ilin, iru al la menuero Iloj -> Generu Kodon -> Bulk-Kopia Procesoro. En la dialogujo Elektu datumbazon, elektu la fontajn datumbazojn, movu ilin dekstren de la fenestro kaj alklaku OK. Post kiam la generacio finiĝos, la programoj aperos en la dosierujo bpreplrepl_mproc.

Agordi reproduktajn procezojn en Pro2

Dividi tabelojn en arojn servitajn per aparta reproduktadfadeno plibonigas la efikecon kaj efikecon de Pro2 Oracle. Defaŭlte, ĉiuj ligoj kreitaj en la replika mapo por novaj replikaj tabeloj estas asociitaj kun fadeno numero 1. Oni rekomendas apartigi tabelojn en malsamajn fadenojn.

Informoj pri la stato de reproduktaj fadenoj estas montrataj sur la Pro2 Administration ekrano en la Monitoro langeto en la Replica Statuso sekcio. Detala priskribo de parametraj valoroj troveblas en la dokumentado de Pro2 (dosierujo C:Pro2Docs).

Krei kaj aktivigi CDC-politikojn

Politikoj estas aro de reguloj por la OpenEdge CDC-motoro por kontroli ŝanĝojn al tabeloj. Al la horo de skribado, Pro2 nur subtenas CDC-politikojn kun nivelo 0, tio estas, nur fakto estas monitorita rekordajn ŝanĝojn.

Por krei CDC-politikon, sur la administra panelo, iru al la langeto Mapo, elektu la fontan datumbazon kaj alklaku la butonon Aldoni/Forigi Politikojn. En la fenestro Elektu Ŝanĝojn, kiu malfermiĝas, elektu maldekstre kaj movu dekstren la tabelojn por kiuj vi bezonas krei aŭ forigi politikon de CDC.

Por aktivigi, malfermu la langeton Mapo denove, elektu la fontan datumbazon kaj alklaku la butonon (En)Aktivigi Politikojn. Elektu kaj movu al la dekstra flanko de la tabelo la politikojn, kiuj devas esti aktivigitaj, alklaku OK. Post tio ili estas markitaj verde. Uzante (En)Aktivigi Politikojn Vi ankaŭ povas malaktivigi CDC-politikojn. Ĉiuj transakcioj estas faritaj interrete.

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Post kiam la CDC-politiko estas aktivigita, notoj pri modifitaj rekordoj estas konservitaj al la stokado "ReplCDCArea" laŭ la fonta datumbazo. Ĉi tiuj notoj estos prilaboritaj per speciala procezo CDCBatch, kiu surbaze de ili kreos notojn en la pro2-reprodukta atendovico en la datumbazo cdc (rep).

Tiel, ni havas du atendovicojn por reproduktado. La unua etapo estas CDCBatch: de la fonta datumbazo, la datumoj unue iras al la meza CDC-datumbazo. La dua etapo estas kiam datumoj estas transdonitaj de la CDC-datumbazo al Oracle. Ĉi tio estas trajto de la nuna arkitekturo kaj de la produkto mem - ĝis nun la programistoj ne povis establi rektan reproduktadon.

Primara sinkronigo

Post ebligo de la CDC-mekanismo kaj agordo de la replika servilo Pro2, ni devas komenci la komencan sinkronigon. Komenca sinkroniga komando:

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

Post kiam la komenca sinkronigo estas kompletigita, reproduktaj procezoj povas esti komencitaj.

Komenco de reproduktaj procezoj

Por komenci reproduktajn procezojn vi devas ruli skripton replbatch.sh. Antaŭ ol komenci, certigu, ke ekzistas replbatch-skriptoj por ĉiuj fadenoj - replbatch1, replbatch2, ktp. Se ĉio estas en loko, malfermu la komandlinion (ekzemple, proenv), iru al la dosierujo /bprepl/skriptoj kaj komencu la skripton. En la administra panelo, ni kontrolas, ke la responda procezo ricevis la RUNNING-statuson.

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS

Результаты

Kiel amikiĝi inter la banka sistemo Progress OpenEdge kaj la Oracle DBMS
Post efektivigo, ni multe akcelis la alŝuton de informoj al la kompania datuma stokejo. La datumoj aŭtomate eniras Oracle interrete. Ne necesas malŝpari tempon kurante kelkajn longdaŭrajn demandojn por kolekti datumojn de malsamaj sistemoj. Krome, en ĉi tiu solvo la replika procezo povas kunpremi datumojn, kio ankaŭ havas pozitivan efikon sur rapideco. Nun ĉiutaga repaciĝo de la BISKVIT-sistemo kun aliaj sistemoj komencis daŭri 15-20 minutojn anstataŭ 2-2,5 horojn, kaj kompleta repaciĝo daŭris plurajn horojn anstataŭ du tagojn.

fonto: www.habr.com

Aldoni komenton