Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

Din 1999, pentru a deservi back office-ul, banca noastră a folosit sistemul bancar integrat BISKVIT pe platforma Progress OpenEdge, care este utilizat pe scară largă în întreaga lume, inclusiv în sectorul financiar. Performanța acestui SGBD vă permite să citiți până la un milion sau mai multe înregistrări pe secundă într-o bază de date (DB). Progress OpenEdge oferă aproximativ 1,5 milioane de depozite individuale și aproximativ 22,2 milioane de contracte pentru produse active (împrumuturi auto și credite ipotecare) și este, de asemenea, responsabil pentru toate decontările cu autoritatea de reglementare (Banca Centrală) și SWIFT.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

Folosind Progress OpenEdge, ne-am confruntat cu nevoia de a-l face să funcționeze cu Oracle DBMS. Inițial, acest pachet a fost blocajul infrastructurii noastre - până când am instalat și configurat Pro2 CDC - un produs Progress care vă permite să trimiteți date din SGBD Progress către SGBD-ul Oracle direct, online. În această postare vă vom spune în detaliu, cu toate capcanele, cum să vă faceți prieteni în mod eficient între OpenEdge și Oracle.

Cum sa întâmplat: încărcarea datelor în QCD prin partajarea fișierelor

În primul rând, câteva fapte despre infrastructura noastră. Numărul de utilizatori activi ai bazei de date este de aproximativ 15 mii. Volumul tuturor bazelor de date productive, inclusiv replica și standby, este de 600 TB, cea mai mare bază de date este de 16,5 TB. În același timp, bazele de date sunt în continuă reînnoire: doar în ultimul an au fost adăugate aproximativ 120 TB de date productive. Sistemul este alimentat de 150 de servere frontale pe platforma x86. Bazele de date sunt găzduite pe 21 de servere ale platformei IBM.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle
Sistemele front-end, diverse sisteme bancare de bază și servicii bancare sunt integrate cu OpenEdge Progress (BISCUIT IBS) prin intermediul magistralei Sonic ESB. Încărcarea datelor în QCD are loc prin schimbul de fișiere. Până la un anumit moment în timp, această soluție a avut două mari probleme simultan - performanța scăzută de încărcare a informațiilor într-un depozit de date corporative (CDW) și o perioadă lungă de timp pentru efectuarea reconcilierii datelor (reconcilierii) cu alte sisteme.
Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle
Prin urmare, am început să căutăm un instrument care ar putea accelera aceste procese. Soluția la ambele probleme a fost noul produs Progress OpenEdge – Pro2 CDC (Change Data Capture). Deci, să începem.

Instalați Progress OpenEdge și Pro2Oracle

Pentru a rula Pro2 Oracle pe computerul Windows al administratorului, este suficient să instalați Progress OpenEdge Developer Kit Classroom Edition, care poate fi descărca gratuit. Directoare implicite de instalare OpenEdge:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

Procesele ETL necesită licențe Progress OpenEdge versiunea 11.7+ - și anume OE DataServer pentru Oracle și 4GL Development System. Aceste licențe sunt incluse cu Pro2. Pentru funcționarea completă a DataServer for Oracle cu o bază de date Oracle la distanță, este instalat Full Oracle Client.

Pe serverul Oracle trebuie să instalați Oracle Database 12+, să creați o bază de date goală și să adăugați un utilizator (să-l numim CDC).

Pentru a instala Pro2Oracle, descărcați cea mai recentă distribuție din centrul de descărcare Software Progress. Despachetați arhiva într-un director C:Pro2 (Pentru a configura Pro2 pe Unix, se folosește aceeași distribuție și se aplică aceleași principii de configurare).

Crearea unei baze de date de replicare CDC

Baza de date de replicare cdc (repl) Pro2 este folosit pentru a stoca informații de configurare, inclusiv harta de replicare, numele bazelor de date replicate și tabelele acestora. Conține și o coadă de replicare, constând din note despre faptul că un rând de tabel din baza de date sursă s-a schimbat. Datele din coada de replicare sunt folosite de procesele ETL pentru a identifica rândurile care trebuie copiate în Oracle din baza de date sursă.

Creăm o bază de date CDC separată.

Procedura de creare a unei baze de date

  1. Pe serverul bazei de date creăm un director pentru baza de date cdc - de exemplu, pe server /database/cdc/.
  2. Creați un dummy pentru baza de date CDC: procopie $DLC/cdc gol
  3. Activați suportul pentru fișiere mari: proutil cdc -C EnableLargeFiles
  4. Pregătim un script pentru pornirea bazei de date cdc. Parametrii de pornire trebuie să fie similari cu parametrii de pornire ai bazei de date replicate.
  5. Pornim baza de date CDC.
  6. Conectați-vă la baza de date CDC și încărcați schema Pro2 din fișier cdc.df, care este inclus cu Pro2.
  7. Creăm următorii utilizatori în baza de date cdc:

pro2adm – pentru conectarea din panoul administrativ Pro2;
pro2etl – pentru conectarea proceselor ETL (ReplBatch);
pro2cdc – pentru conectarea proceselor CDC (CDCBatch);

Activarea OpenEdge Change Data Capture

Acum să pornim mecanismul CDC în sine, cu ajutorul căruia datele vor fi replicate într-o zonă tehnologică suplimentară. La fiecare bază de date sursă Progress OpenEdge, trebuie să adăugați zone de stocare separate în care datele sursă vor fi duplicate și să activați mecanismul în sine folosind comanda proutil.

Exemplu de procedură pentru baza de date bisquit

  1. Copiere din catalog C:Pro2db fișier cdcadd.st în directorul bazei de date sursă bisquit.
  2. Descriem în cdcadd.st extinderi de dimensiune fixă ​​pentru regiuni „ReplCDCArea” и „ReplCDCArea_IDX”. Puteți adăuga noi zone de depozitare online: prostrct addonline bisquit cdcadd.st
  3. Activați OpenEdge CDC:
    proutil bisquit -C enablecdc zona „ReplCDCArea” indexarea „ReplCDCArea_IDX”
  4. Următorii utilizatori trebuie să fie creați în baza de date sursă pentru a identifica procesele care rulează:
    A. pro2adm – pentru conectarea din panoul administrativ Pro2.
    b. pro2etl – pentru conectarea proceselor ETL (ReplBatch).
    c. pro2cdc – pentru conectarea proceselor CDC (CDCBatch).

Crearea unui deținător de schemă pentru DataServer pentru Oracle

Apoi, trebuie să creăm o bază de date Schema Holder pe server unde datele din SGBD Progress vor fi replicate în SGBD-ul Oracle. DataServer Schema Holder este o bază de date Progress OpenEdge goală, fără utilizatori sau date aplicației, care conține o hartă a corespondenței dintre tabelele sursă și tabelele externe Oracle.

Baza de date Schema Holder pentru Progress OpenEdge DataServer pentru Oracle pentru Pro2 trebuie să fie localizată pe serverul de proces ETL; este creată separat pentru fiecare ramură.

Cum se creează un deținător de schemă

  1. Despachetați distribuția Pro2 într-un director /pro2
  2. Creați și accesați directorul /pro2/dbsh
  3. Creați o bază de date Schema Holder folosind comanda copiați $DLC/empty bisquitsh
  4. Efectuarea conversiei bisquitsh în codificarea necesară - de exemplu, în UTF-8 dacă bazele de date Oracle au codificare UTF-8: proutil bisquitsh -C convchar convert UTF-8
  5. După crearea unei baze de date goale bisquitsh conectați-vă la acesta în modul utilizator unic: pro bisquitsh
  6. Să mergem la Dicționar de date: Tools -> Data Dictionary -> DataServer -> ORACLE Utilities -> Create DataServer Schema
  7. Lansați Schema Holder
  8. Configurarea brokerului Oracle DataServer:
    A. Porniți AdminServer.
    proadsv -start
    b. Pornirea brokerului Oracle DataServer
    oraman -nume orabroker1 -start

Configurarea panoului administrativ și a schemei de replicare

Folosind panoul administrativ Pro2, parametrii Pro2 sunt configurați, inclusiv configurarea schemei de replicare și generarea proceselor ETL (Biblioteca Procesor), programe de sincronizare primară (Procesor de copiere în bloc), declanșatoare de replicare și politici OpenEdge CDC. Există, de asemenea, instrumente primare pentru monitorizarea și gestionarea proceselor ETL și CDC. În primul rând, configuram fișierele de parametri.

Cum se configurează fișierele de parametri

  1. Mergi la catalog C:Pro2bpreplScripts
  2. Deschideți fișierul pentru editare replProc.pf
  3. Adăugați parametri de conexiune la baza de date de replicare cdc:
    # Baza de date de replicare
    -db cdc -ld repl -H <nume gazdă bază de date principală> -S <port broker baze de date cdc>
    -U pro2admin -P <parolă>
  4. Adaugă la replProc.pf parametrii de conectare la bazele de date sursă și Schema Holder sub formă de fișiere de parametri. Numele fișierului de parametri trebuie să se potrivească cu numele bazei de date sursă conectată.
    # Conectați-vă la toate sursele replicate BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Adaugă la replProc.pf parametrii pentru conectarea la Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <Nume gazdă proces ETL>
    -S <port de broker biskuitsh>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <Nume gazdă broker Oracle>
    -DataService orabroker1
  6. Salvați fișierul cu parametri replProc.pf
  7. Apoi, trebuie să creați și să deschideți pentru editare fișiere de parametri pentru fiecare bază de date sursă conectată din director C:Pro2bpreplScripts: bisquit.pf. Fiecare fișier pf conține parametri pentru conectarea la baza de date corespunzătoare, de exemplu:
    -db bisquit -ld bisquit -H <nume gazdă> -S <port broker>
    -U pro2admin -P <parolă>

Pentru a configura comenzile rapide Windows, trebuie să mergeți la director C:Pro2bpreplScripts și editați comanda rapidă „Pro2 – Administrare”. Pentru a face acest lucru, deschideți proprietățile comenzii rapide și în linie Incepe in indicați directorul de instalare Pro2. O operațiune similară trebuie făcută pentru comenzile rapide „Pro2 – Editor” și „RunBulkLoader”.

Configurare administrare Pro2: se încarcă configurația inițială

Hai să lansăm consola.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

Accesați „Harta DB”.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

Pentru a conecta bazele de date în Pro2 – Administrare, accesați fila Harta DB. Adăugați maparea bazelor de date sursă - Schema Holder - Oracle.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

Accesați fila Maparea. Pe listă Baza de date sursă În mod implicit, prima bază de date sursă conectată este selectată. În dreapta listei ar trebui să existe o inscripție Toate bazele de date conectate — bazele de date selectate sunt conectate. Mai jos, în stânga, ar trebui să vedeți o listă cu tabelele de progres de la bisquit. În dreapta este o listă de tabele din baza de date Oracle.

Crearea de scheme SQL și baze de date în Oracle

Pentru a crea o hartă de replicare, trebuie mai întâi să generați Schema SQL în Oracle. În Administrarea Pro2, executăm elementul de meniu Instrumente -> Generare cod -> Schemă țintă, apoi în caseta de dialog Selectați baza de date selectați una sau mai multe baze de date sursă și mutați-le la dreapta.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

Faceți clic pe OK și selectați directorul pentru a salva schemele SQL.

Apoi creăm baza. Acest lucru se poate face, de exemplu, prin Dezvoltator Oracle SQL. Pentru a face acest lucru, ne conectăm la baza de date Oracle și încărcăm schema pentru adăugarea tabelelor. După modificarea compoziției tabelelor Oracle, trebuie să actualizați schemele SQL în Schema Holder.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

După ce descărcarea este finalizată cu succes, ieșiți din baza de date bisquitsh și deschideți panoul administrativ Pro2. Tabelele din baza de date Oracle ar trebui să apară în fila Mapare din dreapta.

Maparea tabelului

Pentru a crea o hartă de replicare, în panoul administrativ Pro2, accesați fila Mapare și selectați baza de date sursă. Faceți clic pe Map Tables, selectați Select Changes din stânga tabelelor care ar trebui să fie replicate în Oracle, mutați-le la dreapta și confirmați selecția. O hartă va fi creată automat pentru tabelele selectate. Repetăm ​​operația pentru a crea o hartă de replicare pentru alte baze de date sursă.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

Generarea bibliotecii procesorului de replicare Pro2 și a programelor de procesor de copiere în bloc

Biblioteca procesorului de replicare este concepută pentru procesele de replicare personalizate (ETL) care procesează coada de replicare Pro2 și introduc modificări în baza de date Oracle. Programele de bibliotecă a procesorului de replicare sunt salvate automat în director după generare bprepl/repl_proc (parametru PROC_DIRECTORY). Pentru a genera biblioteca procesorului de replicare, accesați Instrumente -> Generare cod -> Biblioteca procesor. După ce generarea este finalizată, programele vor apărea în director bprepl/repl_proc.

Programele Bulk Load Processor sunt folosite pentru a sincroniza bazele de date sursă Progress cu baza de date țintă Oracle pe baza limbajului de programare Progress ABL (4GL). Pentru a le genera, accesați elementul de meniu Instrumente -> Generare cod -> Procesor de copiere în bloc. În caseta de dialog Selectare bază de date, selectați bazele de date sursă, mutați-le în partea dreaptă a ferestrei și faceți clic OK. După ce generarea este finalizată, programele vor apărea în director bpreplrepl_mproc.

Configurarea proceselor de replicare în Pro2

Împărțirea tabelelor în seturi deservite de un fir de replicare separat îmbunătățește performanța și eficiența Pro2 Oracle. În mod implicit, toate conexiunile create în harta de replicare pentru noile tabele de replicare sunt asociate cu numărul de fir 1. Se recomandă separarea tabelelor în fire diferite.

Informațiile despre starea firelor de execuție de replicare sunt afișate pe ecranul Administrare Pro2 din fila Monitor din secțiunea Stare replicare. O descriere detaliată a valorilor parametrilor poate fi găsită în documentația Pro2 (directorul C:Pro2Docs).

Creați și activați politici CDC

Politicile sunt un set de reguli pentru motorul OpenEdge CDC pentru a monitoriza modificările aduse tabelelor. La momentul scrierii, Pro2 acceptă doar politicile CDC cu nivelul 0, adică numai faptele sunt monitorizate înregistrează modificări.

Pentru a crea o politică CDC, în panoul administrativ, accesați fila Mapare, selectați baza de date sursă și faceți clic pe butonul Adăugare/Eliminare politici. În fereastra Selectare modificări care se deschide, selectați în partea stângă și mutați la dreapta tabelele pentru care trebuie să creați sau să ștergeți o politică CDC.

Pentru a activa, deschideți din nou fila Mapare, selectați baza de date sursă și faceți clic pe butonul (In)Activați politici. Selectați și mutați în partea dreaptă a tabelului politicile care trebuie activate, faceți clic pe OK. După aceasta, acestea sunt marcate cu verde. Prin utilizarea (In)Activați politici De asemenea, puteți dezactiva politicile CDC. Toate tranzacțiile sunt efectuate online.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

După activarea politicii CDC, notele despre înregistrările modificate sunt salvate în zona de stocare „ReplCDCArea” conform bazei de date sursă. Aceste note vor fi procesate printr-un proces special CDCBatch, care pe baza acestora va crea note în coada de replicare Pro2 din baza de date cdc (repl).

Astfel, avem două cozi pentru replicare. Prima etapă este CDCBatch: din baza de date sursă, datele merg mai întâi în baza de date intermediară CDC. A doua etapă este când datele sunt transferate din baza de date CDC către Oracle. Aceasta este o caracteristică a arhitecturii actuale și a produsului în sine - până acum dezvoltatorii nu au reușit să stabilească o replicare directă.

Sincronizare primară

După activarea mecanismului CDC și configurarea serverului de replicare Pro2, trebuie să începem sincronizarea inițială. Comanda de sincronizare inițială:

/pro2/bprepl/Script/replLoad.sh bisquit nume-tabel

După finalizarea sincronizării inițiale, procesele de replicare pot fi pornite.

Începutul proceselor de replicare

Pentru a începe procesele de replicare, trebuie să rulați un script replbatch.sh. Înainte de a începe, asigurați-vă că există scripturi replbatch pentru toate firele - replbatch1, replbatch2 etc. Dacă totul este la locul său, deschideți linia de comandă (de exemplu, proenv), accesați directorul /bprepl/scripts și începeți scenariul. În panoul administrativ, verificăm dacă procesul corespunzător a primit starea RUNNING.

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle

Constatări

Cum să vă împrietenești între sistemul bancar Progress OpenEdge și DBMS Oracle
După implementare, am accelerat foarte mult încărcarea informațiilor în depozitul de date corporative. Datele intră automat în Oracle online. Nu este nevoie să pierdeți timpul rulând niște interogări de lungă durată pentru a colecta date din diferite sisteme. În plus, în această soluție procesul de replicare poate comprima datele, ceea ce are și un efect pozitiv asupra vitezei. Acum, reconcilierea zilnică a sistemului BISKVIT cu alte sisteme a început să dureze 15-20 de minute în loc de 2-2,5 ore, iar o reconciliere completă a durat câteva ore în loc de două zile.

Sursa: www.habr.com

Adauga un comentariu