Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Desde 1999, para dar servizo ao back office, o noso banco utiliza o sistema bancario integrado BISKVIT na plataforma Progress OpenEdge, que é amplamente utilizado en todo o mundo, incluso no sector financeiro. O rendemento deste DBMS permítelle ler ata un millón ou máis de rexistros por segundo nunha base de datos (DB). O noso Progress OpenEdge ofrece uns 1,5 millóns de depósitos individuais e uns 22,2 millóns de contratos para produtos activos (préstamos para automóbiles e hipotecas), e tamén é responsable de todos os acordos co regulador (Banco Central) e SWIFT.

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Usando Progress OpenEdge, enfrontámonos á necesidade de facelo funcionar co DBMS de Oracle. Inicialmente, este paquete foi o pescozo de botella da nosa infraestrutura, ata que instalamos e configuramos Pro2 CDC, un produto Progress que permite enviar datos desde o SGBD Progress ao SGBD Oracle directamente, en liña. Neste post contarémosche en detalle, con todas as trampas, como facer amigos de forma efectiva entre OpenEdge e Oracle.

Como pasou: cargando datos a QCD mediante o uso compartido de ficheiros

En primeiro lugar, algúns datos sobre a nosa infraestrutura. O número de usuarios activos da base de datos é de aproximadamente 15 mil. O volume de todas as bases de datos produtivas, incluídas as réplicas e as en espera, é de 600 TB, a base de datos máis grande é de 16,5 TB. Ao mesmo tempo, as bases de datos están a repoñerse constantemente: só durante o último ano engadíronse preto de 120 TB de datos produtivos. O sistema está alimentado por 150 servidores frontales na plataforma x86. As bases de datos están aloxadas en 21 servidores da plataforma IBM.

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle
Os sistemas front-end, varios sistemas bancarios básicos e servizos bancarios están integrados con OpenEdge Progress (BISCUIT IBS) a través do bus Sonic ESB. A carga de datos a QCD prodúcese mediante o intercambio de ficheiros. Ata un certo momento, tal solución tiña dous grandes problemas á vez: baixo rendemento de carga de información nun almacén de datos corporativo (CDW) e moito tempo para realizar a reconciliación de datos (conciliación) con outros sistemas.
Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle
Por iso, comezamos a buscar unha ferramenta que puidese acelerar estes procesos. A solución a ambos os problemas foi o novo produto Progress OpenEdge: Pro2 CDC (Change Data Capture). Entón, imos comezar.

Instala Progress OpenEdge e Pro2Oracle

Para executar Pro2 Oracle no ordenador Windows do administrador, abonda con instalar Progress OpenEdge Developer Kit Classroom Edition, que pode ser descargar gratis. Directorios de instalación de OpenEdge predeterminados:

DLC: C: ProgressOpenEdge
WRK: C:OpenEdgeWRK

Os procesos ETL requiren licenzas Progress OpenEdge versión 11.7+, é dicir, OE DataServer para Oracle e 4GL Development System. Estas licenzas inclúense co Pro2. Para o funcionamento completo de DataServer for Oracle cunha base de datos Oracle remota, está instalado Full Oracle Client.

No servidor Oracle cómpre instalar Oracle Database 12+, crear unha base de datos baleira e engadir un usuario (chamémoslle cdc).

Para instalar Pro2Oracle, descargue a distribución máis recente do centro de descargas Software de progreso. Descomprimir o arquivo nun directorio C:Pro2 (Para configurar Pro2 en Unix, utilízase a mesma distribución e aplícanse os mesmos principios de configuración).

Creación dunha base de datos de replicación cdc

Base de datos de replicación cdc (rep) Pro2 úsase para almacenar información de configuración, incluíndo o mapa de replicación, os nomes das bases de datos replicadas e as súas táboas. Tamén contén unha cola de replicación, que consiste en notas sobre o feito de que unha fila de táboa na base de datos de orixe cambiou. Os procesos ETL utilizan os datos da cola de replicación para identificar as filas que deben copiarse en Oracle desde a base de datos de orixe.

Estamos creando unha base de datos CDC separada.

Procedemento para a creación dunha base de datos

  1. No servidor de base de datos creamos un directorio para a base de datos cdc, por exemplo, no servidor /base de datos/cdc/.
  2. Cree un simulacro para a base de datos cdc: procopia $DLC/cdc baleiro
  3. Activa a compatibilidade con ficheiros grandes: proutil cdc -C EnableLargeFiles
  4. Preparamos un script para iniciar a base de datos cdc. Os parámetros de inicio deben ser similares aos parámetros de inicio da base de datos replicada.
  5. Iniciamos a base de datos cdc.
  6. Conéctese á base de datos cdc e cargue o esquema Pro2 desde o ficheiro cdc.df, que se inclúe co Pro2.
  7. Creamos os seguintes usuarios na base de datos cdc:

pro2adm: para conectarse desde o panel administrativo de Pro2;
pro2etl: para conectar procesos ETL (ReplBatch);
pro2cdc: para conectar procesos CDC (CDCBatch);

Activando OpenEdge Change Data Capture

Agora imos activar o propio mecanismo CDC, coa axuda do cal os datos serán replicados nunha área tecnolóxica adicional. A cada base de datos de orixe de Progress OpenEdge, cómpre engadir áreas de almacenamento separadas nas que se duplicarán os datos de orixe e activar o propio mecanismo mediante o comando proutil.

Procedemento de exemplo para a base de datos bisquit

  1. Copia do catálogo C: Pro2db файл cdcadd.st ao directorio da base de datos fonte bisquit.
  2. Describimos en cdcadd.st extensións de tamaño fixo para as rexións "ReplCDCArea" и "ReplCDCArea_IDX". Podes engadir novas áreas de almacenamento en liña: prostrct addonline bisquit cdcadd.st
  3. Activar OpenEdge CDC:
    proutil bisquit -C enablecdc area "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. Os seguintes usuarios deben crearse na base de datos de orixe para identificar os procesos en execución:
    a. pro2adm: para conectarse desde o panel administrativo de Pro2.
    b. pro2etl: para conectar procesos ETL (ReplBatch).
    c. pro2cdc: para conectar procesos CDC (CDCBatch).

Creando un soporte de esquema para DataServer para Oracle

A continuación, necesitamos crear unha base de datos Schema Holder no servidor onde os datos do DBMS Progress se replicarán no DBMS de Oracle. DataServer Schema Holder é unha base de datos baleira de Progress OpenEdge sen datos de usuarios nin de aplicacións, que contén un mapa de correspondencia entre as táboas fonte e as táboas externas de Oracle.

A base de datos Schema Holder para Progress OpenEdge DataServer for Oracle for Pro2 debe estar situada no servidor de procesos ETL; créase por separado para cada rama.

Como crear un titular de esquema

  1. Descomprimir a distribución Pro2 nun directorio /pro2
  2. Crea e vai ao directorio /pro2/dbsh
  3. Cree unha base de datos Schema Holder usando o comando copia $DLC/baleiro bisquitsh
  4. Realizando a conversión bisquitsh na codificación necesaria, por exemplo, en UTF-8 se as bases de datos Oracle teñen codificación UTF-8: proutil bisquitsh -C convchar converter UTF-8
  5. Despois de crear unha base de datos baleira bisquitsh conectarse a el en modo de usuario único: pro bisquitsh
  6. Imos ao dicionario de datos: Ferramentas -> Dicionario de datos -> Servidor de datos -> Utilidades ORACLE -> Crear esquema de servidor de datos
  7. Iniciar o titular do esquema
  8. Configurando o corredor de Oracle DataServer:
    a. Inicia AdminServer.
    proadsv -inicio
    b. Inicio do corredor de Oracle DataServer
    oraman -nome orabroker1 -inicio

Configuración do panel administrativo e esquema de replicación

Usando o panel administrativo de Pro2, configúranse os parámetros de Pro2, incluíndo a configuración do esquema de replicación e a xeración de procesos ETL (Biblioteca de procesadores), programas de sincronización primarios (procesador de copia masiva), activadores de replicación e políticas de OpenEdge CDC. Tamén hai ferramentas principais para supervisar e xestionar os procesos ETL e CDC. En primeiro lugar, configuramos os ficheiros de parámetros.

Como configurar ficheiros de parámetros

  1. Ir ao catálogo C:Pro2bpreplScripts
  2. Abre o ficheiro para editar replProc.pf
  3. Engade parámetros de conexión á base de datos de replicación cdc:
    # Base de datos de replicación
    -db cdc -ld repl -H <nome de host da base de datos principal> -S <porto do corredor de base de datos cdc>
    -U pro2admin -P <contrasinal>
  4. Engadir a replProc.pf parámetros de conexión ás bases de datos fonte e Schema Holder en forma de ficheiros de parámetros. O nome do ficheiro de parámetros debe coincidir co nome da base de datos fonte que se está conectando.
    # Conéctese a todas as fontes replicadas BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Engadir a replProc.pf parámetros para conectarse a Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <nome de host do proceso ETL>
    -S <porto do corredor biskuitsh>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <nome de host do corredor de Oracle>
    -Servizo de datos orabroker1
  6. Garda o ficheiro de parámetros replProc.pf
  7. A continuación, cómpre crear e abrir para editar ficheiros de parámetros para cada base de datos fonte conectada no directorio C:Pro2bpreplScripts: bisquit.pf. Cada ficheiro pf contén parámetros para conectarse á base de datos correspondente, por exemplo:
    -db bisquit -ld bisquit -H <nome de host> -S <porto do corredor>
    -U pro2admin -P <contrasinal>

Para configurar atallos de Windows, cómpre ir ao directorio C:Pro2bpreplScripts e edite o atallo "Pro2 - Administración". Para iso, abra as propiedades do atallo e na liña Comezar indique o directorio de instalación de Pro2. Débese facer unha operación similar para os atallos "Pro2 - Editor" e "RunBulkLoader".

Configuración da administración Pro2: cargando a configuración inicial

Imos lanzar a consola.

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Vaia a "Mapa DB".

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Para vincular bases de datos en Pro2 - Administración, vai á pestana Mapa DB. Engadir mapeo de bases de datos fonte - Titular de esquema - Oracle.

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Vaia á pestana Mapeamento... Na lista Base de datos fonte De forma predeterminada, está seleccionada a primeira base de datos fonte conectada. Á dereita da lista debería haber unha inscrición Todas as bases de datos conectadas — as bases de datos seleccionadas están conectadas. Abaixo, á esquerda, deberías ver unha lista de táboas de progreso de bisquit. Á dereita hai unha lista de táboas da base de datos Oracle.

Creación de esquemas SQL y bases de datos en Oracle

Para crear un mapa de replicación, primeiro debes xerar Esquema SQL en Oracle. En Administración Pro2 executamos o elemento de menú Ferramentas -> Xerar código -> Esquema de destino, a continuación, no cadro de diálogo Selecciona base de datos seleccione unha ou máis bases de datos fonte e móvaas cara á dereita.

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Fai clic en Aceptar e selecciona o directorio para gardar os esquemas SQL.

A continuación creamos a base. Isto pódese facer, por exemplo, a través de Desenvolvedor Oracle SQL. Para iso, conectámonos á base de datos Oracle e cargamos o esquema para engadir táboas. Despois de cambiar a composición das táboas de Oracle, cómpre actualizar os esquemas SQL no soporte de esquemas.

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Despois de completar correctamente a descarga, saia da base de datos bisquitsh e abra o panel administrativo de Pro2. As táboas da base de datos Oracle deberían aparecer na pestana Mapeo da dereita.

Mapeo de táboas

Para crear un mapa de replicación, no panel administrativo de Pro2, vaia á pestana Asignación e seleccione a base de datos de orixe. Fai clic en Táboas de mapas, selecciona Seleccionar cambios á esquerda das táboas que se deben replicar en Oracle, móveas cara á dereita e confirma a selección. Crearase un mapa automaticamente para as táboas seleccionadas. Repetimos a operación para crear un mapa de replicación para outras bases de datos fonte.

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Xeración de bibliotecas de procesadores de replicación Pro2 e programas de procesadores de copia masiva

A biblioteca do procesador de replicación está deseñada para procesos de replicación personalizados (ETL) que procesan a cola de replicación Pro2 e poñen os cambios na base de datos de Oracle. Os programas da biblioteca do procesador de replicación gárdanse automaticamente no directorio despois da xeración bprepl/repl_proc (parámetro PROC_DIRECTORY). Para xerar a biblioteca do procesador de replicación, vaia a Ferramentas -> Xerar código -> Biblioteca do procesador. Despois de completar a xeración, os programas aparecerán no directorio bprepl/repl_proc.

Os programas do procesador de carga masiva úsanse para sincronizar as bases de datos de orixe de Progress coa base de datos de destino Oracle baseada na linguaxe de programación Progress ABL (4GL). Para xeralos, vai ao elemento do menú Ferramentas -> Xerar código -> Procesador de copia masiva. No cadro de diálogo Seleccionar base de datos, selecciona as bases de datos de orixe, móveas ao lado dereito da xanela e fai clic OK. Despois de completar a xeración, os programas aparecerán no directorio bpreplrepl_mproc.

Configurar procesos de replicación en Pro2

Dividir táboas en conxuntos servidos por un fío de replicación separado mellora o rendemento e a eficiencia de Pro2 Oracle. De forma predeterminada, todas as conexións creadas no mapa de replicación para as táboas de replicación novas están asociadas co fío número 1. Recoméndase separar as táboas en fíos diferentes.

A información sobre o estado dos fíos de replicación móstrase na pantalla Administración de Pro2 na pestana Monitor na sección Estado de replicación. Pódese atopar unha descrición detallada dos valores dos parámetros na documentación de Pro2 (directorio C:Pro2Docs).

Crea e activa políticas de CDC

As políticas son un conxunto de regras para o motor OpenEdge CDC para supervisar os cambios nas táboas. No momento de escribir este artigo, Pro2 só admite políticas CDC co nivel 0, é dicir, só se supervisa o feito rexistro de cambios.

Para crear unha política de CDC, no panel administrativo, vaia á pestana Asignación, seleccione a base de datos de orixe e prema no botón Engadir/Eliminar políticas. Na xanela Seleccionar cambios que se abre, seleccione no lado esquerdo e move cara á dereita as táboas para as que precisa crear ou eliminar unha política de CDC.

Para activalo, abra de novo a pestana Mapeo, seleccione a base de datos de orixe e prema no botón (En)Activar políticas. Seleccione e move ao lado dereito da táboa as políticas para as que desexa activar, prema en Aceptar. Despois disto están marcados en verde. Mediante o uso (En)Activar políticas Tamén pode desactivar as políticas de CDC. Todas as transaccións realízanse en liña.

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Despois de activar a política de CDC, as notas sobre os rexistros modificados gárdanse na área de almacenamento "ReplCDCArea" segundo a base de datos fonte. Estas notas tramitaranse mediante un proceso especial CDCBatch, que en base a eles crearán notas na cola de replicación Pro2 na base de datos cdc (rep).

Así, temos dúas colas para a replicación. A primeira etapa é CDCBatch: dende a base de datos fonte, os datos van primeiro á base de datos CDC intermedia. A segunda etapa é cando os datos se transfiren desde a base de datos CDC a Oracle. Esta é unha característica da arquitectura actual e do produto en si; ata agora os desenvolvedores non puideron establecer unha replicación directa.

Sincronización primaria

Despois de habilitar o mecanismo CDC e configurar o servidor de replicación Pro2, necesitamos iniciar a sincronización inicial. Comando de sincronización inicial:

/pro2/bprepl/Script/replLoad.sh nome da táboa bisquit

Despois de completar a sincronización inicial, pódense iniciar os procesos de replicación.

Inicio dos procesos de replicación

Para iniciar os procesos de replicación, cómpre executar un script replbatch.sh. Antes de comezar, asegúrese de que hai scripts replbatch para todos os fíos: replbatch1, replbatch2, etc. Se todo está no seu lugar, abra a liña de comandos (por exemplo, proenv), vai ao directorio /bprepl/scripts e inicia o guión. No panel administrativo comprobamos que o proceso correspondente recibiu o estado EN EXECUCIÓN.

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle

Descubrimentos

Como facer amigos entre o sistema bancario Progress OpenEdge e o DBMS de Oracle
Despois da implementación, aceleramos moito a carga de información ao almacén de datos corporativo. Os datos entran automaticamente en Oracle en liña. Non hai que perder tempo realizando consultas de longa duración para recoller datos de diferentes sistemas. Ademais, nesta solución o proceso de replicación pode comprimir datos, o que tamén ten un efecto positivo na velocidade. Agora, a conciliación diaria do sistema BISKVIT con outros sistemas comezou a levar 15-20 minutos en lugar de 2-2,5 horas, e unha conciliación completa levou varias horas en lugar de dous días.

Fonte: www.habr.com

Engadir un comentario