So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Zur Bedienung des Backoffice nutzt unsere Bank seit 1999 das integrierte Bankensystem BISKVIT auf der Progress OpenEdge-Plattform, das weltweit, auch im Finanzsektor, weit verbreitet ist. Die Leistung dieses DBMS ermöglicht das Lesen von bis zu einer Million oder mehr Datensätzen pro Sekunde in einer Datenbank (DB). Unser Progress OpenEdge betreut rund 1,5 Millionen Einzeleinlagen und rund 22,2 Millionen Verträge für aktive Produkte (Autokredite und Hypotheken) und ist außerdem für alle Abwicklungen mit der Regulierungsbehörde (Zentralbank) und SWIFT verantwortlich.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Beim Einsatz von Progress OpenEdge standen wir vor der Notwendigkeit, es mit dem Oracle DBMS zum Laufen zu bringen. Anfangs war dieses Paket der Engpass unserer Infrastruktur – bis wir Pro2 CDC installierten und konfigurierten – ein Progress-Produkt, mit dem Sie Daten vom Progress-DBMS direkt online an das Oracle-DBMS senden können. In diesem Beitrag erklären wir Ihnen ausführlich und mit allen Fallstricken, wie Sie effektiv Freundschaften zwischen OpenEdge und Oracle schließen.

Wie es dazu kam: Hochladen von Daten auf QCD per Dateifreigabe

Zunächst einige Fakten zu unserer Infrastruktur. Die Zahl der aktiven Benutzer der Datenbank beträgt etwa 15. Das Volumen aller produktiven Datenbanken, einschließlich Replikat und Standby, beträgt 600 TB, die größte Datenbank beträgt 16,5 TB. Gleichzeitig werden die Datenbanken ständig ergänzt: Allein im letzten Jahr kamen rund 120 TB produktive Daten hinzu. Das System wird von 150 Frontservern auf der x86-Plattform betrieben. Die Datenbanken werden auf 21 IBM-Plattformservern gehostet.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS
Frontend-Systeme, verschiedene Kernbankensysteme und Bankdienstleistungen werden über den Sonic ESB-Bus in OpenEdge Progress (BISCUIT IBS) integriert. Das Hochladen von Daten auf QCD erfolgt durch Dateiaustausch. Bis zu einem bestimmten Zeitpunkt hatte diese Lösung zwei große Probleme gleichzeitig: geringe Leistung beim Hochladen von Informationen in ein Unternehmens-Data-Warehouse (CDW) und lange Zeit beim Datenabgleich (Abgleich) mit anderen Systemen.
So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS
Deshalb begannen wir, nach einem Tool zu suchen, das diese Prozesse beschleunigen könnte. Die Lösung für beide Probleme war das neue Progress OpenEdge-Produkt – Pro2 CDC (Change Data Capture). Also, fangen wir an.

Installieren Sie Progress OpenEdge und Pro2Oracle

Um Pro2 Oracle auf dem Windows-Computer des Administrators auszuführen, reicht es aus, Progress OpenEdge Developer Kit Classroom Edition zu installieren скачать kostenlos. Standardmäßige OpenEdge-Installationsverzeichnisse:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL-Prozesse erfordern Progress OpenEdge-Lizenzen Version 11.7+ – nämlich OE DataServer für Oracle und 4GL Development System. Diese Lizenzen sind im Pro2 enthalten. Für den vollständigen Betrieb von DataServer für Oracle mit einer Remote-Oracle-Datenbank ist der Full Oracle Client installiert.

Auf dem Oracle-Server müssen Sie Oracle Database 12+ installieren, eine leere Datenbank erstellen und einen Benutzer hinzufügen (nennen wir ihn). cdc).

Um Pro2Oracle zu installieren, laden Sie die neueste Distribution aus dem Download-Center herunter Fortschrittssoftware. Entpacken Sie das Archiv in ein Verzeichnis C:Pro2 (Um Pro2 unter Unix zu konfigurieren, wird dieselbe Distribution verwendet und es gelten dieselben Konfigurationsprinzipien.)

Erstellen einer CDC-Replikationsdatenbank

Replikationsdatenbank cdc (Ersatz) Pro2 wird zum Speichern von Konfigurationsinformationen verwendet, einschließlich der Replikationskarte, Namen replizierter Datenbanken und ihrer Tabellen. Es enthält außerdem eine Replikationswarteschlange, die aus Hinweisen darüber besteht, dass sich eine Tabellenzeile in der Quelldatenbank geändert hat. Daten aus der Replikationswarteschlange werden von ETL-Prozessen verwendet, um Zeilen zu identifizieren, die aus der Quelldatenbank nach Oracle kopiert werden müssen.

Wir erstellen eine separate CDC-Datenbank.

Vorgehensweise zum Erstellen einer Datenbank

  1. Auf dem Datenbankserver erstellen wir ein Verzeichnis für die cdc-Datenbank – zum Beispiel auf dem Server /database/cdc/.
  2. Erstellen Sie einen Dummy für die CDC-Datenbank: procopy $DLC/empty cdc
  3. Unterstützung für große Dateien aktivieren: proutil cdc -C EnableLargeFiles
  4. Wir bereiten ein Skript zum Starten der cdc-Datenbank vor. Die Startparameter müssen den Startparametern der replizierten Datenbank ähneln.
  5. Wir starten die CDC-Datenbank.
  6. Stellen Sie eine Verbindung zur cdc-Datenbank her und laden Sie das Pro2-Schema aus der Datei cdc.df, das im Pro2 enthalten ist.
  7. Wir erstellen die folgenden Benutzer in der cdc-Datenbank:

pro2adm – für die Verbindung über das Pro2-Verwaltungspanel;
pro2etl – zum Verbinden von ETL-Prozessen (ReplBatch);
pro2cdc – zum Verbinden von CDC-Prozessen (CDCBatch);

Aktivieren von OpenEdge Change Data Capture

Nun schalten wir den CDC-Mechanismus selbst ein, mit dessen Hilfe Daten in einen weiteren Technologiebereich repliziert werden. Zu jeder Progress OpenEdge-Quelldatenbank müssen Sie separate Speicherbereiche hinzufügen, in die die Quelldaten dupliziert werden, und den Mechanismus selbst mit dem Befehl aktivieren proutil.

Beispielverfahren für die Bisquit-Datenbank

  1. Kopieren aus dem Katalog C:Pro2db Datei cdcadd.st in das Bisquit-Quelldatenbankverzeichnis.
  2. Wir beschreiben in cdcadd.st Bereiche mit fester Größe für Regionen „ReplCDCArea“ и „ReplCDCArea_IDX“. Neue Lagerflächen können Sie online hinzufügen: prostrct addonline bisquit cdcadd.st
  3. OpenEdge CDC aktivieren:
    proutil bisquit -C enablecdc Bereich „ReplCDCArea“ Indexbereich „ReplCDCArea_IDX“
  4. Die folgenden Benutzer müssen in der Quelldatenbank erstellt werden, um laufende Prozesse zu identifizieren:
    A. pro2adm – für die Verbindung über das Pro2-Verwaltungspanel.
    B. pro2etl – zur Verbindung von ETL-Prozessen (ReplBatch).
    C. pro2cdc – zum Verbinden von CDC-Prozessen (CDCBatch).

Erstellen eines Schemahalters für DataServer für Oracle

Als nächstes müssen wir eine Schema Holder-Datenbank auf dem Server erstellen, in der Daten vom Progress-DBMS auf das Oracle-DBMS repliziert werden. DataServer Schema Holder ist eine leere Progress OpenEdge-Datenbank ohne Benutzer- oder Anwendungsdaten, die eine Zuordnungskarte zwischen Quelltabellen und externen Oracle-Tabellen enthält.

Die Schema Holder-Datenbank für Progress OpenEdge DataServer für Oracle für Pro2 muss sich auf dem ETL-Prozessserver befinden; sie wird für jeden Zweig separat erstellt.

So erstellen Sie einen Schemahalter

  1. Entpacken Sie die Pro2-Distribution in ein Verzeichnis /pro2
  2. Erstellen Sie das Verzeichnis und gehen Sie dorthin /pro2/dbsh
  3. Erstellen Sie mit dem Befehl eine Schema-Inhaber-Datenbank kopiere $DLC/empty bisquitsh
  4. Durchführen der Konvertierung Bisquitsh in die erforderliche Kodierung – zum Beispiel in UTF-8, wenn Oracle-Datenbanken über eine UTF-8-Kodierung verfügen: proutil bisquitsh -C convchar konvertiert UTF-8
  5. Nach dem Erstellen einer leeren Datenbank Bisquitsh Stellen Sie im Einzelbenutzermodus eine Verbindung her: Pro Bisquitsh
  6. Gehen wir zum Datenwörterbuch: Extras -> Datenwörterbuch -> DataServer -> ORACLE-Dienstprogramme -> DataServer-Schema erstellen
  7. Starten Sie Schema Holder
  8. Einrichten des Oracle DataServer-Brokers:
    A. Starten Sie AdminServer.
    proadsv -start
    B. Start des Oracle DataServer-Brokers
    oraman -name orabroker1 -start

Einrichten des Verwaltungsbereichs und des Replikationsschemas

Über das Pro2-Verwaltungspanel werden Pro2-Parameter konfiguriert, einschließlich der Einrichtung des Replikationsschemas und der Generierung von ETL-Prozessen (Prozessorbibliothek), primären Synchronisierungsprogrammen (Bulk-Copy-Prozessor), Replikationstriggern und OpenEdge CDC-Richtlinien. Es gibt auch primäre Tools zur Überwachung und Verwaltung von ETL- und CDC-Prozessen. Zunächst richten wir die Parameterdateien ein.

So konfigurieren Sie Parameterdateien

  1. Gehen Sie zum Katalog C:Pro2bpreplScripts
  2. Öffnen Sie die Datei zum Bearbeiten replProc.pf
  3. Fügen Sie Verbindungsparameter zur CDC-Replikationsdatenbank hinzu:
    # Replikationsdatenbank
    -db cdc -ld repl -H <Hauptdatenbank-Hostname> -S <Datenbank-Broker-Port-CDC>
    -U pro2admin -P <Passwort>
  4. Hinzufügen zu replProc.pf Verbindungsparameter zu Quelldatenbanken und Schema Holder in Form von Parameterdateien. Der Name der Parameterdatei muss mit dem Namen der zu verbindenden Quelldatenbank übereinstimmen.
    # Stellen Sie eine Verbindung zu allen replizierten Quellen BISQUIT her
    -pf bpreplscriptsbisquit.pf
  5. Hinzufügen zu replProc.pf Parameter für die Verbindung zum Schema Holder.
    #Target Pro DB-Schemahalter
    -db bisquitsh -ld bisquitsh
    -H <Hostname des ETL-Prozesses>
    -S <biskuitsh-Broker-Port>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <Oracle-Broker-Hostname>
    -DataService orabroker1
  6. Speichern Sie die Parameterdatei replProc.pf
  7. Als nächstes müssen Sie Parameterdateien für jede verbundene Quelldatenbank im Verzeichnis erstellen und zum Bearbeiten öffnen C:Pro2bpreplScripts: bisquit.pf. Jede PF-Datei enthält Parameter für die Verbindung zur entsprechenden Datenbank, zum Beispiel:
    -db bisquit -ld bisquit -H <Hostname> -S <Broker-Port>
    -U pro2admin -P <Passwort>

Um Windows-Verknüpfungen zu konfigurieren, müssen Sie in das Verzeichnis gehen C:Pro2bpreplScripts und bearbeiten Sie die Verknüpfung „Pro2 – Administration“. Öffnen Sie dazu die Eigenschaften der Verknüpfung und in der Zeile Startet in Geben Sie das Pro2-Installationsverzeichnis an. Ein ähnlicher Vorgang muss für die Verknüpfungen „Pro2 – Editor“ und „RunBulkLoader“ durchgeführt werden.

Pro2-Administration-Setup: Laden der Erstkonfiguration

Lassen Sie uns die Konsole starten.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Gehen Sie zu „DB-Karte“.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Um Datenbanken in Pro2 – Administration zu verknüpfen, gehen Sie auf die Registerkarte DB-Karte. Zuordnung von Quelldatenbanken hinzufügen – Schemahalter – Oracle.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Gehen Sie zur Registerkarte Mapping. Gelistet Quelldatenbank Standardmäßig ist die erste verbundene Quelldatenbank ausgewählt. Rechts neben der Liste sollte eine Inschrift stehen Alle Datenbanken verbunden — Die ausgewählten Datenbanken sind verbunden. Unten links sollten Sie eine Liste der Fortschrittstabellen von Bisquit sehen. Auf der rechten Seite finden Sie eine Liste mit Tabellen aus der Oracle-Datenbank.

Erstellen von SQL-Schemata und Datenbanken in Oracle

Um eine Replikationskarte zu erstellen, müssen Sie sie zunächst generieren SQL-Schema in Oracle. In der Pro2 Administration führen wir den Menüpunkt aus Extras -> Code generieren -> Zielschema, dann im Dialogfeld Wählen Sie Datenbank Wählen Sie eine oder mehrere Quelldatenbanken aus und verschieben Sie sie nach rechts.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Klicken Sie auf OK und wählen Sie das Verzeichnis zum Speichern der SQL-Schemas aus.

Als nächstes erstellen wir die Basis. Dies kann beispielsweise über erfolgen Oracle SQL-Entwickler. Dazu verbinden wir uns mit der Oracle-Datenbank und laden das Schema zum Hinzufügen von Tabellen. Nachdem Sie die Zusammensetzung von Oracle-Tabellen geändert haben, müssen Sie die SQL-Schemata im Schemahalter aktualisieren.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Nachdem der Download erfolgreich abgeschlossen wurde, verlassen Sie die Bisquitsh-Datenbank und öffnen Sie das Pro2-Verwaltungsfenster. Tabellen aus der Oracle-Datenbank sollten auf der Registerkarte „Zuordnung“ rechts angezeigt werden.

Tabellenzuordnung

Um eine Replikationszuordnung zu erstellen, gehen Sie im Verwaltungsbereich von Pro2 zur Registerkarte „Zuordnung“ und wählen Sie die Quelldatenbank aus. Klicken Sie auf „Tabellen zuordnen“, wählen Sie links neben den Tabellen, die in Oracle repliziert werden sollen, „Änderungen auswählen“ aus, verschieben Sie sie nach rechts und bestätigen Sie die Auswahl. Für die ausgewählten Tabellen wird automatisch eine Karte erstellt. Wir wiederholen den Vorgang, um eine Replikationszuordnung für andere Quelldatenbanken zu erstellen.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Generieren von Pro2-Replikationsprozessorbibliotheken und Massenkopie-Prozessorprogrammen

Die Replikationsprozessorbibliothek ist für benutzerdefinierte Replikationsprozesse (ETLs) konzipiert, die die Pro2-Replikationswarteschlange verarbeiten und Änderungen an die Oracle-Datenbank übertragen. Bibliotheksprogramme des Replikationsprozessors werden nach der Generierung automatisch im Verzeichnis gespeichert bprepl/repl_proc (PROC_DIRECTORY-Parameter). Um die Replikationsprozessorbibliothek zu generieren, gehen Sie zu Extras -> Code generieren -> Prozessorbibliothek. Nach Abschluss der Generierung werden die Programme im Verzeichnis angezeigt bprepl/repl_proc.

Bulk Load Processor-Programme werden verwendet, um Quell-Progress-Datenbanken mit der Ziel-Oracle-Datenbank basierend auf der Programmiersprache Progress ABL (4GL) zu synchronisieren. Um diese zu generieren, gehen Sie auf den Menüpunkt Extras -> Code generieren -> Massenkopie-Prozessor. Wählen Sie im Dialogfeld „Datenbank auswählen“ die Quelldatenbanken aus, verschieben Sie sie auf die rechte Seite des Fensters und klicken Sie auf OK. Nach Abschluss der Generierung werden die Programme im Verzeichnis angezeigt bpreplrepl_mproc.

Replikationsprozesse in Pro2 einrichten

Die Aufteilung von Tabellen in Gruppen, die von einem separaten Replikationsthread bedient werden, verbessert die Leistung und Effizienz von Pro2 Oracle. Standardmäßig sind alle in der Replikationszuordnung für neue Replikationstabellen erstellten Verbindungen mit Thread Nummer 1 verknüpft. Es wird empfohlen, Tabellen in verschiedene Threads aufzuteilen.

Informationen zum Status der Replikationsthreads werden auf dem Pro2-Verwaltungsbildschirm auf der Registerkarte „Überwachen“ im Abschnitt „Replikationsstatus“ angezeigt. Eine detaillierte Beschreibung der Parameterwerte finden Sie in der Pro2-Dokumentation (Verzeichnis C:Pro2Docs).

Erstellen und aktivieren Sie CDC-Richtlinien

Richtlinien sind eine Reihe von Regeln für die OpenEdge CDC-Engine zur Überwachung von Änderungen an Tabellen. Zum Zeitpunkt des Schreibens unterstützt Pro2 nur CDC-Richtlinien mit Level 0, d. h. es werden nur Fakten überwacht Änderungen aufzeichnen.

Um eine CDC-Richtlinie zu erstellen, gehen Sie im Verwaltungsbereich zur Registerkarte „Zuordnung“, wählen Sie die Quelldatenbank aus und klicken Sie auf die Schaltfläche „Richtlinien hinzufügen/entfernen“. Wählen Sie im sich öffnenden Fenster „Änderungen auswählen“ auf der linken Seite die Tabellen aus, für die Sie eine CDC-Richtlinie erstellen oder löschen müssen, und verschieben Sie sie nach rechts.

Zum Aktivieren öffnen Sie erneut die Registerkarte Mapping, wählen die Quelldatenbank aus und klicken auf die Schaltfläche (In)Aktivieren von Richtlinien. Wählen Sie die Richtlinien aus, die aktiviert werden müssen, verschieben Sie sie auf die rechte Seite der Tabelle und klicken Sie auf „OK“. Danach werden sie grün markiert. Mit Hilfe (In)Aktivieren von Richtlinien Sie können CDC-Richtlinien auch deaktivieren. Alle Transaktionen werden online durchgeführt.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Nachdem die CDC-Richtlinie aktiviert wurde, werden Notizen zu geänderten Datensätzen im Speicherbereich gespeichert „ReplCDCArea“ laut Quelldatenbank. Diese Notizen werden durch einen speziellen Prozess verarbeitet CDCBatch, die darauf basierend Notizen in der Pro2-Replikationswarteschlange in der Datenbank erstellt cdc (Ersatz).

Somit haben wir zwei Warteschlangen für die Replikation. Die erste Stufe ist CDCBatch: Von der Quelldatenbank gehen die Daten zunächst an die CDC-Zwischendatenbank. In der zweiten Phase werden Daten von der CDC-Datenbank an Oracle übertragen. Dies ist ein Merkmal der aktuellen Architektur und des Produkts selbst – bisher ist es den Entwicklern nicht gelungen, eine direkte Replikation zu etablieren.

Primäre Synchronisierung

Nachdem wir den CDC-Mechanismus aktiviert und den Pro2-Replikationsserver eingerichtet haben, müssen wir die anfängliche Synchronisierung starten. Erster Synchronisierungsbefehl:

/pro2/bprepl/Script/replLoad.sh bisquit Tabellenname

Nachdem die anfängliche Synchronisierung abgeschlossen ist, können Replikationsprozesse gestartet werden.

Beginn der Replikationsprozesse

Um Replikationsprozesse zu starten, müssen Sie ein Skript ausführen replbatch.sh. Stellen Sie vor dem Start sicher, dass für alle Threads Replbatch-Skripte vorhanden sind – Replbatch1, Replbatch2 usw. Wenn alles vorhanden ist, öffnen Sie die Befehlszeile (z. B. proenv), gehen Sie in das Verzeichnis /bprepl/scripts und starten Sie das Skript. Im Verwaltungsbereich prüfen wir, ob der entsprechende Prozess den Status RUNNING erhalten hat.

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS

Ergebnisse

So schließen Sie Freundschaften zwischen dem Progress OpenEdge-Banking-System und dem Oracle DBMS
Nach der Implementierung haben wir das Hochladen von Informationen in das Unternehmens-Data-Warehouse erheblich beschleunigt. Die Daten gelangen automatisch online in Oracle. Es besteht keine Notwendigkeit, Zeit mit der Ausführung langwieriger Abfragen zu verschwenden, um Daten aus verschiedenen Systemen zu sammeln. Darüber hinaus kann bei dieser Lösung der Replikationsprozess Daten komprimieren, was sich ebenfalls positiv auf die Geschwindigkeit auswirkt. Nun dauerte der tägliche Abgleich des BISKVIT-Systems mit anderen Systemen 15 bis 20 Minuten statt 2 bis 2,5 Stunden, und ein vollständiger Abgleich dauerte mehrere Stunden statt zwei Tage.

Source: habr.com

Kommentar hinzufügen