Comment se faire des amis Progress OpenEdge et Oracle DBMS

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 \ WRK

Les 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
  1. 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.
  2. Créer un mannequin pour la base cdc: procopy $ DLC / cdc vide
  3. Activer le support des fichiers volumineux: proutil cdc -C EnableLargeFiles
  4. 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.
  5. Nous démarrons la base de données cdc.
  6. 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.
  7. 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
  1. Copiez le fichier cdcadd.st du répertoire C: \ Pro2 \ db vers le répertoire de la base de données source bisquit .
  2. 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
  3. Activez OpenEdge CDC:
    proutil bisquit -C zone enablecdc "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. 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
  1. Décompressez la distribution Pro2 dans le répertoire / pro2
  2. Créez et accédez au répertoire / pro2 / dbsh
  3. Créez la base de données du support de schéma à l'aide de la commande procopy $ DLC / empty bisquitsh
  4. 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
  5. AprÚs avoir créé une base de données bisquitsh vide, nous nous y connectons en mode mono-utilisateur: pro bisquitsh
  6. Accédez au dictionnaire de données: Outils -> Dictionnaire de données -> DataServer -> Utilitaires ORACLE -> Créer un schéma DataServer
  7. Lancer le support de schéma
  8. 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
  1. Accédez au répertoire C: \ Pro2 \ bprepl \ Scripts
  2. Ouvrez le fichier replProc.pf pour le modifier
  3. 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>
  4. 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
  5. 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
  6. Enregistrez le fichier de paramĂštres replProc.pf
  7. 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 bisquit

Une 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.

Source: https://habr.com/ru/post/fr445998/


All Articles