Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

Desde 1999, para dar servicio al back office, nuestro banco utiliza el sistema bancario integrado BISKVIT en la plataforma Progress OpenEdge, que se utiliza ampliamente en todo el mundo, incluso en el sector financiero. El rendimiento de este DBMS le permite leer hasta un millón o más de registros por segundo en una base de datos (DB). Nuestro Progress OpenEdge atiende alrededor de 1,5 millones de depósitos individuales y alrededor de 22,2 millones de contratos para productos activos (préstamos para automóviles e hipotecas), y también es responsable de todos los acuerdos con el regulador (Banco Central) y SWIFT.

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

Al utilizar Progress OpenEdge, nos enfrentamos a la necesidad de hacerlo funcionar con Oracle DBMS. Inicialmente, este paquete era el cuello de botella de nuestra infraestructura, hasta que instalamos y configuramos Pro2 CDC, un producto de Progress que le permite enviar datos desde Progress DBMS a Oracle DBMS directamente, en línea. En esta publicación le contaremos en detalle, con todos los peligros, cómo hacer amigos de manera efectiva entre OpenEdge y Oracle.

Cómo sucedió: cargar datos a QCD mediante el intercambio de archivos

Primero, algunos datos sobre nuestra infraestructura. El número de usuarios activos de la base de datos es de aproximadamente 15 mil. El volumen de todas las bases de datos productivas, incluidas las de réplica y de reserva, es de 600 TB, la base de datos más grande es de 16,5 TB. Al mismo tiempo, las bases de datos se reponen constantemente: sólo en el último año se han añadido alrededor de 120 TB de datos productivos. El sistema funciona con 150 servidores frontales en la plataforma x86. Las bases de datos están alojadas en 21 servidores de la plataforma IBM.

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS
Los sistemas front-end, varios sistemas bancarios centrales y servicios bancarios se integran con OpenEdge Progress (BISCUIT IBS) a través del bus Sonic ESB. La carga de datos a QCD se realiza mediante el intercambio de archivos. Hasta cierto punto, esta solución tenía dos grandes problemas a la vez: el bajo rendimiento al cargar información en un almacén de datos corporativo (CDW) y el largo tiempo para realizar la conciliación de datos (conciliación) con otros sistemas.
Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS
Por ello, comenzamos a buscar una herramienta que pudiera acelerar estos procesos. La solución a ambos problemas fue el nuevo producto Progress OpenEdge: Pro2 CDC (Change Data Capture). Vamos a empezar.

Instale Progress OpenEdge y Pro2Oracle

Para ejecutar Pro2 Oracle en la computadora Windows del administrador, es suficiente instalar Progress OpenEdge Developer Kit Classroom Edition, que puede ser descargar gratis. Directorios de instalación predeterminados de OpenEdge:

Contenido descargable: C:ProgresoOpenEdge
WRK: C:OpenEdgeWRK

Los procesos ETL requieren licencias Progress OpenEdge versión 11.7+, concretamente OE DataServer para Oracle y 4GL Development System. Estas licencias están incluidas con el Pro2. Para el funcionamiento completo de DataServer for Oracle con una base de datos Oracle remota, se instala Full Oracle Client.

En el servidor Oracle, debe instalar Oracle Database 12+, crear una base de datos vacía y agregar un usuario (llamémoslo CDC).

Para instalar Pro2Oracle, descargue la última distribución desde el centro de descargas Software de progreso. Desempaquete el archivo en un directorio C:Pro2 (Para configurar Pro2 en Unix, se utiliza la misma distribución y se aplican los mismos principios de configuración).

Crear una base de datos de replicación cdc

Base de datos de replicación cdc (respuesta) Pro2 se utiliza para almacenar información de configuración, incluido el mapa de replicación, los nombres de las bases de datos replicadas y sus tablas. También contiene una cola de replicación, que consta de notas sobre el hecho de que una fila de la tabla en la base de datos de origen ha cambiado. Los procesos ETL utilizan los datos de la cola de replicación para identificar las filas que deben copiarse a Oracle desde la base de datos de origen.

Estamos creando una base de datos cdc separada.

Procedimiento para crear una base de datos.

  1. En el servidor de la base de datos creamos un directorio para la base de datos cdc, por ejemplo, en el servidor /base de datos/cdc/.
  2. Cree un modelo ficticio para la base de datos cdc: procopia $DLC/cdc vacío
  3. Habilite la compatibilidad con archivos grandes: proutil cdc -C EnableLargeFiles
  4. Preparamos un script para iniciar la base de datos cdc. Los parámetros de inicio deben ser similares a los parámetros de inicio de la base de datos replicada.
  5. Iniciamos la base de datos cdc.
  6. Conéctese a la base de datos cdc y cargue el esquema Pro2 desde el archivo cdc.df, que se incluye con el Pro2.
  7. Creamos los siguientes usuarios en la base de datos de cdc:

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

Activación de la captura de datos de cambios de OpenEdge

Ahora activemos el mecanismo CDC, con cuya ayuda los datos se replicarán en un área tecnológica adicional. Para cada base de datos fuente de Progress OpenEdge, debe agregar áreas de almacenamiento separadas en las que se duplicarán los datos fuente y activar el mecanismo en sí usando el comando proutil.

Procedimiento de ejemplo para la base de datos bisquit

  1. Copiando del catálogo C:Pro2db файл cdcadd.st al directorio de la base de datos fuente de bisquit.
  2. Describimos en cdcadd.st extensiones de tamaño fijo para regiones "ReplCDCArea" и "ReplCDCArea_IDX". Puedes agregar nuevas áreas de almacenamiento en línea: complemento prostrct en línea bisquit cdcadd.st
  3. Activar OpenEdge CDC:
    proutil bisquit -C enablecdc área "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. Se deben crear los siguientes usuarios en la base de datos de origen para identificar los procesos en ejecución:
    a. pro2adm: para conectarse desde el panel administrativo de Pro2.
    b. pro2etl – para conectar procesos ETL (ReplBatch).
    C. pro2cdc – para conectar procesos CDC (CDCBatch).

Creación de un titular de esquema para DataServer para Oracle

A continuación, necesitamos crear una base de datos Schema Holder en el servidor donde los datos del DBMS Progress se replicarán al DBMS Oracle. DataServer Schema Holder es una base de datos Progress OpenEdge vacía sin usuarios ni datos de aplicaciones, que contiene un mapa de correspondencia entre tablas de origen y tablas externas de Oracle.

La base de datos del titular del esquema para Progress OpenEdge DataServer para Oracle para Pro2 debe estar ubicada en el servidor de procesos ETL; se crea por separado para cada rama.

Cómo crear un titular de esquema

  1. Desempaquete la distribución Pro2 en un directorio /pro2
  2. Crea y ve al directorio. /pro2/dbsh
  3. Cree una base de datos de titular de esquema usando el comando copiar $DLC/bisquitsh vacío
  4. Realizando la conversión galletas en la codificación requerida, por ejemplo, en UTF-8 si las bases de datos Oracle tienen codificación UTF-8: proutil bisquitsh -C convchar convertir UTF-8
  5. Después de crear una base de datos vacía galletas conéctese a él en modo de usuario único: pro bisquitsh
  6. Vayamos al Diccionario de datos: Herramientas -> Diccionario de datos -> Servidor de datos -> Utilidades ORACLE -> Crear esquema de servidor de datos
  7. Titular del esquema de lanzamiento
  8. Configuración del intermediario Oracle DataServer:
    a. Inicie el servidor de administración.
    proadsv -inicio
    b. Inicio del broker Oracle DataServer
    oraman -nombre orabroker1 -inicio

Configurar el panel administrativo y el esquema de replicación.

Utilizando el panel administrativo de Pro2, se configuran los parámetros de Pro2, incluida la configuración del esquema de replicación y la generación de procesos ETL (Biblioteca de procesadores), programas de sincronización principales (Procesador de copia masiva), activadores de replicación y políticas de CDC de OpenEdge. También existen herramientas principales para monitorear y administrar procesos ETL y CDC. En primer lugar, configuramos los archivos de parámetros.

Cómo configurar archivos de parámetros

  1. Ir al catalogo C:Pro2bpreplScripts
  2. Abra el archivo para editarlo replProc.pf
  3. Agregue parámetros de conexión a la base de datos de replicación de cdc:
    # Base de datos de replicación
    -db cdc -ld repl -H <nombre de host de la base de datos principal> -S <puerto del intermediario de base de datos cdc>
    -U pro2admin -P <contraseña>
  4. añadir replProc.pf parámetros de conexión a bases de datos de origen y soporte de esquema en forma de archivos de parámetros. El nombre del archivo de parámetros debe coincidir con el nombre de la base de datos de origen que se está conectando.
    # Conéctese a todas las fuentes replicadas BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. añadir replProc.pf parámetros para conectarse al Schema Holder.
    #Target Pro DB Soporte de esquema
    -db bisquitsh -ld bisquitsh
    -H <nombre de host del proceso ETL>
    -S <puerto del corredor de galletas>
    -db bisquitsql
    -ld bisquitsql
    -dt ORÁCULO
    -S 5162 -H <nombre de host del intermediario Oracle>
    -DataService oabroker1
  6. Guarde el archivo de parámetros replProc.pf
  7. A continuación, debe crear y abrir para editar archivos de parámetros para cada base de datos de origen conectada en el directorio. C:Pro2bpreplScripts: bisquit.pf. Cada archivo pf contiene parámetros para conectarse a la base de datos correspondiente, por ejemplo:
    -db bisquit -ld bisquit -H <nombre de host> -S <puerto de intermediario>
    -U pro2admin -P <contraseña>

Para configurar los accesos directos de Windows, debe ir al directorio C:Pro2bpreplScripts y edite el acceso directo “Pro2 – Administración”. Para hacer esto, abra las propiedades del acceso directo y en la línea Empezar en indique el directorio de instalación de Pro2. Se debe realizar una operación similar para los accesos directos “Pro2 – Editor” y “RunBulkLoader”.

Configuración de administración de Pro2: carga de la configuración inicial

Iniciemos la consola.

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

Vaya a "Mapa de base de datos".

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

Para vincular bases de datos en Pro2 – Administración, vaya a la pestaña Mapa de base de datos. Agregar mapeo de bases de datos de origen - Titular del esquema - Oracle.

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

ir a la pestaña Mapeo... En la lista Base de datos de origen De forma predeterminada, se selecciona la primera base de datos de origen conectada. A la derecha de la lista debería haber una inscripción. Todas las bases de datos conectadas — las bases de datos seleccionadas están conectadas. Abajo a la izquierda debería ver una lista de tablas de progreso de bisquit. A la derecha hay una lista de tablas de la base de datos Oracle.

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

Para crear un mapa de replicación, primero debe generar esquema SQL en Oráculo. En Pro2 Administration ejecutamos el elemento del menú. Herramientas -> Generar código -> Esquema de destino, luego en el cuadro de diálogo Seleccionar base de datos seleccione una o más bases de datos de origen y muévalas hacia la derecha.

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

Haga clic en Aceptar y seleccione el directorio para guardar los esquemas SQL.

A continuación creamos la base. Esto se puede hacer, por ejemplo, a través de Desarrollador Oracle SQL. Para ello, nos conectamos a la base de datos Oracle y cargamos el esquema para agregar tablas. Después de cambiar la composición de las tablas de Oracle, debe actualizar los esquemas SQL en el Titular del esquema.

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

Una vez que la descarga se complete exitosamente, salga de la base de datos bisquitsh y abra el panel administrativo de Pro2. Las tablas de la base de datos Oracle deberían aparecer en la pestaña Mapeo a la derecha.

Mapeo de tablas

Para crear un mapa de replicación, en el panel administrativo de Pro2, vaya a la pestaña Mapeo y seleccione la base de datos de origen. Haga clic en Asignar tablas, seleccione Seleccionar cambios a la izquierda de las tablas que deben replicarse en Oracle, muévalas hacia la derecha y confirme la selección. Se creará un mapa automáticamente para las mesas seleccionadas. Repetimos la operación para crear un mapa de replicación para otras bases de datos de origen.

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

Generación de programas de procesador de copia masiva y biblioteca del procesador de replicación Pro2

La biblioteca del procesador de replicación está diseñada para procesos de replicación personalizados (ETL) que procesan la cola de replicación de Pro2 y envían cambios a la base de datos de Oracle. Los programas de la biblioteca del procesador de replicación se guardan automáticamente en el directorio después de la generación. bprepl/repl_proc (parámetro PROC_DIRECTORY). Para generar la biblioteca del procesador de replicación, vaya a Herramientas -> Generar código -> Biblioteca de procesadores. Una vez completada la generación, los programas aparecerán en el directorio bprepl/repl_proc.

Los programas Bulk Load Processor se utilizan para sincronizar las bases de datos de Progress de origen con la base de datos de Oracle de destino según el lenguaje de programación Progress ABL (4GL). Para generarlos, vaya al elemento del menú. Herramientas -> Generar código -> Procesador de copia masiva. En el cuadro de diálogo Seleccionar base de datos, seleccione las bases de datos de origen, muévalas al lado derecho de la ventana y haga clic en OK. Una vez completada la generación, los programas aparecerán en el directorio bpreplrepl_mproc.

Configurar procesos de replicación en Pro2

Dividir tablas en conjuntos atendidos por un subproceso de replicación independiente mejora el rendimiento y la eficiencia de Pro2 Oracle. De forma predeterminada, todas las conexiones creadas en el mapa de replicación para nuevas tablas de replicación están asociadas con el subproceso número 1. Se recomienda separar las tablas en diferentes subprocesos.

La información sobre el estado de los subprocesos de replicación se muestra en la pantalla Administración de Pro2 en la pestaña Monitor en la sección Estado de replicación. Puede encontrar una descripción detallada de los valores de los parámetros en la documentación de Pro2 (directorio C:Pro2Docs).

Crear y activar políticas CDC

Las políticas son un conjunto de reglas para que el motor OpenEdge CDC supervise los cambios en las tablas. Al momento de escribir este artículo, Pro2 solo admite políticas CDC con nivel 0, es decir, solo se monitorean los hechos. cambios de registros.

Para crear una política CDC, en el panel administrativo, vaya a la pestaña Mapeo, seleccione la base de datos de origen y haga clic en el botón Agregar o quitar políticas. En la ventana Seleccionar cambios que se abre, seleccione en el lado izquierdo y mueva hacia la derecha las tablas para las que necesita crear o eliminar una política CDC.

Para activar, abra nuevamente la pestaña Mapping, seleccione la base de datos de origen y haga clic en el botón (In)Activar políticas. Seleccione y mueva al lado derecho de la tabla las políticas que deben activarse, haga clic en Aceptar. Después de esto quedan marcados en verde. Mediante el uso (In)Activar políticas También puede desactivar las políticas de CDC. Todas las transacciones se realizan en línea.

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

Una vez activada la política CDC, las notas sobre los registros modificados se guardan en el área de almacenamiento. "ReplCDCArea" según la base de datos fuente. Estas notas serán procesadas a través de un proceso especial. CDCBattch, que en base a ellos creará notas en la cola de replicación de Pro2 en la base de datos cdc (respuesta).

Por tanto, tenemos dos colas para la replicación. La primera etapa es CDCBatch: desde la base de datos de origen, los datos primero van a la base de datos CDC intermedia. La segunda etapa es cuando los datos se transfieren de la base de datos de CDC a Oracle. Esta es una característica de la arquitectura actual y del producto en sí; hasta ahora los desarrolladores no han podido establecer una replicación directa.

Sincronización primaria

Después de habilitar el mecanismo CDC y configurar el servidor de replicación Pro2, debemos iniciar la sincronización inicial. Comando de sincronización inicial:

/pro2/bprepl/Script/replLoad.sh nombre-tabla bisquit

Una vez completada la sincronización inicial, se pueden iniciar los procesos de replicación.

Inicio de procesos de replicación

Para iniciar los procesos de replicación es necesario ejecutar un script. replbatch.sh. Antes de comenzar, asegúrese de que haya scripts replbatch para todos los subprocesos: replbatch1, replbatch2, etc. Si todo está en su lugar, abra la línea de comando (por ejemplo, proenv), ve al directorio /bprepl/scripts y comenzar el guión. En el panel administrativo comprobamos que el proceso correspondiente haya recibido el estado RUNNING.

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS

resultados

Cómo hacer amigos entre el sistema bancario Progress OpenEdge y Oracle DBMS
Después de la implementación, aceleramos enormemente la carga de información al almacén de datos corporativo. Los datos ingresan automáticamente a Oracle en línea. No es necesario perder el tiempo ejecutando consultas de larga duración para recopilar datos de diferentes sistemas. Además, en esta solución el proceso de replicación puede comprimir datos, lo que también tiene un efecto positivo en la velocidad. Ahora la conciliación diaria del sistema BISKVIT con otros sistemas empezó a tardar entre 15 y 20 minutos en lugar de 2 a 2,5 horas, y una conciliación completa tardó varias horas en lugar de dos días.

Fuente: habr.com

Añadir un comentario