Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Od 1999. godine, za servisiranje back office-a, naša banka koristi integrisani bankarski sistem BISKVIT na platformi Progress OpenEdge, koja se široko koristi u cijelom svijetu, uključujući i finansijski sektor. Performanse ovog DBMS-a vam omogućavaju da pročitate do milion ili više zapisa u sekundi u jednoj bazi podataka (DB). Naš Progress OpenEdge servisira oko 1,5 miliona pojedinačnih depozita i oko 22,2 miliona ugovora za aktivne proizvode (auto krediti i hipoteke), a takođe je odgovoran za sva poravnanja sa regulatorom (Centralna banka) i SWIFT-om.

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Koristeći Progress OpenEdge, suočili smo se sa potrebom da on radi sa Oracle DBMS-om. U početku, ovaj paket je bio usko grlo naše infrastrukture - sve dok nismo instalirali i konfigurisali Pro2 CDC - Progress proizvod koji vam omogućava da direktno, online, šaljete podatke iz Progress DBMS u Oracle DBMS. U ovom postu ćemo vam detaljno reći, sa svim zamkama, kako efikasno steći prijatelje između OpenEdge-a 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 hiljada. Obim svih produktivnih baza podataka, uključujući repliku i standby, je 600 TB, najveća baza podataka je 16,5 TB. Istovremeno, baze podataka se stalno dopunjuju: samo u prošloj godini dodano je oko 120 TB produktivnih podataka. Sistem pokreće 150 front servera na x86 platformi. Baze podataka se nalaze na 21 serveru IBM platforme.

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a
Front-end sistemi, različiti osnovni bankarski sistemi i bankarske usluge su integrisani sa OpenEdge Progress-om (BISCUIT IBS) preko Sonic ESB magistrale. Učitavanje podataka u QCD odvija se putem razmjene datoteka. Do određenog vremena ovo rješenje je imalo dva velika problema odjednom - slabe performanse učitavanja informacija u korporativno skladište podataka (CDW) i dugo vrijeme za obavljanje usaglašavanja (usklađivanja) podataka sa drugim sistemima.
Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a
Stoga smo počeli tražiti alat koji bi mogao ubrzati ove 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

Da biste pokrenuli Pro2 Oracle na Windows računaru administratora, dovoljno je instalirati Progress OpenEdge Developer Kit Classroom Edition, koji se može скачать besplatno. Zadani OpenEdge instalacijski direktoriji:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL procesi zahtevaju Progress OpenEdge licence verzije 11.7+ – naime OE DataServer za Oracle i 4GL razvojni sistem. Ove licence su uključene u Pro2. Za potpuni rad DataServera za Oracle sa udaljenom Oracle bazom podataka, instaliran je Full Oracle Client.

Na Oracle serveru morate instalirati Oracle Database 12+, kreirati praznu bazu podataka i dodati korisnika (nazovimo ga cdc).

Da biste instalirali Pro2Oracle, preuzmite najnoviju distribuciju iz centra za preuzimanje Progress Software. Raspakujte arhivu u direktorijum C:Pro2 (Za konfiguraciju Pro2 na Unixu koristi se ista distribucija i primjenjuju se isti principi konfiguracije).

Kreiranje baze podataka za replikaciju cdc-a

Baza podataka replikacije cdc (repl) Pro2 se koristi za pohranjivanje informacija o konfiguraciji, uključujući mapu replikacije, imena repliciranih baza podataka i njihove tabele. Također sadrži red replikacije, koji se sastoji od napomena o činjenici da se red tablice u izvornoj bazi podataka promijenio. ETL procesi koriste podatke iz reda replikacije za identifikaciju redova koje je potrebno kopirati u Oracle iz izvorne baze podataka.

Pravimo posebnu CDC bazu podataka.

Procedura za kreiranje baze podataka

  1. Na serveru baze podataka kreiramo direktorij za cdc bazu podataka - na primjer, na serveru /database/cdc/.
  2. Kreirajte dummy za cdc bazu podataka: procopy $DLC/prazni cdc
  3. Omogućite podršku za velike fajlove: proutil cdc -C EnableLargeFiles
  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 šemu iz datoteke cdc.df, koji je uključen u Pro2.
  7. U bazi podataka cdc kreiramo sljedeće korisnike:

pro2adm – za povezivanje sa Pro2 administrativnog panela;
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 dodatnu tehnološku oblast. Svakoj izvornoj bazi podataka Progress OpenEdge potrebno je dodati odvojene skladišne ​​prostore u koje će se duplicirati izvorni podaci i aktivirati sam mehanizam pomoću naredbe proutil.

Primjer procedure za bazu podataka biskvita

  1. Kopiranje iz kataloga C:Pro2db fajl cdcadd.st u bisquit izvorni direktorij baze podataka.
  2. Opisujemo u cdcadd.st fiksne veličine za regije "ReplCDCArea" и "ReplCDCArea_IDX". Možete dodati nove skladišne ​​prostore na mreži: 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 da bi se identificirali pokrenuti procesi:
    a. pro2adm – za povezivanje sa Pro2 administrativnog panela.
    b. pro2etl – za povezivanje ETL procesa (ReplBatch).
    c. pro2cdc – za povezivanje CDC procesa (CDCBatch).

Kreiranje držača šeme za DataServer za Oracle

Zatim trebamo kreirati bazu podataka Schema Holder na serveru gdje će se podaci iz Progress DBMS-a replicirati u Oracle DBMS. DataServer Schema Holder je prazna Progress OpenEdge baza podataka bez podataka korisnika ili aplikacija, koja sadrži mapu korespondencije između izvornih tabela i eksternih Oracle tabela.

Baza podataka Schema Holder za Progress OpenEdge DataServer za Oracle za Pro2 mora se nalaziti na ETL procesnom serveru; kreira se zasebno za svaku granu.

Kako kreirati držač šeme

  1. Raspakirajte Pro2 distribuciju u direktorij /pro2
  2. Kreirajte i idite u direktorij /pro2/dbsh
  3. Kreirajte bazu podataka Schema Holder koristeći naredbu copy $DLC/empty bisquitsh
  4. Izvođenje konverzije bisquitsh 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 kreiranja prazne baze podataka bisquitsh povežite se na njega u modu za jednog korisnika: pro bisquitsh
  6. Idemo na Rječnik podataka: Alati -> Rječnik podataka -> DataServer -> ORACLE Uslužni programi -> Kreiraj DataServer shemu
  7. Pokrenite držač sheme
  8. Postavljanje Oracle DataServer brokera:
    a. Pokrenite AdminServer.
    proadsv -start
    b. Početak Oracle DataServer brokera
    oraman -ime orabroker1 -početak

Postavljanje administrativnog panela i šeme replikacije

Koristeći Pro2 administrativni panel, Pro2 parametri se konfigurišu, uključujući postavljanje šeme replikacije i generisanje ETL procesa (Procesorska biblioteka), primarnih programa za sinhronizaciju (Bulk-Copy Processor), pokretača replikacije i OpenEdge CDC politika. Postoje i primarni alati za praćenje i upravljanje ETL i CDC procesima. Prije svega, postavljamo datoteke parametara.

Kako konfigurirati datoteke parametara

  1. Idi u katalog C:Pro2bpreplScripts
  2. Otvorite datoteku za uređivanje replProc.pf
  3. Dodajte parametre veze u bazu podataka cdc replikacije:
    # Replikacijska baza podataka
    -db cdc -ld repl -H <ime hosta glavne baze podataka> -S <port posrednika baze podataka cdc>
    -U pro2admin -P <lozinka>
  4. Dodaj replProc.pf parametri povezivanja sa izvornim bazama podataka i Shema Holder u obliku datoteka parametara. Ime datoteke parametara mora odgovarati imenu izvorne baze podataka koja se povezuje.
    # Povežite se sa svim repliciranim izvorima BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Dodaj replProc.pf parametri za povezivanje na Schema Holder.
    #Target Pro DB držač šeme
    -db bisquitsh -ld bisquitsh
    -H <ETL ime hosta procesa>
    -S <biskuitsh broker port>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <Oracle broker hostname>
    -DataService orabroker1
  6. Sačuvajte datoteku parametara replProc.pf
  7. Zatim morate kreirati i otvoriti za uređivanje datoteka parametara za svaku povezanu izvornu bazu podataka u direktoriju C:Pro2bpreplScripts: bisquit.pf. Svaka pf datoteka sadrži parametre veze s odgovarajućom bazom podataka, na primjer:
    -db bisquit -ld bisquit -H <ime hosta> -S <port brokera>
    -U pro2admin -P <lozinka>

Da biste konfigurirali Windows prečice, morate otići u direktorij C:Pro2bpreplScripts i uredite prečicu “Pro2 – Administracija”. Da biste to učinili, otvorite svojstva prečice i u retku Počni u označite Pro2 instalacijski direktorij. Slična operacija se mora uraditi za prečice “Pro2 – Editor” i “RunBulkLoader”.

Pro2 Administration Setup: Učitavanje početne konfiguracije

Pokrenimo konzolu.

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Idite na “DB Map”.

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Za povezivanje baza podataka u Pro2 – Administracija idite na karticu DB karta. Dodajte mapiranje izvornih baza podataka - Shema Holder - Oracle.

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Idi na karticu kartografija... Na listi Izvorna baza podataka Po defaultu je odabrana prva povezana izvorna baza podataka. Desno od liste treba da stoji natpis Sve baze podataka povezane — odabrane baze podataka su povezane. Ispod lijevo treba da vidite listu Progress tabela iz bisquita. Desno je lista tabela iz Oracle baze podataka.

Kreiranje SQL shema i baza podataka u Oracleu

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

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Kliknite OK i odaberite direktorij za spremanje SQL shema.

Zatim kreiramo 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 šemu za dodavanje tabela. Nakon promjene sastava Oracle tabela, potrebno je ažurirati SQL šeme u držaču sheme.

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Nakon što je preuzimanje uspješno završeno, izađite iz bisquitsh baze podataka i otvorite Pro2 administrativni panel. Tabele iz Oracle baze podataka trebale bi se pojaviti na kartici Mapiranje na desnoj strani.

Mapiranje tabela

Da biste kreirali mapu replikacije, u Pro2 administrativnoj tabli idite na karticu Mapiranje i odaberite izvornu bazu podataka. Kliknite na Map Tables, odaberite Select Changes na lijevoj strani tablica koje bi trebale biti replicirane u Oracleu, pomaknite ih udesno i potvrdite odabir. Karta će se automatski kreirati za odabrane tabele. Ponavljamo operaciju da kreiramo mapu replikacije za druge izvorne baze podataka.

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Generiranje Pro2 procesorske biblioteke za replikaciju i procesorskih programa za masovno kopiranje

Biblioteka procesora replikacije dizajnirana je za prilagođene procese replikacije (ETL) koji obrađuju Pro2 red replikacije i guraju promjene u Oracle bazu podataka. Programi knjižnice procesora replikacije se automatski spremaju u direktorij nakon generiranja bprepl/repl_proc (parametar PROC_DIRECTORY). Da biste generirali biblioteku procesora replikacije, idite na Alati -> Generiraj kod -> Biblioteka procesora. Nakon što se generiranje završi, programi će se pojaviti u direktoriju bprepl/repl_proc.

Programi Bulk Load Processora se koriste za sinkronizaciju izvornih Progress baza podataka sa ciljnom Oracle bazom podataka na osnovu programskog jezika Progress ABL (4GL). Da ih generišete, idite na stavku menija Alati -> Generiraj kod -> Procesor za masovno kopiranje. U dijaloškom okviru Odabir baze podataka odaberite izvorne baze podataka, premjestite ih na desnu stranu prozora i kliknite OK. Nakon što se generiranje završi, programi će se pojaviti u direktoriju bpreplrepl_mproc.

Postavljanje procesa replikacije u Pro2

Podjela tablica na skupove koje opslužuje zasebna nit replikacije poboljšava performanse i efikasnost Pro2 Oraclea. Po defaultu, sve veze kreirane u mapi replikacije za nove tablice replikacije su povezane s niti broj 1. Preporučljivo je odvojiti tablice u različite niti.

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

Kreirajte i aktivirajte CDC politike

Politike su skup pravila za OpenEdge CDC mehanizam za praćenje promjena u tabelama. U trenutku pisanja, Pro2 podržava samo CDC politike sa nivoom 0, odnosno prati se samo činjenica zabilježiti promjene.

Za kreiranje politike CDC-a, na administrativnoj tabli idite na karticu Mapiranje, odaberite izvornu bazu podataka i kliknite na dugme Dodaj/ukloni pravila. U prozoru Odaberi promjene koji se otvori, odaberite na lijevoj strani i pomaknite udesno tablice za koje trebate kreirati ili izbrisati CDC polisu.

Za aktiviranje, ponovo otvorite karticu Mapiranje, odaberite izvornu bazu podataka i kliknite na dugme (Ne)Aktivirajte politike. Odaberite i premjestite na desnu stranu tabele politike koje treba aktivirati, kliknite OK. Nakon toga su označene zelenom bojom. Korišćenjem (Ne)Aktivirajte politike Također možete deaktivirati CDC politike. Sve transakcije se obavljaju online.

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Nakon što se CDC politika aktivira, bilješke o izmijenjenim zapisima se pohranjuju u prostor za pohranu "ReplCDCArea" prema izvornoj bazi podataka. Ove bilješke će se obraditi posebnim procesom CDCBatch, koji će na osnovu njih kreirati bilješke u Pro2 redu za replikaciju u bazi podataka cdc (repl).

Dakle, imamo dva reda za replikaciju. Prva faza je CDCBatch: iz izvorne baze podataka, podaci prvo idu u srednju CDC bazu podataka. Druga faza je kada se podaci prenose iz CDC baze podataka u Oracle. Ovo je karakteristika trenutne arhitekture i samog proizvoda - do sada programeri nisu mogli uspostaviti direktnu replikaciju.

Primarna sinhronizacija

Nakon što omogućimo CDC mehanizam i postavimo Pro2 server za replikaciju, moramo započeti početnu sinhronizaciju. Naredba za početnu sinhronizaciju:

/pro2/bprepl/Script/replLoad.sh bisquit ime-tablice

Nakon što je početna sinhronizacija završena, procesi replikacije se mogu pokrenuti.

Početak procesa replikacije

Za pokretanje procesa replikacije potrebno je pokrenuti skriptu replbatch.sh. Prije početka, provjerite postoje li replbatch skripte za sve niti - replbatch1, replbatch2, itd. Ako je sve na svom mjestu, otvorite komandnu liniju (npr. proenv), idite na imenik /bprepl/scripts i pokrenite skriptu. U administrativnom panelu provjeravamo da li je odgovarajući proces dobio status RUNNING.

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a

Rezulʹtaty

Kako steći prijatelje između Progress OpenEdge bankarskog sistema i Oracle DBMS-a
Nakon implementacije, uvelike smo ubrzali upload informacija u korporativno skladište podataka. Podaci automatski ulaze u Oracle online. Nema potrebe da gubite vrijeme na izvršavanje dugotrajnih upita za prikupljanje podataka iz različitih sistema. Osim toga, u ovom rješenju proces replikacije može komprimirati podatke, što također ima pozitivan učinak na brzinu. Sada je dnevno usaglašavanje BISKVIT sistema sa drugim sistemima počelo da traje 15-20 minuta umjesto 2-2,5 sata, a potpuno usaglašavanje je trajalo nekoliko sati umjesto dva dana.

izvor: www.habr.com

Dodajte komentar