Depuis 1999, notre banque utilise le systĂšme bancaire intĂ©grĂ© BISKVIT sur la plate-forme Progress OpenEdge pour desservir le back-office, largement utilisĂ© dans le monde, y compris dans le secteur financier. Les performances de ce SGBD vous permettent de lire jusqu'Ă un million ou plus d'enregistrements par seconde dans une base de donnĂ©es (DB). Notre Progress OpenEdge sert environ 1,5 million de dĂ©pĂŽts de particuliers et environ 22,2 millions de contrats pour des produits actifs (prĂȘts automobiles et hypothĂšques), et est Ă©galement responsable de tous les rĂšglements avec le rĂ©gulateur (CB) et SWIFT.

En utilisant Progress OpenEdge, nous sommes confrontés au fait que nous devons nous lier d'amitié avec Oracle DBMS. Au départ, cet ensemble constituait le «goulot d'étranglement» de notre infrastructure - jusqu'à ce que nous installions et configurions Pro2 CDC - un produit Progress qui vous permet d'envoyer des données des SGBD Progress aux SGBD Oracle directement, en ligne. Dans cet article, nous expliquerons en détail, avec tous les piÚges, comment se lier efficacement avec OpenEdge et Oracle.
Comment c'était: télécharger des données sur QCD via le partage de fichiers
Tout d'abord, quelques faits sur notre infrastructure. Le nombre d'utilisateurs actifs de la base de donnĂ©es est d'environ 15 000. Le volume de toutes les bases de donnĂ©es productives, y compris les rĂ©pliques et les unitĂ©s de secours, est de 600 To, la plus grande base de donnĂ©es est de 16,5 To. Dans le mĂȘme temps, les bases de donnĂ©es sont constamment rĂ©approvisionnĂ©es: rien que l'annĂ©e derniĂšre, environ 120 To de donnĂ©es productives ont Ă©tĂ© ajoutĂ©es. Le systĂšme fournit 150 serveurs frontaux sur la plate-forme x86. Les bases de donnĂ©es sont hĂ©bergĂ©es sur 21 serveurs de plateforme IBM.

Les systÚmes frontaux, divers ABS et services bancaires sont intégrés à OpenEdge Progress (IBS BISQUIT) via le bus Sonic ESB. Les données sont téléchargées sur QCD par échange de fichiers. Une telle solution, jusqu'à un certain point dans le temps, a immédiatement rencontré deux gros problÚmes - les faibles performances de téléchargement des informations vers l'entrepÎt de données de l'entreprise (QCD) et le temps nécessaire pour réconcilier les données (réconciliation) avec d'autres systÚmes.

Par conséquent, nous avons commencé à chercher un outil qui pourrait accélérer ces processus. La solution à ces deux problÚmes était précisément le nouveau produit Progress OpenEdge - Pro2 CDC (Change Data Capture). Commençons donc.
Installez Progress OpenEdge et Pro2Oracle
Pour exĂ©cuter Pro2 Oracle sur l'ordinateur Windows d'un administrateur, il vous suffit d'installer le Progress OpenEdge Developer Kit Classroom Edition, qui peut ĂȘtre
téléchargé gratuitement. Répertoires d'installation par défaut d'OpenEdge:
DLC: C: \ Progress \ OpenEdge
WRK: C: \ OpenEdge \ WRKLes processus ETL nécessitent des licences Progress OpenEdge version 11.7+ - à savoir OE DataServer pour Oracle et 4GL Development System. Ces licences sont incluses avec Pro2. Pour un fonctionnement complet de DataServer pour Oracle avec une base de données Oracle distante, Full Oracle Client est installé.
Sur le serveur Oracle, vous devez installer la version d'Oracle Database 12+, créer une base de données vide et ajouter l'utilisateur (appelons-le
cdc ).
Pour installer Pro2Oracle, téléchargez le dernier package de distribution à partir du centre de téléchargement de
Progress Software . Décompressez l'archive dans le répertoire
C: \ Pro2 (le mĂȘme kit de distribution est utilisĂ© pour configurer Pro2 sous Unix et les mĂȘmes principes de configuration sont appliquĂ©s).
Création d'une base de données de réplication cdc
La base de données de réplication
cdc (repl) est utilisĂ©e par Pro2 pour stocker les informations de configuration, y compris la carte de rĂ©plication, les noms des bases de donnĂ©es rĂ©pliquĂ©es et leurs tables. Il contient Ă©galement une file d'attente de rĂ©plication composĂ©e de notes sur le fait que la ligne de table dans la base de donnĂ©es source a changĂ©. Les donnĂ©es de la file d'attente de rĂ©plication sont utilisĂ©es par les processus ETL pour identifier les lignes qui doivent ĂȘtre copiĂ©es dans Oracle Ă partir de la base de donnĂ©es source.
Créez une base de données cdc distincte.
Procédure de création d'une base de données- Sur le serveur de base de données, créez un répertoire pour la base de données cdc - par exemple, sur / database / cdc / server.
- Créer un mannequin pour la base cdc: procopy $ DLC / cdc vide
- Activer le support des fichiers volumineux: proutil cdc -C EnableLargeFiles
- Nous prĂ©parons le script pour dĂ©marrer la base de donnĂ©es cdc. Les paramĂštres de dĂ©marrage doivent ĂȘtre similaires aux paramĂštres de dĂ©marrage de la base de donnĂ©es rĂ©pliquĂ©e.
- Nous démarrons la base de données cdc.
- Nous nous connectons à la base de données cdc et chargeons le diagramme Pro2 à partir du fichier cdc.df , qui est inclus avec le package Pro2.
- Dans la base de données cdc, créez les utilisateurs suivants:
pro2adm - pour la connexion Ă partir du panneau d'administration Pro2;
pro2etl - pour connecter les processus ETL (ReplBatch);
pro2cdc - pour connecter les processus CDC (CDCBatch); Activer OpenEdge Change Data Capture
Passons maintenant au mĂ©canisme CDC lui-mĂȘme, grĂące auquel les donnĂ©es seront rĂ©pliquĂ©es dans un domaine technologique supplĂ©mentaire. Dans chaque base de donnĂ©es source Progress OpenEdge, vous devez ajouter des zones de stockage distinctes dans lesquelles les donnĂ©es source seront dupliquĂ©es et activer le mĂ©canisme lui-mĂȘme Ă l'aide de la
commande proutil .
Exemple de procédure pour la base de données bisquit- Copiez le fichier cdcadd.st du répertoire C: \ Pro2 \ db vers le répertoire de la base de données source bisquit .
- Nous décrivons dans cdcadd.st des extensions à extension fixe pour les zones ReplCDCArea et ReplCDCArea_IDX . Vous pouvez ajouter de nouvelles zones de stockage en ligne: prostrct addonline bisquit cdcadd.st
- Activez OpenEdge CDC:
proutil bisquit -C zone enablecdc "ReplCDCArea" indexarea "ReplCDCArea_IDX"
- Les utilisateurs suivants doivent ĂȘtre créés dans la base de donnĂ©es source pour identifier les processus en cours d'exĂ©cution:
a. pro2adm - pour la connexion Ă partir du panneau d'administration Pro2.
b. pro2etl - pour connecter les processus ETL (ReplBatch).
c. pro2cdc - pour connecter les processus CDC (CDCBatch).
Création d'un support de schéma pour DataServer pour Oracle
Ensuite, nous devons crĂ©er le support de schĂ©ma de base de donnĂ©es sur le serveur oĂč les donnĂ©es du SGBD de progression vers le SGBD Oracle seront rĂ©pliquĂ©es. DataServer Schema Holder est une base de donnĂ©es Progress OpenEdge vide sans utilisateurs ni donnĂ©es d'application, contenant une carte de correspondance entre les tables source et les tables Oracle externes.
La base de donnĂ©es des titulaires de schĂ©ma pour Progress OpenEdge DataServer pour Oracle pour Pro2 doit ĂȘtre situĂ©e sur le serveur de processus ETL; elle est créée sĂ©parĂ©ment pour chaque branche.
Comment créer un porte-schéma- Décompressez la distribution Pro2 dans le répertoire / pro2
- Créez et accédez au répertoire / pro2 / dbsh
- Créez la base de données du support de schéma à l'aide de la commande procopy $ DLC / empty bisquitsh
- Nous convertissons bisquitsh en l'encodage nécessaire - par exemple, en UTF-8 si les bases de données Oracle sont encodées en UTF-8: proutil bisquitsh -C convchar convert UTF-8
- AprÚs avoir créé une base de données bisquitsh vide, nous nous y connectons en mode mono-utilisateur: pro bisquitsh
- Accédez au dictionnaire de données: Outils -> Dictionnaire de données -> DataServer -> Utilitaires ORACLE -> Créer un schéma DataServer
- Lancer le support de schéma
- Configurer le courtier Oracle DataServer:
a. Démarrez AdminServer.
proadsv -start
b. Démarrage du courtier Oracle DataServer
oraman -name orabroker1 -start
Configurer le panneau d'administration et le schéma de réplication
Le panneau d'administration Pro2 configure les paramÚtres Pro2, y compris la configuration du schéma de réplication et la génération de programmes de processus ETL (Processor Library), de programmes de synchronisation principaux (Bulk-Copy Processor), de déclencheurs de réplication et de stratégies CDC OpenEdge. Il existe également des outils principaux pour surveiller et gérer les processus ETL et CDC. Tout d'abord, nous configurons les fichiers de paramÚtres.
Comment configurer les fichiers de paramÚtres- Accédez au répertoire C: \ Pro2 \ bprepl \ Scripts
- Ouvrez le fichier replProc.pf pour le modifier
- Ajoutez les paramÚtres de connexion à la base de données de réplication cdc:
# Base de données de réplication
-db cdc -ld repl -H <nom d'hÎte de la base de données principale> -S <port du courtier de base de données cdc>
-U pro2admin -P <mot de passe>
- Ajoutez les paramÚtres de connexion aux bases de données source et au support de schéma sous forme de fichiers de paramÚtres à replProc.pf . Le nom du fichier de paramÚtres doit correspondre au nom de la base de données source à connecter.
# Connectez-vous à toutes les sources répliquées BISQUIT
-pf bprepl \ scripts \ bisquit.pf
- Ajoutez les paramÚtres de connexion au support de schéma dans replProc.pf.
#Target Pro DB Schema Holder
-db bisquitsh -ld bisquitsh
-H <nom d'hĂŽte des processus ETL>
-S <port de courtage biskuitsh>
-db bisquitsql
-ld bisquitsql
-dt ORACLE
-S 5162 -H <nom d'hĂŽte du courtier Oracle>
-DataService orabroker1
- Enregistrez le fichier de paramĂštres replProc.pf
- Ensuite, vous devez créer et ouvrir pour modifier les fichiers de paramÚtres de chaque base de données source connectée dans le répertoire C: \ Pro2 \ bprepl \ Scripts: bisquit.pf . Chaque fichier pf contient des paramÚtres de connexion à la base de données correspondante, par exemple:
-db bisquit -ld bisquit -H <nom d'hĂŽte> -S <port du courtier>
-U pro2admin -P <mot de passe>
Pour configurer les raccourcis Windows, accédez au
répertoire C: \ Pro2 \ bprepl \ Scripts et modifiez le raccourci «Pro2 - Administration». Pour ce faire, ouvrez les propriétés du raccourci et dans la ligne
DĂ©marrer dans indiquez le rĂ©pertoire d'installation Pro2. Une opĂ©ration similaire doit ĂȘtre effectuĂ©e pour les Ă©tiquettes «Pro2 - Editor» et «RunBulkLoader».
Configurer l'administration Pro2: télécharger la configuration principale
Nous lançons la console.

Accédez à la «DB Map».

Pour lier les bases de données dans Pro2 - Administration, accédez à l'onglet
DB Map . Nous ajoutons la cartographie des bases de données sources -
Schema Holder - Oracle .

Accédez à l'onglet
Mappage . Dans la liste
Base de données source , la premiÚre base de données source connectée est sélectionnée par défaut. à la droite de la liste doit figurer
Toutes les bases de donnĂ©es connectĂ©es - les bases de donnĂ©es sĂ©lectionnĂ©es sont connectĂ©es. Une liste des tableaux de progression de bisquit devrait ĂȘtre visible ci-dessous Ă gauche. Ă droite, une liste des tables de la base de donnĂ©es Oracle.
Création de schémas SQL et de bases de données dans Oracle
Pour créer une carte de réplication, vous devez d'abord générer le
schéma SQL dans Oracle. Dans Administration Pro2, exécutez l'élément de menu
Outils -> Générer du code -> Schéma cible , puis dans la boßte de dialogue
Sélectionner une base de données,
sélectionnez une ou plusieurs bases de données source et transférez-les vers la droite.

Cliquez sur OK et sélectionnez le répertoire pour enregistrer les schémas SQL.
Ensuite, nous crĂ©ons la base. Cela peut ĂȘtre fait, par exemple, via
Oracle SQL Developer . Pour ce faire, connectez-vous à la base de données Oracle et chargez le schéma pour ajouter des tables. AprÚs avoir modifié la composition des tables Oracle, vous devez mettre à jour les schémas SQL dans le porte-schéma.

Une fois le téléchargement terminé, quittez la base de données bisquitsh et ouvrez le panneau d'administration Pro2. Les tables de la base de données Oracle doivent apparaßtre dans l'onglet Mappage à droite.
Tables de cartographie
Pour crĂ©er une carte de rĂ©plication dans le panneau d'administration Pro2, accĂ©dez Ă l'onglet Mappage, sĂ©lectionnez la base de donnĂ©es source. Nous cliquons sur Map Tables, sĂ©lectionnons Ă gauche les tables Select Changes qui doivent ĂȘtre rĂ©pliquĂ©es dans Oracle, les transfĂ©rons vers la droite et confirmons la sĂ©lection. Une carte sera créée automatiquement pour les tables sĂ©lectionnĂ©es. RĂ©pĂ©tez l'opĂ©ration pour crĂ©er une carte de rĂ©plication pour d'autres bases de donnĂ©es source.

Génération de la bibliothÚque du processeur de réplication Pro2 et des programmes du processeur de copie en bloc
La bibliothÚque de processeurs est conçue pour les processus de réplication spéciaux (ETL) qui traitent la file d'attente de réplication Pro2 et transmettent les modifications à la base de données Oracle. AprÚs la génération, les programmes de la bibliothÚque du processeur de réplication sont automatiquement enregistrés dans le
rĂ©pertoire bprepl / repl_proc (paramĂštre PROC_DIRECTORY) . Pour gĂ©nĂ©rer la bibliothĂšque du processeur de rĂ©plication, accĂ©dez Ă
Outils -> Générer du code -> BibliothÚque du processeur. Une fois la génération terminée, les programmes apparaßtront dans le
répertoire bprepl / repl_proc .
Les programmes de traitement en bloc sont utilisés pour synchroniser les bases de données de progression source avec la base de données Oracle cible sur la base du langage de programmation Progress ABL (4GL). Pour les générer, accédez à l'élément de menu
Outils -> GĂ©nĂ©rer du code -> Processeur de copie en bloc . Dans la boĂźte de dialogue SĂ©lectionner une base de donnĂ©es, sĂ©lectionnez la base de donnĂ©es source, transfĂ©rez-la sur le cĂŽtĂ© droit de la fenĂȘtre et cliquez sur
OK . Une fois la génération terminée, les programmes apparaßtront dans le
répertoire bprepl \ repl_mproc .
Configuration des processus de réplication dans Pro2
La division des tables en ensembles desservis par un thread de réplication distinct peut améliorer les performances et l'efficacité d'Oracle Pro2. Par défaut, toutes les connexions créées dans la mappe de réplication pour les nouvelles tables de réplication sont liées au flux numéro 1. Il est recommandé de diviser les tables en différents flux.
Des informations sur l'Ă©tat des flux de rĂ©plication s'affichent sur l'Ă©cran Administration de Pro2 dans l'onglet Moniteur de la section Ătat de la rĂ©plication. Une description dĂ©taillĂ©e des valeurs des paramĂštres se trouve dans la documentation Pro2 (rĂ©pertoire C: \ Pro2 \ Docs).
Créer et activer des politiques CDC
Les politiques sont un ensemble de rÚgles pour le mécanisme OpenEdge CDC, selon lesquelles les modifications des tables sont suivies. Au moment de la rédaction, Pro2 ne prend en charge que les stratégies CDC de niveau 0, c'est-à -dire que seul le fait d'
une modification d'enregistrement est suivi.
Pour crĂ©er une stratĂ©gie CDC sur le panneau d'administration, accĂ©dez Ă l'onglet Mappage, sĂ©lectionnez la base de donnĂ©es source et cliquez sur le bouton Ajouter / Supprimer des stratĂ©gies. Dans la fenĂȘtre SĂ©lectionner les modifications qui s'ouvre, sĂ©lectionnez sur le cĂŽtĂ© gauche et transfĂ©rez vers la table de droite pour laquelle vous devez crĂ©er ou supprimer une stratĂ©gie CDC.
Pour l'activer, ouvrez à nouveau l'onglet Mappage, sélectionnez la base de données source et cliquez sur le bouton
(In) Activer les stratégies . Sélectionnez et transférez vers le cÎté droit du tableau les stratégies que vous devez activer, cliquez sur OK. AprÚs cela, ils sont marqués en vert. En utilisant
(In) Activer les stratégies , vous pouvez également désactiver les stratégies CDC. Toutes les opérations sont effectuées en ligne.

AprÚs avoir activé la stratégie CDC, les notes sur les enregistrements modifiés sont enregistrées dans la zone de stockage
«ReplCDCArea» conformément à la base de données d'origine. Ces notes seront traitées par un processus
CDCBatch spécial qui, sur leur base, créera des notes dans la file d'attente de réplication Pro2 de la base de données
cdc (repl) .
Ainsi, nous avons deux files d'attente pour la rĂ©plication. La premiĂšre Ă©tape est CDCBatch: Ă partir de la base de donnĂ©es d'origine, les donnĂ©es vont d'abord Ă la base de donnĂ©es CDC intermĂ©diaire. La deuxiĂšme Ă©tape consiste Ă transfĂ©rer les donnĂ©es de la base de donnĂ©es CDC vers Oracle. Il s'agit d'une caractĂ©ristique de l'architecture actuelle et du produit lui-mĂȘme, alors que les dĂ©veloppeurs n'ont pas pu Ă©tablir de rĂ©plication directe.
Synchronisation principale
AprÚs avoir activé le mécanisme CDC et configuré le serveur de réplication Pro2, nous devons démarrer la synchronisation principale. Commande de démarrage de la synchronisation principale:
/pro2/bprepl/Script/replLoad.sh nom-table bisquitUne fois la synchronisation initiale terminĂ©e, les processus de rĂ©plication peuvent ĂȘtre dĂ©marrĂ©s.
Démarrer les processus de réplication
Pour démarrer les processus de réplication, vous devez exécuter le script
replbatch.sh . Avant de commencer, assurez-vous qu'il existe des scripts de réplication pour tous les threads - replbatch1, replbatch2, etc. Si tout est en place, ouvrez la ligne de commande (par exemple,
proenv) , accédez au
répertoire / bprepl / scripts et démarrez le script. Dans le panneau d'administration, nous vérifions que le processus correspondant a reçu le statut RUNNING.

Résultats

AprĂšs la mise en Ćuvre, nous avons considĂ©rablement accĂ©lĂ©rĂ© le tĂ©lĂ©chargement des informations vers l'entrepĂŽt de donnĂ©es de l'entreprise. Les donnĂ©es elles-mĂȘmes sont transmises Ă Oracle en ligne. Pas besoin de passer du temps sur certaines requĂȘtes de longue durĂ©e pour collecter des donnĂ©es Ă partir de diffĂ©rents systĂšmes. De plus, dans cette solution, le processus de rĂ©plication peut compresser les donnĂ©es, ce qui a Ă©galement un effet positif sur la vitesse. Maintenant, la rĂ©conciliation quotidienne du systĂšme BISKVIT avec d'autres systĂšmes a commencĂ© Ă prendre 15-20 minutes au lieu de 2-2,5 heures, et une rĂ©conciliation complĂšte - plusieurs heures au lieu de deux jours.