Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Od 1999. godine, za servis back office-a, naša banka koristi integrirani bankarski sustav BISKVIT na platformi Progress OpenEdge, koja se široko koristi u cijelom svijetu, uključujući i financijski sektor. Performanse ovog DBMS-a omogućuju čitanje do milijun ili više zapisa u sekundi u jednoj bazi podataka (DB). Naš Progress OpenEdge servisira oko 1,5 milijuna pojedinačnih depozita i oko 22,2 milijuna ugovora za aktivne proizvode (krediti za automobile i hipoteke), a također je odgovoran za sva poravnanja s regulatorom (Središnjom bankom) i SWIFT-om.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Koristeći Progress OpenEdge, suočili smo se s potrebom da ga natjeramo da radi s Oracle DBMS-om. U početku je ovaj paket bio usko grlo naše infrastrukture - sve dok nismo instalirali i konfigurirali Pro2 CDC - Progress proizvod koji vam omogućuje slanje podataka iz Progress DBMS-a u Oracle DBMS izravno, online. U ovom postu ćemo vam detaljno, sa svim zamkama, reći kako učinkovito sklopiti prijateljstva između OpenEdgea i Oraclea.

Kako se to dogodilo: učitavanje podataka u QCD putem dijeljenja datoteka

Prvo, neke činjenice o našoj infrastrukturi. Broj aktivnih korisnika baze je oko 15 tisuća. Volumen svih produktivnih baza podataka, uključujući repliku i standby, je 600 TB, najveća baza podataka je 16,5 TB. Istodobno se baze podataka stalno nadopunjuju: samo tijekom prošle godine dodano je oko 120 TB produktivnih podataka. Sustav pokreće 150 front servera na x86 platformi. Baze podataka nalaze se na 21 poslužitelju IBM platforme.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a
Front-end sustavi, različiti temeljni bankarski sustavi i bankarske usluge integrirani su s OpenEdge Progress (BISCUIT IBS) putem Sonic ESB sabirnice. Prijenos podataka u QCD odvija se putem razmjene datoteka. Do određenog trenutka ovo je rješenje imalo dva velika problema odjednom - niske performanse učitavanja informacija u korporativno skladište podataka (CDW) i dugo vremena za izvođenje usklađivanja podataka (usklađivanja) s drugim sustavima.
Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a
Stoga smo počeli tražiti alat koji bi mogao ubrzati te procese. Rješenje za oba problema bio je novi Progress OpenEdge proizvod – Pro2 CDC (Change Data Capture). Dakle, počnimo.

Instalirajte Progress OpenEdge i Pro2Oracle

Za pokretanje Pro2 Oracle na Windows računalu administratora dovoljno je instalirati Progress OpenEdge Developer Kit Classroom Edition koji se može preuzimanje besplatno. Zadani OpenEdge instalacijski direktoriji:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL procesi zahtijevaju Progress OpenEdge licence verzije 11.7+ - odnosno OE DataServer za Oracle i 4GL Development System. Ove licence su uključene u Pro2. Za puni rad DataServera za Oracle s udaljenom Oracle bazom podataka instaliran je Full Oracle Client.

Na Oracle server potrebno je instalirati Oracle Database 12+, napraviti praznu bazu i dodati korisnika (nazovimo ga CDC).

Da biste instalirali Pro2Oracle, preuzmite najnoviju distribuciju iz centra za preuzimanje Napredni softver. Raspakirajte arhivu u direktorij C:Pro2 (Za konfiguriranje Pro2 na Unixu koristi se ista distribucija i primjenjuju se isti principi konfiguracije).

Stvaranje cdc replikacijske baze podataka

Replikacijska baza podataka cdc (repl) Pro2 se koristi za pohranu informacija o konfiguraciji, uključujući mapu replikacije, imena repliciranih baza podataka i njihovih tablica. Također sadrži red čekanja replikacije koji se sastoji od bilješki o činjenici da se redak tablice u izvornoj bazi podataka promijenio. Podatke iz reda replikacije koriste ETL procesi za identifikaciju redaka koje je potrebno kopirati u Oracle iz izvorne baze podataka.

Stvaramo zasebnu cdc bazu podataka.

Postupak izrade baze podataka

  1. Na poslužitelju baze podataka stvaramo direktorij za cdc bazu podataka - na primjer, na poslužitelju /baza podataka/cdc/.
  2. Stvorite lutku za cdc bazu podataka: procopy $DLC/prazni cdc
  3. Omogući podršku za velike datoteke: proutil cdc -C Omogući velike datoteke
  4. Pripremamo skriptu za pokretanje cdc baze podataka. Početni parametri moraju biti slični početnim parametrima replicirane baze podataka.
  5. Pokrećemo cdc bazu podataka.
  6. Povežite se na cdc bazu podataka i učitajte Pro2 shemu iz datoteke cdc.df, koji je uključen u Pro2.
  7. U cdc bazi podataka stvaramo sljedeće korisnike:

pro2adm – za povezivanje iz Pro2 administrativne ploče;
pro2etl – za povezivanje ETL procesa (ReplBatch);
pro2cdc – za povezivanje CDC procesa (CDCBatch);

Aktiviranje OpenEdge Change Data Capture

Sada uključimo sam CDC mehanizam, uz pomoć kojeg će se podaci replicirati u dodatno tehnološko područje. Svakoj Progress OpenEdge izvornoj bazi podataka potrebno je dodati zasebna skladišna područja u koja će se duplicirati izvorni podaci te aktivirati sam mehanizam pomoću naredbe proutil.

Primjer postupka za bazu podataka o keksima

  1. Kopiranje iz kataloga C:Pro2db datoteku cdcadd.st u direktorij izvorne baze podataka bisquit.
  2. Opisujemo u cdcadd.st ekstenti fiksne veličine za regije "ReplCDCArea" и "ReplCDCArea_IDX". Nova područja za pohranu možete dodati online: prostrct addonline bisquit cdcadd.st
  3. Aktivirajte OpenEdge CDC:
    proutil bisquit -C enablecdc područje "ReplCDCArea" indeksno područje "ReplCDCArea_IDX"
  4. Sljedeći korisnici moraju biti kreirani u izvornoj bazi podataka za identifikaciju pokrenutih procesa:
    a. pro2adm – za povezivanje iz Pro2 administrativnog panela.
    b. pro2etl – za povezivanje ETL procesa (ReplBatch).
    c. pro2cdc – za povezivanje CDC procesa (CDCBatch).

Stvaranje držača sheme za DataServer za Oracle

Zatim moramo stvoriti bazu podataka Schema Holder na poslužitelju gdje će se podaci iz Progress DBMS-a replicirati na Oracle DBMS. DataServer Schema Holder prazna je baza podataka Progress OpenEdge bez podataka o korisnicima ili aplikaciji, koja sadrži mapu korespondencije između izvornih tablica i vanjskih Oracle tablica.

Baza podataka Schema Holder za Progress OpenEdge DataServer za Oracle za Pro2 mora se nalaziti na poslužitelju procesa ETL; kreira se zasebno za svaku granu.

Kako stvoriti nositelja sheme

  1. Raspakirajte Pro2 distribuciju u direktorij /pro2
  2. Kreirajte i idite u imenik /pro2/dbsh
  3. Stvorite bazu podataka nositelja sheme pomoću naredbe kopirajte $DLC/prazni bisquitsh
  4. Izvođenje pretvorbe biskvit u potrebno kodiranje - na primjer, u UTF-8 ako Oracle baze podataka imaju UTF-8 kodiranje: proutil bisquitsh -C convchar pretvoriti UTF-8
  5. Nakon izrade prazne baze podataka biskvit spojite se na njega u jednokorisničkom načinu rada: pro bisquitsh
  6. Idemo na Rječnik podataka: Alati -> Data Dictionary -> DataServer -> ORACLE Utilities -> Create DataServer Schema
  7. Pokreni držač sheme
  8. Postavljanje brokera Oracle DataServer:
    a. Pokrenite AdminServer.
    proadsv -početak
    b. Početak brokera Oracle DataServer
    oraman -ime orabroker1 -poč

Postavljanje administrativne ploče i sheme replikacije

Pomoću administrativne ploče Pro2 konfiguriraju se parametri Pro2, uključujući postavljanje sheme replikacije i generiranje ETL procesa (Procesor Library), primarnih programa sinkronizacije (Bulk-Copy Processor), okidača replikacije i OpenEdge CDC pravila. Tu su i primarni alati za praćenje i upravljanje ETL i CDC procesima. Prije svega, postavili smo datoteke parametara.

Kako konfigurirati datoteke parametara

  1. Idi na katalog C:Pro2bpreplScripts
  2. Otvorite datoteku za uređivanje replProc.pf
  3. Dodajte parametre veze u bazu podataka replikacije cdc-a:
    # Replikacijska baza podataka
    -db cdc -ld repl -H <ime hosta glavne baze podataka> -S <cdc port posrednika baze podataka>
    -U pro2admin -P <lozinka>
  4. Dodaj u replProc.pf parametri povezivanja s izvornim bazama podataka i Schema Holder u obliku datoteka parametara. Naziv datoteke parametara mora odgovarati nazivu izvorne baze podataka koja se povezuje.
    # Povežite se sa svim repliciranim izvorima BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Dodaj u replProc.pf parametri za spajanje na Schema Holder.
    Držač sheme #Target Pro DB
    -db bisquitsh -ld bisquitsh
    -H <naziv glavnog računala ETL procesa>
    -S <biskuitsh broker luka>
    -db bisquitsql
    -ld bisquitsql
    -dt PROROČIŠTE
    -S 5162 -H <Naziv glavnog računala Oracle brokera>
    -DataService ili broker1
  6. Spremite datoteku s parametrima replProc.pf
  7. Zatim trebate kreirati i otvoriti datoteke parametara za uređivanje za svaku povezanu izvornu bazu podataka u direktoriju C:Pro2bpreplScripts: bisquit.pf. Svaka pf datoteka sadrži parametre za povezivanje s odgovarajućom bazom podataka, na primjer:
    -db bisquit -ld bisquit -H <naziv hosta> -S <broker port>
    -U pro2admin -P <lozinka>

Da biste konfigurirali Windows prečace, morate otići u direktorij C:Pro2bpreplScripts i uredite prečac “Pro2 – Administracija”. Da biste to učinili, otvorite svojstva prečaca i u retku Počni U označiti Pro2 instalacijski direktorij. Sličnu operaciju morate izvršiti za prečace “Pro2 – Editor” i “RunBulkLoader”.

Pro2 administrativno postavljanje: učitavanje početne konfiguracije

Pokrenimo konzolu.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Idite na “DB Map”.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Za povezivanje baza podataka u Pro2 – Administracija, idite na karticu DB Karta. Dodaj mapiranje izvornih baza podataka - Nositelj sheme - Oracle.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Idi na karticu Mapiranje. Navedeno Izvorna baza podataka Prema zadanim postavkama odabrana je prva povezana izvorna baza podataka. Desno od popisa trebao bi biti natpis Sve baze podataka povezane — odabrane baze podataka su povezane. Dolje lijevo trebali biste vidjeti popis tablica napretka iz bisquita. Desno je popis tablica iz Oracle baze podataka.

Izrada SQL shema i baza podataka u Oracleu

Da biste kreirali mapu replikacije, prvo morate generirati SQL shema u Oracleu. U Pro2 Administration izvršavamo stavku izbornika Alati -> Generiraj kod -> Ciljna shema, zatim u dijaloškom okviru Odaberite Baza podataka odaberite jednu ili više izvornih baza podataka i pomaknite ih udesno.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Pritisnite OK i odaberite direktorij za spremanje SQL shema.

Zatim stvaramo bazu. To se može učiniti, na primjer, putem Oracle SQL Developer. Da bismo to učinili, povezujemo se s Oracle bazom podataka i učitavamo shemu za dodavanje tablica. Nakon promjene sastava Oracle tablica, morate ažurirati SQL sheme u Schema Holderu.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Nakon što je preuzimanje uspješno završeno, izađite iz baze podataka bisquitsh i otvorite Pro2 administrativnu ploču. Tablice iz Oracle baze podataka trebale bi se pojaviti na kartici Mapiranje s desne strane.

Mapiranje tablice

Za izradu mape replikacije, u Pro2 administrativnoj ploči idite na karticu Mapiranje i odaberite izvornu bazu podataka. Kliknite Map Tables, odaberite Select Changes lijevo od tablica koje bi trebale biti replicirane u Oracleu, pomaknite ih desno i potvrdite odabir. Automatski će se izraditi karta za odabrane tablice. Ponavljamo operaciju za stvaranje mape replikacije za druge izvorne baze podataka.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Generiranje Pro2 biblioteke procesora replikacije i programa procesora masovnog kopiranja

Knjižnica procesora replikacije dizajnirana je za prilagođene procese replikacije (ETL) koji obrađuju Pro2 red čekanja replikacije i unose promjene u Oracle bazu podataka. Programi knjižnice procesora replikacije automatski se spremaju u direktorij nakon generiranja bprepl/repl_proc (parametar PROC_DIRECTORY). Za generiranje biblioteke procesora replikacije idite na Alati -> Generiraj kod -> Knjižnica procesora. Nakon dovršetka generiranja, programi će se pojaviti u direktoriju bprepl/repl_proc.

Programi Bulk Load Processor koriste se za sinkronizaciju izvornih Progress baza podataka s ciljnom Oracle bazom podataka na temelju Progress ABL (4GL) programskog jezika. Da biste ih generirali, idite na stavku izbornika Alati -> Generiraj kod -> Procesor masovnog kopiranja. U dijaloškom okviru Select Database odaberite izvorne baze podataka, pomaknite ih na desnu stranu prozora i kliknite OK. Nakon dovršetka generiranja, programi će se pojaviti u direktoriju bpreplrepl_mproc.

Postavljanje procesa replikacije u Pro2

Dijeljenje tablica u skupove koje poslužuje zasebna replikacijska nit poboljšava izvedbu i učinkovitost Pro2 Oraclea. Prema zadanim postavkama, sve veze stvorene u mapi replikacije za nove tablice replikacije pridružene su niti broj 1. Preporuča se razdvajanje tablica u različite niti.

Informacije o statusu niti replikacije prikazane su na zaslonu Pro2 Administration na kartici Monitor u odjeljku Status replikacije. Detaljan opis vrijednosti parametara možete pronaći u Pro2 dokumentaciji (direktorij C:Pro2Docs).

Stvorite i aktivirajte pravila CDC-a

Pravila su skup pravila za OpenEdge CDC mehanizam za praćenje promjena u tablicama. U vrijeme pisanja, Pro2 podržava samo CDC pravila s razinom 0, odnosno nadziru se samo činjenice bilježiti promjene.

Za izradu pravila CDC-a, na administrativnoj ploči idite na karticu Mapiranje, odaberite izvornu bazu podataka i kliknite gumb Dodaj/ukloni pravila. U prozoru Select Changes koji se otvori odaberite s lijeve strane i pomaknite desno tablice za koje trebate izraditi ili izbrisati CDC politiku.

Za aktivaciju ponovno otvorite karticu Mapiranje, odaberite izvornu bazu podataka i kliknite na gumb (Ne)Aktiviraj pravila. Odaberite i pomaknite na desnu stranu tablice pravila za koja želite aktivirati, kliknite U redu. Nakon toga su označeni zelenom bojom. Pomoću (Ne)Aktiviraj pravila Također možete deaktivirati pravila CDC-a. Sve transakcije se obavljaju online.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Nakon što se CDC politika aktivira, bilješke o izmijenjenim zapisima spremaju se u prostor za pohranu "ReplCDCArea" prema izvornoj bazi podataka. Ove bilješke bit će obrađene posebnim postupkom CDCBatch, koji će na temelju njih kreirati bilješke u redu čekanja replikacije Pro2 u bazi podataka cdc (repl).

Dakle, imamo dva reda za replikaciju. Prva faza je CDCBatch: iz izvorne baze podataka podaci prvo idu u međubazu CDC. Druga faza je kada se podaci prenose iz CDC baze podataka u Oracle. Ovo je značajka trenutne arhitekture i samog proizvoda - programeri do sada nisu uspjeli uspostaviti izravnu replikaciju.

Primarna sinkronizacija

Nakon što omogućimo CDC mehanizam i postavimo Pro2 replikacijski poslužitelj, moramo pokrenuti početnu sinkronizaciju. Početna naredba za sinkronizaciju:

/pro2/bprepl/Script/replLoad.sh biskvit naziv tablice

Nakon dovršetka početne sinkronizacije mogu se pokrenuti procesi replikacije.

Početak procesa replikacije

Za pokretanje procesa replikacije morate pokrenuti skriptu replbatch.sh. Prije početka provjerite postoje li replbatch skripte za sve niti - replbatch1, replbatch2 itd. Ako je sve na mjestu, otvorite naredbeni redak (npr. proenv), idite u imenik /bprepl/skripte i pokrenite skriptu. U administrativnoj ploči provjeravamo je li odgovarajući proces dobio status U RADU.

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a

Nalazi

Kako sklopiti prijateljstva između bankovnog sustava Progress OpenEdge i Oracle DBMS-a
Nakon implementacije, uvelike smo ubrzali učitavanje informacija u korporativno skladište podataka. Podaci automatski ulaze u Oracle online. Nema potrebe gubiti vrijeme na pokretanje dugotrajnih upita za prikupljanje podataka iz različitih sustava. Osim toga, u ovom rješenju proces replikacije može komprimirati podatke, što također ima pozitivan učinak na brzinu. Sada je dnevno usklađivanje BISKVIT sustava s drugim sustavima počelo trajati 15-20 minuta umjesto 2-2,5 sata, a potpuno usklađivanje je trajalo nekoliko sati umjesto dva dana.

Izvor: www.habr.com

Dodajte komentar