Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

Sedan 1999, för att betjäna backoffice, har vår bank använt det integrerade banksystemet BISKVIT på Progress OpenEdge-plattformen, som används flitigt över hela världen, inklusive inom finanssektorn. Prestandan för detta DBMS låter dig läsa upp till en miljon eller fler poster per sekund i en databas (DB). Vår Progress OpenEdge betjänar cirka 1,5 miljoner individuella insättningar och cirka 22,2 miljoner kontrakt för aktiva produkter (billån och bolån), och ansvarar även för alla uppgörelser med tillsynsmyndigheten (Centralbanken) och SWIFT.

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

Genom att använda Progress OpenEdge stod vi inför behovet av att få det att fungera med Oracle DBMS. Från början var detta paket flaskhalsen i vår infrastruktur - tills vi installerade och konfigurerade Pro2 CDC - en Progress-produkt som låter dig skicka data från Progress DBMS till Oracle DBMS direkt, online. I det här inlägget kommer vi att berätta i detalj, med alla fallgropar, hur du effektivt får vänner mellan OpenEdge och Oracle.

Hur det gick till: ladda upp data till QCD via fildelning

Först lite fakta om vår infrastruktur. Antalet aktiva användare av databasen är cirka 15 tusen. Volymen av alla produktiva databaser, inklusive replika och standby, är 600 TB, den största databasen är 16,5 TB. Samtidigt fylls databaserna ständigt på: bara under det senaste året har cirka 120 TB produktiv data lagts till. Systemet drivs av 150 frontservrar på x86-plattformen. Databaserna finns på 21 IBM-plattformsservrar.

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS
Front-end-system, olika kärnbankssystem och banktjänster är integrerade med OpenEdge Progress (BISCUIT IBS) via Sonic ESB-bussen. Uppladdning av data till QCD sker genom filutbyte. Fram till en viss tidpunkt hade denna lösning två stora problem samtidigt - låg prestanda för att ladda upp information till ett företags datalager (CDW) och lång tid för att utföra dataavstämning (avstämning) med andra system.
Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS
Därför började vi leta efter ett verktyg som kunde påskynda dessa processer. Lösningen på båda problemen var den nya Progress OpenEdge-produkten – Pro2 CDC (Change Data Capture). Så, låt oss börja.

Installera Progress OpenEdge och Pro2Oracle

För att köra Pro2 Oracle på administratörens Windows-dator räcker det med att installera Progress OpenEdge Developer Kit Classroom Edition, som kan hämta gratis. Standardinstallationskataloger för OpenEdge:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL-processer kräver Progress OpenEdge-licenser version 11.7+ - nämligen OE DataServer för Oracle och 4GL Development System. Dessa licenser ingår i Pro2. För full drift av DataServer för Oracle med en fjärrbaserad Oracle-databas installeras Full Oracle Client.

På Oracle-servern måste du installera Oracle Database 12+, skapa en tom databas och lägga till en användare (låt oss ringa honom cdc).

För att installera Pro2Oracle, ladda ner den senaste distributionen från nedladdningscentret Progress-programvara. Packa upp arkivet i en katalog C:Pro2 (För att konfigurera Pro2 på Unix används samma distribution och samma konfigurationsprinciper gäller).

Skapa en cdc-replikeringsdatabas

Replikeringsdatabas cdc (repl) Pro2 används för att lagra konfigurationsinformation, inklusive replikeringskartan, namn på replikerade databaser och deras tabeller. Den innehåller också en replikeringskö, bestående av anteckningar om att en tabellrad i källdatabasen har ändrats. Data från replikeringskön används av ETL-processer för att identifiera rader som behöver kopieras till Oracle från källdatabasen.

Vi skapar en separat cdc-databas.

Procedur för att skapa en databas

  1. På databasservern skapar vi en katalog för cdc-databasen - till exempel på servern /databas/cdc/.
  2. Skapa en dummy för cdc-databasen: kopiera $DLC/tom cdc
  3. Aktivera stöd för stora filer: proutil cdc -C EnableLargeFiles
  4. Vi förbereder ett skript för att starta cdc-databasen. Startparametrarna måste likna startparametrarna för den replikerade databasen.
  5. Vi startar cdc-databasen.
  6. Anslut till cdc-databasen och ladda Pro2-schemat från filen cdc.df, som ingår i Pro2.
  7. Vi skapar följande användare i cdc-databasen:

pro2adm – för anslutning från Pro2-administrationspanelen;
pro2etl – för att ansluta ETL-processer (ReplBatch);
pro2cdc – för att ansluta CDC-processer (CDCBatch);

Aktiverar OpenEdge Change Data Capture

Låt oss nu slå på själva CDC-mekanismen, med hjälp av vilken data kommer att replikeras till ett ytterligare teknikområde. Till varje Progress OpenEdge-källdatabas måste du lägga till separata lagringsområden där källdata kommer att dupliceras och aktivera själva mekanismen med kommandot proutil.

Exempel tillvägagångssätt för bisquitdatabasen

  1. Kopiering från katalogen C:Pro2db файл cdcadd.st till källdatabaskatalogen för bisquit.
  2. Vi beskriver i cdcadd.st fasta omfattningar för regioner "ReplCDCArea" и "ReplCDCArea_IDX". Du kan lägga till nya lagringsutrymmen online: prostrct addonline bisquit cdcadd.st
  3. Aktivera OpenEdge CDC:
    proutil bisquit -C enablecdc area "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. Följande användare måste skapas i källdatabasen för att identifiera pågående processer:
    a. pro2adm – för anslutning från Pro2-administrationspanelen.
    b. pro2etl – för att ansluta ETL-processer (ReplBatch).
    c. pro2cdc – för att ansluta CDC-processer (CDCBatch).

Skapa en schemahållare för DataServer för Oracle

Därefter måste vi skapa en Schema Holder-databas på servern där data från Progress DBMS kommer att replikeras till Oracle DBMS. DataServer Schema Holder är en tom Progress OpenEdge-databas utan användare eller applikationsdata, som innehåller en karta över överensstämmelse mellan källtabeller och externa Oracle-tabeller.

Schema Holder-databasen för Progress OpenEdge DataServer för Oracle för Pro2 måste finnas på ETL-processservern, den skapas separat för varje gren.

Hur man skapar en Schema Holder

  1. Packa upp Pro2-distributionen i en katalog /pro2
  2. Skapa och gå till katalogen /pro2/dbsh
  3. Skapa en Schema Holder-databas med kommandot kopiera $DLC/tom bisquitsh
  4. Utför konverteringen bisquitsh till den obligatoriska kodningen - till exempel i UTF-8 om Oracle-databaser har UTF-8-kodning: proutil bisquitsh -C convchar convert UTF-8
  5. Efter att ha skapat en tom databas bisquitsh anslut till den i enanvändarläge: pro bisquitsh
  6. Låt oss gå till Data Dictionary: Verktyg -> Data Dictionary -> DataServer -> ORACLE Utilities -> Skapa DataServer Schema
  7. Starta Schema Holder
  8. Konfigurera Oracle DataServer-mäklaren:
    a. Starta AdminServer.
    proadsv -start
    b. Start av Oracle DataServer-mäklaren
    oraman -namn orabroker1 -start

Konfigurera den administrativa panelen och replikeringsschemat

Med hjälp av Pro2-administrationspanelen konfigureras Pro2-parametrar, inklusive inställning av replikeringsschemat och generering av ETL-processer (Processor Library), primära synkroniseringsprogram (Bulk-Copy Processor), replikeringsutlösare och OpenEdge CDC-policyer. Det finns också primära verktyg för att övervaka och hantera ETL- och CDC-processer. Först och främst ställer vi in ​​parameterfilerna.

Hur man konfigurerar parameterfiler

  1. Gå till katalogen C:Pro2bpreplScripts
  2. Öppna filen för redigering replProc.pf
  3. Lägg till anslutningsparametrar till cdc-replikeringsdatabasen:
    # Replikeringsdatabas
    -db cdc -ld repl -H <huvuddatabas värdnamn> -S <databasmäklarport cdc>
    -U pro2admin -P <lösenord>
  4. Lägg till replProc.pf anslutningsparametrar till källdatabaser och Schema Holder i form av parameterfiler. Namnet på parameterfilen måste matcha namnet på källdatabasen som ansluts.
    # Anslut till alla replikerade källor BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Lägg till replProc.pf parametrar för att ansluta till Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <ETL process hostname>
    -S <biskuitsh broker port>
    -db bisquitsql
    -ld bisquitsql
    -dt ORAKEL
    -S 5162 -H <Oracle broker hostname>
    -DataService orabroker1
  6. Spara parameterfilen replProc.pf
  7. Därefter måste du skapa och öppna för redigering av parameterfiler för varje ansluten källdatabas i katalogen C:Pro2bpreplScripts: bisquit.pf. Varje pf-fil innehåller parametrar för att ansluta till motsvarande databas, till exempel:
    -db bisquit -ld bisquit -H <värdnamn> -S <mäklarport>
    -U pro2admin -P <lösenord>

För att konfigurera Windows-genvägar måste du gå till katalogen C:Pro2bpreplScripts och redigera genvägen "Pro2 – Administration". För att göra detta, öppna egenskaperna för genvägen och i raden Starta i ange installationskatalogen för Pro2. En liknande operation måste göras för genvägarna "Pro2 – Editor" och "RunBulkLoader".

Pro2 Administration Setup: Laddar initial konfiguration

Låt oss starta konsolen.

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

Gå till "DB Map".

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

För att länka databaser i Pro2 – Administration, gå till fliken DB Karta. Lägg till mappning av källdatabaser - Schemahållare - Oracle.

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

Gå till fliken Kartläggning. På listan Källdatabas Som standard är den första anslutna källdatabasen vald. Till höger om listan ska det finnas en inskription Alla databaser anslutna — de valda databaserna är anslutna. Nedan till vänster bör du se en lista över Progress-tabeller från bisquit. Till höger finns en lista över tabeller från Oracle-databasen.

Skapa SQL-scheman och databaser i Oracle

För att skapa en replikeringskarta måste du först generera SQL-schema i Oracle. I Pro2 Administration kör vi menyalternativet Verktyg -> Generera kod -> Målschema, sedan i dialogrutan Välj databas välj en eller flera källdatabaser och flytta dem till höger.

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

Klicka på OK och välj katalogen för att spara SQL-schemana.

Därefter skapar vi basen. Detta kan göras till exempel via Oracle SQL -utvecklare. För att göra detta ansluter vi till Oracle-databasen och laddar schemat för att lägga till tabeller. Efter att ha ändrat sammansättningen av Oracle-tabeller måste du uppdatera SQL-schemana i Schema Holder.

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

När nedladdningen är klar, avsluta bisquitsh-databasen och öppna Pro2-administrationspanelen. Tabeller från Oracle-databasen bör visas på fliken Mapping till höger.

Tabellkartering

För att skapa en replikeringskarta, i Pro2-administrationspanelen, gå till fliken Mappning och välj källdatabasen. Klicka på Karta tabeller, välj Välj ändringar till vänster om tabellerna som ska replikeras i Oracle, flytta dem till höger och bekräfta valet. En karta skapas automatiskt för de valda tabellerna. Vi upprepar operationen för att skapa en replikeringskarta för andra källdatabaser.

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

Generera Pro2-replikeringsprocessorbibliotek och program för bulkkopiering

Replikeringsprocessorbiblioteket är designat för anpassade replikeringsprocesser (ETL) som bearbetar Pro2-replikeringskön och driver ändringar till Oracle-databasen. Replikeringsprocessorbiblioteksprogram sparas automatiskt i katalogen efter generering bprepl/repl_proc (PROC_DIRECTORY-parameter). För att generera replikeringsprocessorbiblioteket, gå till Verktyg -> Generera kod -> Processorbibliotek. När genereringen är klar visas programmen i katalogen bprepl/repl_proc.

Bulk Load Processor-program används för att synkronisera källprogressdatabaser med måldatabasen för Oracle baserad på programmeringsspråket Progress ABL (4GL). För att generera dem, gå till menyalternativet Verktyg -> Generera kod -> Bulk-Copy Processor. I dialogrutan Välj databas väljer du källdatabaserna, flyttar dem till höger sida av fönstret och klickar OK. När genereringen är klar visas programmen i katalogen bpreplrepl_mproc.

Ställa in replikeringsprocesser i Pro2

Att dela upp tabeller i uppsättningar som betjänas av en separat replikeringstråd förbättrar prestanda och effektivitet hos Pro2 Oracle. Som standard är alla anslutningar som skapas i replikeringskartan för nya replikeringstabeller associerade med tråd nummer 1. Det rekommenderas att separera tabeller i olika trådar.

Information om status för replikeringstrådar visas på Pro2 Administration-skärmen på fliken Monitor i avsnittet Replikeringsstatus. En detaljerad beskrivning av parametervärden finns i Pro2-dokumentationen (katalog C:Pro2Docs).

Skapa och aktivera CDC-policyer

Policyer är en uppsättning regler för OpenEdge CDC-motorn för att övervaka ändringar i tabeller. I skrivande stund stöder Pro2 endast CDC-policyer med nivå 0, det vill säga endast fakta övervakas registrera ändringar.

För att skapa en CDC-policy, på den administrativa panelen, gå till fliken Mappning, välj källdatabasen och klicka på knappen Lägg till/ta bort policyer. I fönstret Välj ändringar som öppnas väljer du på vänster sida och flyttar till höger de tabeller som du behöver skapa eller ta bort en CDC-policy för.

För att aktivera, öppna fliken Mapping igen, välj källdatabasen och klicka på knappen (In)aktivera policyer. Välj och flytta till höger sida av tabellen de policyer som behöver aktiveras, klicka på OK. Efter detta är de markerade med grönt. Genom att använda (In)aktivera policyer Du kan också inaktivera CDC-policyer. Alla transaktioner utförs online.

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

När CDC-policyn har aktiverats sparas anteckningar om modifierade poster i lagringsområdet "ReplCDCArea" enligt källdatabasen. Dessa anteckningar kommer att behandlas genom en speciell process CDCBatch, som baserat på dem kommer att skapa anteckningar i Pro2-replikeringskön i databasen cdc (repl).

Således har vi två köer för replikering. Det första steget är CDCBatch: från källdatabasen går data först till den mellanliggande CDC-databasen. Det andra steget är när data överförs från CDC-databasen till Oracle. Detta är en egenskap hos den nuvarande arkitekturen och själva produkten - hittills har utvecklarna inte kunnat etablera direkt replikering.

Primär synkronisering

Efter att ha aktiverat CDC-mekanismen och konfigurerat Pro2-replikeringsservern måste vi starta den första synkroniseringen. Inledande synkroniseringskommando:

/pro2/bprepl/Script/replLoad.sh bisquit-tabellnamn

Efter att den första synkroniseringen är klar kan replikeringsprocesser startas.

Start av replikeringsprocesser

För att starta replikeringsprocesser måste du köra ett skript replbatch.sh. Innan du börjar, se till att det finns replbatch-skript för alla trådar - replbatch1, replbatch2, etc. Om allt är på plats öppnar du kommandoraden (t.ex. proenv), gå till katalogen /bprepl/skript och starta manuset. I den administrativa panelen kontrollerar vi att motsvarande process har fått statusen KÖR.

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS

Resultat

Hur man får vänner mellan Progress OpenEdge-banksystemet och Oracle DBMS
Efter implementeringen accelererade vi kraftigt uppladdningen av information till företagets datalager. Data kommer automatiskt in i Oracle online. Det finns ingen anledning att slösa tid på att köra långa frågor för att samla in data från olika system. Dessutom kan replikeringsprocessen i denna lösning komprimera data, vilket också har en positiv effekt på hastigheten. Nu började daglig avstämning av BISKVIT-systemet med andra system ta 15-20 minuter istället för 2-2,5 timmar och en fullständig avstämning tog flera timmar istället för två dagar.

Källa: will.com

Lägg en kommentar