Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

Siden 1999 har vores bank brugt det integrerede banksystem BISKVIT på Progress OpenEdge platformen til at servicere backoffice, som er meget udbredt i hele verden, også i den finansielle sektor. Ydeevnen af ​​dette DBMS giver dig mulighed for at læse op til en million eller flere poster pr. sekund i en database (DB). Vores Progress OpenEdge servicerer omkring 1,5 millioner individuelle indskud og omkring 22,2 millioner kontrakter for aktive produkter (billån og realkreditlån), og er også ansvarlig for alle afregninger med regulatoren (Centralbanken) og SWIFT.

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

Ved at bruge Progress OpenEdge stod vi over for behovet for at få det til at fungere med Oracle DBMS. I starten var denne pakke flaskehalsen i vores infrastruktur - indtil vi installerede og konfigurerede Pro2 CDC - et Progress-produkt, der giver dig mulighed for at sende data fra Progress DBMS til Oracle DBMS direkte online. I dette indlæg vil vi fortælle dig i detaljer, med alle faldgruberne, hvordan du effektivt får venner mellem OpenEdge og Oracle.

Sådan skete det: upload af data til QCD via fildeling

Først nogle fakta om vores infrastruktur. Antallet af aktive brugere af databasen er cirka 15 tusinde. Volumen af ​​alle produktive databaser, inklusive replika og standby, er 600 TB, den største database er 16,5 TB. Samtidig bliver databaserne konstant genopfyldt: Alene i løbet af det sidste år er der blevet tilføjet omkring 120 TB produktive data. Systemet drives af 150 frontservere på x86-platformen. Databaserne hostes på 21 IBM-platformsservere.

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS
Front-end-systemer, forskellige kernebanksystemer og banktjenester er integreret med OpenEdge Progress (BISCUIT IBS) via Sonic ESB-bussen. Upload af data til QCD sker gennem filudveksling. Indtil et vist tidspunkt havde denne løsning to store problemer på én gang - lav ydeevne ved upload af information til et virksomhedsdatavarehus (CDW) og lang tid til at udføre dataafstemning (afstemning) med andre systemer.
Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS
Derfor begyndte vi at lede efter et værktøj, der kunne fremskynde disse processer. Løsningen på begge problemer var det nye Progress OpenEdge-produkt – Pro2 CDC (Change Data Capture). Så lad os begynde.

Installer Progress OpenEdge og Pro2Oracle

For at køre Pro2 Oracle på administratorens Windows-computer er det nok at installere Progress OpenEdge Developer Kit Classroom Edition, som kan скачать gratis. Standard OpenEdge installationsmapper:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL-processer kræver Progress OpenEdge-licenser version 11.7+ - nemlig OE DataServer for Oracle og 4GL Development System. Disse licenser er inkluderet i Pro2. For fuld drift af DataServer for Oracle med en ekstern Oracle-database er Full Oracle Client installeret.

På Oracle-serveren skal du installere Oracle Database 12+, oprette en tom database og tilføje en bruger (lad os kalde ham cdc).

For at installere Pro2Oracle skal du downloade den seneste distribution fra downloadcenteret Progress-software. Pak arkivet ud i en mappe C:Pro2 (For at konfigurere Pro2 på Unix, bruges den samme distribution, og de samme konfigurationsprincipper gælder).

Oprettelse af en cdc-replikeringsdatabase

Replikeringsdatabase cdc (repl) Pro2 bruges til at gemme konfigurationsoplysninger, herunder replikeringskortet, navne på replikerede databaser og deres tabeller. Den indeholder også en replikeringskø, der består af noter om, at en tabelrække i kildedatabasen er ændret. Data fra replikeringskøen bruges af ETL-processer til at identificere rækker, der skal kopieres til Oracle fra kildedatabasen.

Vi opretter en separat cdc-database.

Fremgangsmåde for oprettelse af en database

  1. På databaseserveren opretter vi en mappe til cdc-databasen - for eksempel på serveren /database/cdc/.
  2. Opret en dummy til cdc-databasen: procopy $DLC/tom cdc
  3. Aktiver understøttelse af store filer: proutil cdc -C EnableLargeFiles
  4. Vi forbereder et script til at starte cdc-databasen. Startparametrene skal svare til startparametrene for den replikerede database.
  5. Vi starter cdc-databasen.
  6. Opret forbindelse til cdc-databasen og indlæs Pro2-skemaet fra filen cdc.df, som følger med Pro2.
  7. Vi opretter følgende brugere i cdc-databasen:

pro2adm – til tilslutning fra Pro2-administrationspanelet;
pro2etl – til at forbinde ETL-processer (ReplBatch);
pro2cdc – til at forbinde CDC-processer (CDCBatch);

Aktivering af OpenEdge Change Data Capture

Lad os nu tænde selve CDC-mekanismen, ved hjælp af hvilken data vil blive replikeret til et yderligere teknologiområde. Til hver Progress OpenEdge-kildedatabase skal du tilføje separate lagerområder, hvori kildedataene vil blive duplikeret, og aktivere selve mekanismen ved hjælp af kommandoen proutil.

Eksempel på procedure for bisquit-databasen

  1. Kopiering fra kataloget C: Pro2db файл cdcadd.st til bisquit-kildedatabasen.
  2. Vi beskriver i cdcadd.st faste størrelsesudstrækninger for regioner "ReplCDCArea" и "ReplCDCArea_IDX". Du kan tilføje nye lagerområder online: prostrct addonline bisquit cdcadd.st
  3. Aktiver OpenEdge CDC:
    proutil bisquit -C enablecdc area "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. Følgende brugere skal oprettes i kildedatabasen for at identificere kørende processer:
    en. pro2adm – til tilslutning fra Pro2-administrationspanelet.
    b. pro2etl – til at forbinde ETL-processer (ReplBatch).
    c. pro2cdc – til at forbinde CDC-processer (CDCBatch).

Oprettelse af en skemaholder til DataServer for Oracle

Dernæst skal vi oprette en Schema Holder-database på serveren, hvor data fra Progress DBMS vil blive replikeret til Oracle DBMS. DataServer Schema Holder er en tom Progress OpenEdge-database uden brugere eller applikationsdata, der indeholder et kort over korrespondance mellem kildetabeller og eksterne Oracle-tabeller.

Schema Holder-databasen for Progress OpenEdge DataServer til Oracle for Pro2 skal være placeret på ETL-processerveren; den oprettes separat for hver gren.

Sådan opretter du en skemaholder

  1. Pak Pro2-distributionen ud i en mappe /pro2
  2. Opret og gå til biblioteket /pro2/dbsh
  3. Opret en Schema Holder-database ved hjælp af kommandoen kopier $DLC/tom bisquitsh
  4. Udførelse af konverteringen bisquitsh ind i den påkrævede kodning - for eksempel i UTF-8, hvis Oracle-databaser har UTF-8-kodning: proutil bisquitsh -C convchar konvertere UTF-8
  5. Efter at have oprettet en tom database bisquitsh opret forbindelse til den i enkeltbrugertilstand: pro bisquitsh
  6. Lad os gå til Data Dictionary: Værktøjer -> Dataordbog -> DataServer -> ORACLE Utilities -> Opret DataServer-skema
  7. Start Schema Holder
  8. Opsætning af Oracle DataServer-mægleren:
    en. Start AdminServer.
    proadsv -start
    b. Start af Oracle DataServer-mægleren
    oraman -navn orabroker1 -start

Opsætning af det administrative panel og replikeringsskema

Ved hjælp af Pro2-administrationspanelet konfigureres Pro2-parametre, herunder opsætning af replikeringsskemaet og generering af ETL-processer (Processor Library), primære synkroniseringsprogrammer (Bulk-Copy Processor), replikeringsudløsere og OpenEdge CDC-politikker. Der er også primære værktøjer til overvågning og styring af ETL- og CDC-processer. Først og fremmest sætter vi parameterfilerne op.

Sådan konfigureres parameterfiler

  1. Gå til kataloget C:Pro2bpreplScripts
  2. Åbn filen til redigering replProc.pf
  3. Tilføj forbindelsesparametre til cdc-replikeringsdatabasen:
    # Replikeringsdatabase
    -db cdc -ld repl -H <hoveddatabaseværtsnavn> -S <databasemæglerport cdc>
    -U pro2admin -P <adgangskode>
  4. Tilføj til replProc.pf forbindelsesparametre til kildedatabaser og Schema Holder i form af parameterfiler. Navnet på parameterfilen skal svare til navnet på den kildedatabase, der tilsluttes.
    # Opret forbindelse til alle replikerede kilder BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Tilføj til replProc.pf parametre for tilslutning til Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <ETL-procesværtsnavn>
    -S <biskuitsh broker port>
    -db bisquitsql
    -ld bisquitsql
    -dt ORAKEL
    -S 5162 -H <Oracle broker værtsnavn>
    -DataService orabroker1
  6. Gem parameterfilen replProc.pf
  7. Dernæst skal du oprette og åbne for redigering af parameterfiler for hver tilsluttet kildedatabase i mappen C:Pro2bpreplScripts: bisquit.pf. Hver pf-fil indeholder parametre for tilslutning til den tilsvarende database, for eksempel:
    -db bisquit -ld bisquit -H <værtsnavn> -S <mæglerport>
    -U pro2admin -P <adgangskode>

For at konfigurere Windows-genveje skal du gå til mappen C:Pro2bpreplScripts og rediger genvejen "Pro2 - Administration". For at gøre dette skal du åbne genvejens egenskaber og i linjen Start ind angiv Pro2 installationsmappen. En lignende handling skal udføres for genvejene "Pro2 - Editor" og "RunBulkLoader".

Pro2 Administration Setup: Indlæser indledende konfiguration

Lad os starte konsollen.

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

Gå til "DB Map".

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

For at linke databaser i Pro2 – Administration skal du gå til fanen DB kort. Tilføj kortlægning af kildedatabaser - Skemaholder - Oracle.

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

Gå til fanen Kortlægning. Opført Kildedatabase Som standard er den første tilsluttede kildedatabase valgt. Til højre for listen skal der være en inskription Alle databaser tilsluttet — de valgte databaser er forbundet. Nedenfor til venstre bør du se en liste over fremskridtstabeller fra bisquit. Til højre er en liste over tabeller fra Oracle-databasen.

Oprettelse af SQL-skemaer og databaser i Oracle

For at oprette et replikeringskort skal du først generere SQL skema i Oracle. I Pro2 Administration udfører vi menupunktet Værktøjer -> Generer kode -> Målskema, og derefter i dialogboksen Vælg Database vælg en eller flere kildedatabaser og flyt dem til højre.

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

Klik på OK, og vælg den mappe, der skal gemme SQL-skemaerne.

Dernæst skaber vi basen. Dette kan for eksempel ske via Oracle SQL Udvikler. For at gøre dette opretter vi forbindelse til Oracle-databasen og indlæser skemaet til tilføjelse af tabeller. Efter at have ændret sammensætningen af ​​Oracle-tabeller, skal du opdatere SQL-skemaerne i Schema Holder.

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

Når overførslen er gennemført, skal du afslutte bisquitsh-databasen og åbne Pro2-administrationspanelet. Tabeller fra Oracle-databasen skal vises på fanen Mapping til højre.

Tabelkortlægning

For at oprette et replikeringskort skal du i Pro2-administrationspanelet gå til fanen Mapping og vælge kildedatabasen. Klik på Kort tabeller, vælg Vælg ændringer til venstre for de tabeller, der skal replikeres i Oracle, flyt dem til højre og bekræft valget. Der oprettes automatisk et kort for de valgte tabeller. Vi gentager operationen for at oprette et replikeringskort for andre kildedatabaser.

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

Generering af Pro2-replikeringsprocessorbibliotek og bulkkopieringsprocessorprogrammer

Replikeringsprocessorbiblioteket er designet til tilpassede replikeringsprocesser (ETL'er), der behandler Pro2-replikeringskøen og pusher ændringer til Oracle-databasen. Replikeringsprocessorbiblioteksprogrammer gemmes automatisk i biblioteket efter generering bprepl/repl_proc (PROC_DIRECTORY parameter). For at generere replikeringsprocessorbiblioteket skal du gå til Værktøjer -> Generer kode -> Processorbibliotek. Når genereringen er fuldført, vises programmerne i mappen bprepl/repl_proc.

Bulk Load Processor-programmer bruges til at synkronisere kildeprogress-databaser med mål-Oracle-databasen baseret på programmeringssproget Progress ABL (4GL). For at generere dem, gå til menupunktet Værktøjer -> Generer kode -> Bulk-Copy Processor. I dialogboksen Vælg database skal du vælge kildedatabaserne, flytte dem til højre side af vinduet og klikke OK. Når genereringen er fuldført, vises programmerne i biblioteket bpreplrepl_mproc.

Opsætning af replikeringsprocesser i Pro2

Opdeling af tabeller i sæt, der betjenes af en separat replikeringstråd, forbedrer ydeevnen og effektiviteten af ​​Pro2 Oracle. Som standard er alle forbindelser, der er oprettet i replikeringskortet til nye replikeringstabeller, knyttet til tråd nummer 1. Det anbefales at adskille tabeller i forskellige tråde.

Oplysninger om status for replikeringstråde vises på Pro2 Administration-skærmen på fanen Monitor i afsnittet Replikeringsstatus. En detaljeret beskrivelse af parameterværdier kan findes i Pro2-dokumentationen (katalog C:Pro2Docs).

Opret og aktiver CDC-politikker

Politikker er et sæt regler for OpenEdge CDC-motoren til at overvåge ændringer af tabeller. I skrivende stund understøtter Pro2 kun CDC-politikker med niveau 0, det vil sige, at kun fakta overvåges registrere ændringer.

For at oprette en CDC-politik skal du på det administrative panel gå til fanen Mapping, vælge kildedatabasen og klikke på knappen Tilføj/fjern politikker. I vinduet Vælg ændringer, der åbnes, skal du vælge i venstre side og flytte til højre de tabeller, som du skal oprette eller slette en CDC-politik for.

For at aktivere skal du åbne fanen Kortlægning igen, vælge kildedatabasen og klikke på knappen (In) Aktiver politikker. Vælg og flyt til højre side af tabellen de politikker, der skal aktiveres, klik på OK. Herefter er de markeret med grønt. Ved hjælp af (In) Aktiver politikker Du kan også deaktivere CDC-politikker. Alle transaktioner udføres online.

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

Når CDC-politikken er aktiveret, gemmes noter om ændrede poster i lagerområdet "ReplCDCArea" ifølge kildedatabasen. Disse notater vil blive behandlet gennem en særlig proces CDCBatch, som baseret på dem vil oprette noter i Pro2 replikeringskøen i databasen cdc (repl).

Vi har således to køer til replikering. Den første fase er CDCBatch: fra kildedatabasen går dataene først til den mellemliggende CDC-database. Den anden fase er, når data overføres fra CDC-databasen til Oracle. Dette er et træk ved den nuværende arkitektur og selve produktet - indtil videre har udviklerne ikke været i stand til at etablere direkte replikering.

Primær synkronisering

Efter at have aktiveret CDC-mekanismen og opsat Pro2-replikeringsserveren, skal vi starte den indledende synkronisering. Indledende synkroniseringskommando:

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

Efter den indledende synkronisering er fuldført, kan replikeringsprocesser startes.

Start af replikationsprocesser

For at starte replikeringsprocesser skal du køre et script replbatch.sh. Før du starter, skal du sørge for, at der er replbatch-scripts til alle tråde - replbatch1, replbatch2 osv. Hvis alt er på plads, skal du åbne kommandolinjen (f.eks. proenv), gå til biblioteket /bprepl/scripts og start scriptet. I det administrative panel tjekker vi, at den tilsvarende proces har fået statussen KØRER.

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS

Fund

Sådan får du venner mellem Progress OpenEdge-banksystemet og Oracle DBMS
Efter implementeringen accelererede vi i høj grad uploaden af ​​information til virksomhedens datavarehus. Dataene kommer automatisk ind i Oracle online. Der er ingen grund til at spilde tid på at køre nogle langvarige forespørgsler for at indsamle data fra forskellige systemer. Derudover kan replikeringsprocessen i denne løsning komprimere data, hvilket også har en positiv effekt på hastigheden. Nu begyndte den daglige afstemning af BISKVIT-systemet med andre systemer at tage 15-20 minutter i stedet for 2-2,5 timer, og en fuldstændig afstemning tog flere timer i stedet for to dage.

Kilde: www.habr.com

Tilføj en kommentar