Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Des de 1999, per donar servei al back office, el nostre banc utilitza el sistema bancari integrat BISKVIT a la plataforma Progress OpenEdge, que s'utilitza àmpliament a tot el món, inclòs al sector financer. El rendiment d'aquest SGBD us permet llegir fins a un milió o més de registres per segon en una base de dades (DB). El nostre Progress OpenEdge ofereix uns 1,5 milions de dipòsits individuals i uns 22,2 milions de contractes de productes actius (préstecs per a cotxes i hipoteques), i també és responsable de totes les liquidacions amb el regulador (Banc Central) i SWIFT.

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Amb Progress OpenEdge, ens vam enfrontar a la necessitat de fer-lo funcionar amb el SGBD Oracle. Inicialment, aquest paquet era el coll d'ampolla de la nostra infraestructura, fins que vam instal·lar i configurar Pro2 CDC, un producte Progress que us permet enviar dades des del SGBD Progress al SGBD Oracle directament, en línia. En aquest post us explicarem detalladament, amb totes les trampes, com fer amics de manera efectiva entre OpenEdge i Oracle.

Com va passar: pujar dades a QCD mitjançant la compartició de fitxers

En primer lloc, algunes dades sobre la nostra infraestructura. El nombre d'usuaris actius de la base de dades és d'aproximadament 15 mil. El volum de totes les bases de dades productives, incloses les rèpliques i en espera, és de 600 TB, la base de dades més gran és de 16,5 TB. Al mateix temps, les bases de dades s'estan reomplint constantment: només durant l'últim any s'han afegit uns 120 TB de dades productives. El sistema funciona amb 150 servidors frontals a la plataforma x86. Les bases de dades estan allotjades en 21 servidors de la plataforma IBM.

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle
Els sistemes front-end, diversos sistemes bancaris bàsics i serveis bancaris s'integren amb OpenEdge Progress (BISCUIT IBS) mitjançant el bus Sonic ESB. La càrrega de dades a QCD es produeix mitjançant l'intercanvi de fitxers. Fins a un moment determinat, aquesta solució tenia dos grans problemes alhora: un baix rendiment de càrrega d'informació a un magatzem de dades corporatiu (CDW) i un llarg temps per dur a terme la conciliació de dades (conciliació) amb altres sistemes.
Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle
Per això, vam començar a buscar una eina que pogués accelerar aquests processos. La solució a tots dos problemes va ser el nou producte Progress OpenEdge: Pro2 CDC (Change Data Capture). Així doncs, comencem.

Instal·leu Progress OpenEdge i Pro2Oracle

Per executar Pro2 Oracle a l'ordinador Windows de l'administrador, n'hi ha prou amb instal·lar Progress OpenEdge Developer Kit Classroom Edition, que es pot descarregar de forma gratuïta. Directoris d'instal·lació d'OpenEdge per defecte:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

Els processos ETL requereixen llicències Progress OpenEdge versió 11.7+, és a dir, OE DataServer per a Oracle i 4GL Development System. Aquestes llicències s'inclouen amb el Pro2. Per al funcionament complet de DataServer for Oracle amb una base de dades Oracle remota, s'ha instal·lat Full Oracle Client.

Al servidor d'Oracle cal instal·lar Oracle Database 12+, crear una base de dades buida i afegir un usuari (cridem-lo CDC).

Per instal·lar Pro2Oracle, descarregueu la darrera distribució des del centre de descàrregues Programari Progress. Descomprimir l'arxiu en un directori C:Pro2 (Per configurar Pro2 a Unix, s'utilitza la mateixa distribució i s'apliquen els mateixos principis de configuració).

Creació d'una base de dades de replicació de CDC

Base de dades de replicació cdc (rep) Pro2 s'utilitza per emmagatzemar informació de configuració, inclòs el mapa de rèplica, els noms de les bases de dades replicades i les seves taules. També conté una cua de rèplica, que consisteix en notes sobre el fet que una fila de taula a la base de dades d'origen ha canviat. Els processos ETL utilitzen les dades de la cua de rèplica per identificar les files que s'han de copiar a Oracle des de la base de dades d'origen.

Estem creant una base de dades de CDC separada.

Procediment per crear una base de dades

  1. Al servidor de bases de dades creem un directori per a la base de dades cdc, per exemple, al servidor /base de dades/cdc/.
  2. Creeu un maniquí per a la base de dades de CDC: procopia $DLC/cdc buit
  3. Activa el suport per a fitxers grans: proutil cdc -C EnableLargeFiles
  4. Preparem un script per iniciar la base de dades cdc. Els paràmetres d'inici han de ser similars als paràmetres d'inici de la base de dades replicada.
  5. Iniciem la base de dades cdc.
  6. Connecteu-vos a la base de dades de CDC i carregueu l'esquema Pro2 des del fitxer cdc.df, que s'inclou amb el Pro2.
  7. Creem els següents usuaris a la base de dades cdc:

pro2adm: per connectar-se des del tauler administratiu Pro2;
pro2etl: per connectar processos ETL (ReplBatch);
pro2cdc: per connectar processos CDC (CDCBatch);

Activació de la captura de dades de canvi d'OpenEdge

Ara activem el propi mecanisme CDC, amb l'ajuda del qual les dades es replicaran a una àrea tecnològica addicional. A cada base de dades d'origen de Progress OpenEdge, heu d'afegir àrees d'emmagatzematge separades on es duplicaran les dades d'origen i activar el propi mecanisme mitjançant l'ordre proutil.

Exemple de procediment per a la base de dades bisquit

  1. Còpia del catàleg C: Pro2db arxiu cdcadd.st al directori de la base de dades font de bisquit.
  2. Descrivim a cdcadd.st extensions de mida fixa per a regions "ReplCDCArea" и "ReplCDCArea_IDX". Podeu afegir noves àrees d'emmagatzematge en línia: prostrct addonline bisquit cdcadd.st
  3. Activa OpenEdge CDC:
    proutil bisquit -C enablecdc area "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. Els usuaris següents s'han de crear a la base de dades d'origen per identificar els processos en execució:
    a. pro2adm: per connectar-se des del tauler administratiu de Pro2.
    b. pro2etl: per connectar processos ETL (ReplBatch).
    c. pro2cdc: per connectar processos CDC (CDCBatch).

Creació d'un suport d'esquema per a DataServer per a Oracle

A continuació, hem de crear una base de dades Schema Holder al servidor on les dades del SGBD Progress es replicaran al SGBD Oracle. DataServer Schema Holder és una base de dades de Progress OpenEdge buida sense dades d'usuaris ni d'aplicacions, que conté un mapa de correspondència entre les taules font i les taules externes d'Oracle.

La base de dades Schema Holder per a Progress OpenEdge DataServer per a Oracle per a Pro2 s'ha d'ubicar al servidor de processos ETL, es crea per separat per a cada branca.

Com crear un titular d'esquema

  1. Desempaqueteu la distribució Pro2 en un directori /pro2
  2. Creeu i aneu al directori /pro2/dbsh
  3. Creeu una base de dades Schema Holder mitjançant l'ordre copiar $DLC/bisquitsh buit
  4. Realitzant la conversió bisquitsh a la codificació necessària, per exemple, en UTF-8 si les bases de dades Oracle tenen codificació UTF-8: proutil bisquitsh -C convchar convertir UTF-8
  5. Després de crear una base de dades buida bisquitsh connectar-s'hi en mode d'usuari únic: pro bisquitsh
  6. Anem al diccionari de dades: Eines -> Diccionari de dades -> Servidor de dades -> Utilitats ORACLE -> Crea un esquema de servidor de dades
  7. Inicieu el titular de l'esquema
  8. Configuració del broker d'Oracle DataServer:
    a. Inicieu AdminServer.
    proadsv -inici
    b. Inici del broker d'Oracle DataServer
    oraman -nom orabroker1 -inici

Configuració del panell administratiu i esquema de rèplica

Mitjançant el tauler administratiu Pro2, es configuren els paràmetres de Pro2, inclosa la configuració de l'esquema de rèplica i la generació de processos ETL (Biblioteca de processadors), programes de sincronització primaris (processador de còpia massiva), activadors de rèplica i polítiques OpenEdge CDC. També hi ha eines principals per supervisar i gestionar els processos ETL i CDC. En primer lloc, configurem els fitxers de paràmetres.

Com configurar fitxers de paràmetres

  1. Vés al catàleg C:Pro2bpreplScripts
  2. Obriu el fitxer per editar-lo replProc.pf
  3. Afegiu paràmetres de connexió a la base de dades de rèplica de CDC:
    # Base de dades de replicació
    -db cdc -ld repl -H <nom d'amfitrió de la base de dades principal> -S <port cdc de l'agent de bases de dades>
    -U pro2admin -P <contrasenya>
  4. Afegir a replProc.pf paràmetres de connexió a bases de dades d'origen i titular de l'esquema en forma de fitxers de paràmetres. El nom del fitxer de paràmetres ha de coincidir amb el nom de la base de dades d'origen que s'està connectant.
    # Connecteu-vos a totes les fonts replicades BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Afegir a replProc.pf paràmetres per connectar-se a Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <Nom d'amfitrió del procés ETL>
    -S <port del corredor biskuitsh>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <nom d'amfitrió del corredor d'Oracle>
    -DataService orabroker1
  6. Deseu el fitxer de paràmetres replProc.pf
  7. A continuació, heu de crear i obrir fitxers de paràmetres per editar-los per a cada base de dades d'origen connectada al directori C:Pro2bpreplScripts: bisquit.pf. Cada fitxer pf conté paràmetres per connectar-se a la base de dades corresponent, per exemple:
    -db bisquit -ld bisquit -H <nom d'amfitrió> -S <port del corredor>
    -U pro2admin -P <contrasenya>

Per configurar les dreceres de Windows, heu d'anar al directori C:Pro2bpreplScripts i editeu la drecera "Pro2 - Administració". Per fer-ho, obriu les propietats de la drecera i a la línia Comenceu indiqueu el directori d'instal·lació de Pro2. S'ha de fer una operació similar per a les dreceres "Pro2 - Editor" i "RunBulkLoader".

Configuració de l'administració Pro2: s'està carregant la configuració inicial

Anem a llançar la consola.

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Aneu a "Mapa DB".

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Per enllaçar bases de dades a Pro2 - Administració, aneu a la pestanya Mapa DB. Afegeix mapeig de bases de dades font - Titular de l'esquema - Oracle.

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Vés a la pestanya Mapping. Enumerat Base de dades font Per defecte, se selecciona la primera base de dades font connectada. A la dreta de la llista hi hauria d'haver una inscripció Totes les bases de dades connectades — les bases de dades seleccionades estan connectades. A sota, a l'esquerra, hauríeu de veure una llista de taules de progrés de bisquit. A la dreta hi ha una llista de taules de la base de dades Oracle.

Creació d'esquemes SQL i bases de dades a Oracle

Per crear un mapa de rèplica, primer heu de generar Esquema SQL a Oracle. A Pro2 Administration executem l'element del menú Eines -> Genera codi -> Esquema de destinació, després al quadre de diàleg Seleccioneu Base de dades seleccioneu una o més bases de dades d'origen i moveu-les cap a la dreta.

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Feu clic a D'acord i seleccioneu el directori per desar els esquemes SQL.

A continuació creem la base. Això es pot fer, per exemple, via Desenvolupador Oracle SQL. Per fer-ho, ens connectem a la base de dades Oracle i carreguem l'esquema per afegir taules. Després de canviar la composició de les taules d'Oracle, heu d'actualitzar els esquemes SQL al titular de l'esquema.

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Un cop finalitzada la descàrrega correctament, sortiu de la base de dades bisquitsh i obriu el tauler administratiu de Pro2. Les taules de la base de dades Oracle haurien d'aparèixer a la pestanya Mapes de la dreta.

Mapatge de taules

Per crear un mapa de rèplica, al tauler administratiu del Pro2, aneu a la pestanya Mapes i seleccioneu la base de dades d'origen. Feu clic a Taules de mapa, seleccioneu Selecciona els canvis a l'esquerra de les taules que s'han de replicar a Oracle, moveu-les a la dreta i confirmeu la selecció. Es crearà automàticament un mapa per a les taules seleccionades. Repetim l'operació per crear un mapa de replicació per a altres bases de dades font.

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Generació de biblioteques de processadors de replicació Pro2 i programes de processadors de còpia massiva

La biblioteca de processadors de rèplica està dissenyada per a processos de replicació personalitzats (ETL) que processen la cua de rèplica Pro2 i introdueixen els canvis a la base de dades Oracle. Els programes de la biblioteca del processador de replicació es desen automàticament al directori després de la generació bprepl/repl_proc (paràmetre PROC_DIRECTORY). Per generar la biblioteca del processador de rèplica, aneu a Eines -> Genera codi -> Biblioteca del processador. Un cop finalitzada la generació, els programes apareixeran al directori bprepl/repl_proc.

Els programes del processador de càrrega massiva s'utilitzen per sincronitzar les bases de dades d'origen del Progress amb la base de dades d'Oracle de destinació basada en el llenguatge de programació Progress ABL (4GL). Per generar-los, aneu a l'element del menú Eines -> Genera codi -> Processador de còpia massiva. Al quadre de diàleg Selecciona la base de dades, seleccioneu les bases de dades d'origen, moveu-les al costat dret de la finestra i feu clic OK. Un cop finalitzada la generació, els programes apareixeran al directori bpreplrepl_mproc.

Configuració de processos de replicació a Pro2

Dividir les taules en conjunts servits per un fil de replicació independent millora el rendiment i l'eficiència de Pro2 Oracle. Per defecte, totes les connexions creades al mapa de rèplica per a taules de rèplica noves s'associen amb el fil número 1. Es recomana separar les taules en diferents fils.

La informació sobre l'estat dels fils de rèplica es mostra a la pantalla Administració del Pro2 a la pestanya Monitor de la secció Estat de la rèplica. Es pot trobar una descripció detallada dels valors dels paràmetres a la documentació de Pro2 (directori C:Pro2Docs).

Creeu i activeu polítiques de CDC

Les polítiques són un conjunt de regles per al motor OpenEdge CDC per supervisar els canvis a les taules. En el moment d'escriure, Pro2 només admet polítiques de CDC amb nivell 0, és a dir, només es controla el fet registre de canvis.

Per crear una política de CDC, al tauler administratiu, aneu a la pestanya Mapes, seleccioneu la base de dades d'origen i feu clic al botó Afegeix/Elimina polítiques. A la finestra Selecciona canvis que s'obre, seleccioneu al costat esquerre i moveu a la dreta les taules per a les quals necessiteu crear o suprimir una política de CDC.

Per activar-lo, torneu a obrir la pestanya Mapes, seleccioneu la base de dades d'origen i feu clic al botó (En)Activar polítiques. Seleccioneu i moveu al costat dret de la taula les polítiques per a les quals voleu activar, feu clic a D'acord. Després d'això, es marquen en verd. Mitjançant l'ús de (En)Activar polítiques També podeu desactivar les polítiques de CDC. Totes les transaccions es realitzen en línia.

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Un cop activada la política de CDC, les notes sobre els registres modificats es desen a l'àrea d'emmagatzematge "ReplCDCArea" segons la base de dades font. Aquestes notes es processaran mitjançant un procés especial CDCBatch, que a partir d'ells crearà notes a la cua de rèplica Pro2 a la base de dades cdc (rep).

Així, tenim dues cues per a la replicació. La primera etapa és CDCBatch: des de la base de dades d'origen, les dades primer passen a la base de dades CDC intermèdia. La segona etapa és quan les dades es transfereixen de la base de dades de CDC a Oracle. Aquesta és una característica de l'arquitectura actual i del producte en si; fins ara, els desenvolupadors no han pogut establir una replicació directa.

Sincronització primària

Després d'habilitar el mecanisme CDC i configurar el servidor de rèplica Pro2, hem d'iniciar la sincronització inicial. Ordre de sincronització inicial:

/pro2/bprepl/Script/replLoad.sh nom-taula bisquit

Un cop finalitzada la sincronització inicial, es poden iniciar els processos de rèplica.

Inici dels processos de replicació

Per iniciar els processos de replicació cal executar un script replbatch.sh. Abans de començar, assegureu-vos que hi ha scripts replbatch per a tots els fils: replbatch1, replbatch2, etc. Si tot està al seu lloc, obriu la línia d'ordres (per exemple, proenv), aneu al directori /bprepl/scripts i inicieu el guió. Al panell d'administració, comprovem que el procés corresponent ha rebut l'estat d'EXECUCIÓ.

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle

Troballes

Com fer amics entre el sistema bancari Progress OpenEdge i el SGBD Oracle
Després de la implementació, vam accelerar molt la càrrega d'informació al magatzem de dades corporatiu. Les dades entren automàticament a Oracle en línia. No cal perdre temps fent algunes consultes de llarga durada per recollir dades de diferents sistemes. A més, en aquesta solució el procés de replicació pot comprimir dades, la qual cosa també té un efecte positiu en la velocitat. Ara, la conciliació diària del sistema BISKVIT amb altres sistemes va començar a trigar 15-20 minuts en lloc de 2-2,5 hores, i una conciliació completa va trigar diverses hores en lloc de dos dies.

Font: www.habr.com

Afegeix comentari