Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Voor de bediening van de backoffice maakt onze bank sinds 1999 gebruik van het geïntegreerde banksysteem BISKVIT op het Progress OpenEdge-platform, dat wereldwijd veel wordt gebruikt, ook in de financiële sector. Dankzij de prestaties van dit DBMS kunt u tot een miljoen of meer records per seconde in één database (DB) lezen. Onze Progress OpenEdge bedient ongeveer 1,5 miljoen individuele deposito's en ongeveer 22,2 miljoen contracten voor actieve producten (autoleningen en hypotheken), en is ook verantwoordelijk voor alle schikkingen met de toezichthouder (Centrale Bank) en SWIFT.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Door Progress OpenEdge te gebruiken, werden we geconfronteerd met de noodzaak om het te laten werken met het Oracle DBMS. Aanvankelijk was deze bundel het knelpunt van onze infrastructuur - totdat we Pro2 CDC installeerden en configureerden - een Progress-product waarmee u gegevens rechtstreeks online van het Progress DBMS naar het Oracle DBMS kunt verzenden. In dit bericht zullen we u in detail vertellen, met alle valkuilen, hoe u effectief vrienden kunt maken tussen OpenEdge en Oracle.

Hoe het gebeurde: gegevens uploaden naar QCD via het delen van bestanden

Eerst enkele feiten over onze infrastructuur. Het aantal actieve gebruikers van de database bedraagt ​​circa 15 duizend. Het volume van alle productieve databases, inclusief replica en standby, is 600 TB, de grootste database is 16,5 TB. Tegelijkertijd worden de databases voortdurend aangevuld: alleen al het afgelopen jaar is er ongeveer 120 TB aan productieve gegevens toegevoegd. Het systeem wordt aangedreven door 150 frontservers op het x86-platform. De databases worden gehost op 21 IBM-platformservers.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS
Front-endsystemen, verschillende kernbanksystemen en bankdiensten zijn via de Sonic ESB-bus geïntegreerd met OpenEdge Progress (BISCUIT IBS). Het uploaden van gegevens naar QCD gebeurt via bestandsuitwisseling. Tot een bepaald moment had deze oplossing twee grote problemen tegelijk: lage prestaties bij het uploaden van informatie naar een bedrijfsdatawarehouse (CDW) en een lange tijd bij het uitvoeren van gegevensafstemming (afstemming) met andere systemen.
Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS
Daarom gingen we op zoek naar een tool die deze processen kon versnellen. De oplossing voor beide problemen was het nieuwe Progress OpenEdge-product – Pro2 CDC (Change Data Capture). Dus laten we beginnen.

Installeer Progress OpenEdge en Pro2Oracle

Om Pro2 Oracle op de Windows-computer van de beheerder uit te voeren, volstaat het om Progress OpenEdge Developer Kit Classroom Edition te installeren. скачать gratis. Standaard OpenEdge-installatiemappen:

DLC: C:VooruitgangOpenEdge
WRK: C:OpenEdgeWRK

ETL-processen vereisen Progress OpenEdge-licenties versie 11.7+ - namelijk OE DataServer voor Oracle en 4GL Development System. Deze licenties worden meegeleverd met de Pro2. Voor volledige werking van DataServer for Oracle met een externe Oracle-database wordt Full Oracle Client geïnstalleerd.

Op de Oracle-server moet u Oracle Database 12+ installeren, een lege database aanmaken en een gebruiker toevoegen (laten we hem noemen cdc).

Om Pro2Oracle te installeren, downloadt u de nieuwste distributie van het downloadcentrum Voortgangssoftware. Pak het archief uit in een map C:Pro2 (Om Pro2 op Unix te configureren, wordt dezelfde distributie gebruikt en zijn dezelfde configuratieprincipes van toepassing).

Een cdc-replicatiedatabase maken

Replicatiedatabase cdc (vervanging) Pro2 wordt gebruikt om configuratie-informatie op te slaan, inclusief de replicatiekaart, namen van gerepliceerde databases en hun tabellen. Het bevat ook een replicatiewachtrij, bestaande uit opmerkingen over het feit dat een tabelrij in de brondatabase is gewijzigd. Gegevens uit de replicatiewachtrij worden door ETL-processen gebruikt om rijen te identificeren die vanuit de brondatabase naar Oracle moeten worden gekopieerd.

We creëren een aparte cdc-database.

Procedure voor het maken van een database

  1. Op de databaseserver maken we een map aan voor de cdc-database, bijvoorbeeld op de server /database/cdc/.
  2. Maak een dummy voor de cdc-database: kopieer $DLC/lege cdc
  3. Ondersteuning voor grote bestanden inschakelen: proutil cdc -C EnableLargeFiles
  4. We bereiden een script voor voor het starten van de cdc-database. De startparameters moeten vergelijkbaar zijn met de startparameters van de gerepliceerde database.
  5. We starten de cdc-database.
  6. Maak verbinding met de cdc-database en laad het Pro2-schema uit het bestand cdc.df, die wordt meegeleverd met de Pro2.
  7. We maken de volgende gebruikers aan in de cdc-database:

pro2adm – voor verbinding vanaf het Pro2-beheerpaneel;
pro2etl – voor het verbinden van ETL-processen (ReplBatch);
pro2cdc – voor het verbinden van CDC-processen (CDCBatch);

OpenEdge wijzigingsgegevens vastleggen activeren

Laten we nu het CDC-mechanisme zelf inschakelen, met behulp waarvan gegevens zullen worden gerepliceerd naar een extra technologiegebied. Aan elke Progress OpenEdge-brondatabase moet u afzonderlijke opslaggebieden toevoegen waarin de brongegevens worden gedupliceerd, en het mechanisme zelf activeren met de opdracht vruchtbaar.

Voorbeeldprocedure voor de biscuitdatabase

  1. Kopiëren uit de catalogus C:Pro2db файл cdcadd.st naar de bisquit-brondatabasedirectory.
  2. Wij beschrijven in cdcadd.st vaste omvang voor regio's "Vervang CDCArea" и "VervangCDCArea_IDX". U kunt online nieuwe opslagruimtes toevoegen: prostrct addonline bisquit cdcadd.st
  3. OpenEdge CDC activeren:
    proutil bisquit -C enablecdc gebied "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. De volgende gebruikers moeten in de brondatabase worden aangemaakt om actieve processen te identificeren:
    A. pro2adm – voor verbinding vanaf het Pro2-beheerpaneel.
    B. pro2etl – voor het verbinden van ETL-processen (ReplBatch).
    C. pro2cdc – voor het verbinden van CDC-processen (CDCBatch).

Een schemahouder maken voor DataServer voor Oracle

Vervolgens moeten we een Schema Holder-database op de server maken waar gegevens van het Progress DBMS worden gerepliceerd naar het Oracle DBMS. DataServer Schema Holder is een lege Progress OpenEdge-database zonder gebruikers- of applicatiegegevens, met een kaart van correspondentie tussen brontabellen en externe Oracle-tabellen.

De Schema Holder-database voor Progress OpenEdge DataServer voor Oracle voor Pro2 moet zich op de ETL-processerver bevinden; deze wordt voor elke vestiging afzonderlijk aangemaakt.

Hoe u een schemahouder maakt

  1. Pak de Pro2-distributie uit in een map /pro2
  2. Maak en ga naar de map /pro2/dbsh
  3. Maak een Schema Holder-database met behulp van de opdracht kopieer $DLC/lege bisquitsh
  4. Het uitvoeren van de conversie koekjes in de vereiste codering - bijvoorbeeld in UTF-8 als Oracle-databases UTF-8-codering hebben: proutil bisquitsh -C convchar converteert UTF-8
  5. Na het aanmaken van een lege database koekjes maak er verbinding mee in de modus voor één gebruiker: pro koekjes
  6. Laten we naar Data Dictionary gaan: Extra -> Data Dictionary -> DataServer -> ORACLE-hulpprogramma's -> DataServer-schema maken
  7. Start Schemahouder
  8. De Oracle DataServer-broker instellen:
    A. Start AdminServer.
    proadsv-start
    B. Start van de Oracle DataServer-broker
    oraman -naam orabroker1 -start

Het opzetten van het administratieve paneel en het replicatieschema

Met behulp van het Pro2-beheerpaneel worden Pro2-parameters geconfigureerd, inclusief het instellen van het replicatieschema en het genereren van ETL-processen (Processorbibliotheek), primaire synchronisatieprogramma's (Bulk-Copy Processor), replicatietriggers en OpenEdge CDC-beleid. Er zijn ook primaire tools voor het monitoren en beheren van ETL- en CDC-processen. Allereerst stellen we de parameterbestanden in.

Hoe parameterbestanden te configureren

  1. Ga naar de catalogus C:Pro2bpreplScripts
  2. Open het bestand om te bewerken replProc.pf
  3. Voeg verbindingsparameters toe aan de cdc-replicatiedatabase:
    # Replicatiedatabase
    -db cdc -ld repl -H <hostnaam hoofddatabase> -S <databasebrokerpoort cdc>
    -U pro2admin -P <wachtwoord>
  4. Optellen bij replProc.pf verbindingsparameters met brondatabases en Schema Holder in de vorm van parameterbestanden. De naam van het parameterbestand moet overeenkomen met de naam van de brondatabase waarmee verbinding wordt gemaakt.
    # Maak verbinding met alle gerepliceerde bronnen BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Optellen bij replProc.pf parameters voor verbinding met Schema Holder.
    #Target Pro DB Schemahouder
    -db bisquitsh -ld bisquitsh
    -H <ETL-proceshostnaam>
    -S <biskuitsh broker-poort>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACEL
    -S 5162 -H <Oracle Broker-hostnaam>
    -DataService orabroker1
  6. Sla het parameterbestand op replProc.pf
  7. Vervolgens moet u parameterbestanden maken en openen voor elke verbonden brondatabase in de directory C:Pro2bpreplScripts: bisquit.pf. Elk pf-bestand bevat parameters voor verbinding met de overeenkomstige database, bijvoorbeeld:
    -db bisquit -ld bisquit -H <hostnaam> -S <brokerpoort>
    -U pro2admin -P <wachtwoord>

Om Windows-snelkoppelingen te configureren, moet u naar de map gaan C:Pro2bpreplScripts en bewerk de snelkoppeling “Pro2 – Beheer”. Open hiervoor de eigenschappen van de snelkoppeling en in de regel Start in geef de Pro2-installatiemap aan. Een soortgelijke bewerking moet worden uitgevoerd voor de snelkoppelingen “Pro2 – Editor” en “RunBulkLoader”.

Pro2-beheer instellen: initiële configuratie laden

Laten we de console starten.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Ga naar “DB-kaart”.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Om databases te koppelen in Pro2 – Beheer, ga naar het tabblad DB-kaart. Toewijzing van brondatabases toevoegen - Schemahouder - Orakel.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Ga naar het tabblad Mapping. vermeld Brondatabase Standaard is de eerste verbonden brondatabase geselecteerd. Rechts van de lijst moet een inscriptie staan Alle databases verbonden — de geselecteerde databases zijn verbonden. Linksonder ziet u een lijst met Progress-tabellen van bisquit. Aan de rechterkant ziet u een lijst met tabellen uit de Oracle-database.

SQL-schema's en databases maken in Oracle

Als u een replicatiekaart wilt maken, moet u eerst genereren SQL-schema in Orakel. In Pro2 Administration voeren we het menu-item uit Extra -> Code genereren -> Doelschemaen vervolgens in het dialoogvenster Selecteer Database selecteer een of meer brondatabases en verplaats ze naar rechts.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Klik op OK en selecteer de map waarin u de SQL-schema's wilt opslaan.

Vervolgens creëren we de basis. Dit kan bijvoorbeeld via Oracle SQL-ontwikkelaar. Om dit te doen, maken we verbinding met de Oracle-database en laden we het schema voor het toevoegen van tabellen. Nadat u de samenstelling van Oracle-tabellen hebt gewijzigd, moet u de SQL-schema's in de Schema Holder bijwerken.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Nadat het downloaden succesvol is voltooid, verlaat u de bisquitsh-database en opent u het Pro2-beheerpaneel. Tabellen uit de Oracle-database zouden op het tabblad Toewijzing aan de rechterkant moeten verschijnen.

Tabeltoewijzing

Om een ​​replicatiekaart te maken, gaat u in het Pro2-beheerpaneel naar het tabblad Toewijzing en selecteert u de brondatabase. Klik op Map Tables, selecteer Select Changes links van de tabellen die in Oracle moeten worden gerepliceerd, verplaats ze naar rechts en bevestig de selectie. Er wordt automatisch een kaart gemaakt voor de geselecteerde tabellen. We herhalen de bewerking om een ​​replicatiekaart voor andere brondatabases te maken.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Pro2-replicatieprocessorbibliotheek en bulkkopieprocessorprogramma's genereren

De Replication Processor Library is ontworpen voor aangepaste replicatieprocessen (ETL's) die de Pro2-replicatiewachtrij verwerken en wijzigingen naar de Oracle-database pushen. Bibliotheekprogramma's voor replicatieprocessors worden na het genereren automatisch in de map opgeslagen bprepl/repl_proc (PROC_DIRECTORY-parameter). Ga naar om de replicatieprocessorbibliotheek te genereren Extra -> Code genereren -> Processorbibliotheek. Nadat het genereren is voltooid, verschijnen de programma's in de directory bprepl/repl_proc.

Bulk Load Processor-programma's worden gebruikt om de Progress-brondatabases te synchroniseren met de doel-Oracle-database op basis van de Progress ABL (4GL) programmeertaal. Om ze te genereren, ga naar het menu-item Extra -> Code genereren -> Processor voor bulkkopieën. In het dialoogvenster Database selecteren selecteert u de brondatabases, verplaatst u deze naar de rechterkant van het venster en klikt u op OK. Nadat het genereren is voltooid, verschijnen de programma's in de directory bpreplrepl_mproc.

Replicatieprocessen opzetten in Pro2

Het opsplitsen van tabellen in sets die worden bediend door een afzonderlijke replicatiethread verbetert de prestaties en efficiëntie van Pro2 Oracle. Standaard worden alle verbindingen die in de replicatietoewijzing voor nieuwe replicatietabellen zijn gemaakt, gekoppeld aan threadnummer 1. Het wordt aanbevolen om tabellen in verschillende threads te scheiden.

Informatie over de status van replicatiethreads wordt weergegeven op het Pro2-beheerscherm op het tabblad Monitor in de sectie Replicatiestatus. Een gedetailleerde beschrijving van parameterwaarden is te vinden in de Pro2-documentatie (directory C:Pro2Docs).

Creëer en activeer CDC-beleid

Beleid is een set regels voor de OpenEdge CDC-engine om wijzigingen in tabellen te controleren. Op het moment van schrijven ondersteunt Pro2 alleen CDC-beleid met niveau 0, dat wil zeggen dat alleen feiten worden gecontroleerd wijzigingen registreren.

Om een ​​CDC-beleid aan te maken, gaat u in het beheerderspaneel naar het tabblad Toewijzing, selecteert u de brondatabase en klikt u op de knop Beleid toevoegen/verwijderen. In het geopende venster Wijzigingen selecteren selecteert u aan de linkerkant en verplaatst u naar rechts de tabellen waarvoor u een CDC-beleid moet maken of verwijderen.

Om te activeren opent u opnieuw het tabblad Mapping, selecteert u de brondatabase en klikt u op de knop Beleid (in)activeren. Selecteer en verplaats het beleid dat moet worden geactiveerd naar de rechterkant van de tabel. Klik op OK. Hierna zijn ze groen gemarkeerd. Door het gebruiken van Beleid (in)activeren U kunt het CDC-beleid ook deactiveren. Alle transacties worden online uitgevoerd.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Nadat het CDC-beleid is geactiveerd, worden aantekeningen over gewijzigde records opgeslagen in het opslaggebied "Vervang CDCArea" volgens de brondatabase. Deze aantekeningen worden via een speciaal proces verwerkt CDCBatch, die op basis daarvan notities zal maken in de Pro2-replicatiewachtrij in de database cdc (vervanging).

We hebben dus twee wachtrijen voor replicatie. De eerste fase is CDCBatch: vanuit de brondatabase gaan de gegevens eerst naar de tussenliggende CDC-database. De tweede fase is wanneer gegevens worden overgedragen van de CDC-database naar Oracle. Dit is een kenmerk van de huidige architectuur en het product zelf - tot nu toe zijn de ontwikkelaars er niet in geslaagd directe replicatie tot stand te brengen.

Primaire synchronisatie

Nadat we het CDC-mechanisme hebben ingeschakeld en de Pro2-replicatieserver hebben ingesteld, moeten we de initiële synchronisatie starten. Initiële synchronisatieopdracht:

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

Nadat de initiële synchronisatie is voltooid, kunnen replicatieprocessen worden gestart.

Start van replicatieprocessen

Om replicatieprocessen te starten, moet u een script uitvoeren replbatch.sh. Voordat u begint, moet u ervoor zorgen dat er replbatch-scripts zijn voor alle threads - replbatch1, replbatch2, enz. Als alles op zijn plaats staat, opent u de opdrachtregel (bijvoorbeeld proenv), ga naar de map /bprepl/scripts en start het script. In het administratieve paneel controleren we of het bijbehorende proces de status RUNNING heeft gekregen.

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS

Bevindingen

Hoe u vrienden kunt maken tussen het Progress OpenEdge-banksysteem en het Oracle DBMS
Na de implementatie hebben we het uploaden van informatie naar het bedrijfsdatawarehouse aanzienlijk versneld. De gegevens komen automatisch online in Oracle terecht. U hoeft geen tijd te verspillen aan het uitvoeren van langlopende zoekopdrachten om gegevens uit verschillende systemen te verzamelen. Bovendien kan bij deze oplossing het replicatieproces gegevens comprimeren, wat ook een positief effect heeft op de snelheid. Nu begon de dagelijkse afstemming van het BISKVIT-systeem met andere systemen 15-20 minuten te duren in plaats van 2-2,5 uur, en een volledige afstemming duurde enkele uren in plaats van twee dagen.

Bron: www.habr.com

Voeg een reactie