Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

Od 1999 roku do obsługi back office nasz bank wykorzystuje zintegrowany system bankowy BISKVIT na platformie Progress OpenEdge, który jest szeroko stosowany na całym świecie, w tym w sektorze finansowym. Wydajność tego systemu DBMS pozwala na odczyt do miliona lub więcej rekordów na sekundę w jednej bazie danych (DB). Nasz Progress OpenEdge obsługuje około 1,5 miliona depozytów indywidualnych i około 22,2 miliona umów na produkty aktywne (kredyty samochodowe i kredyty hipoteczne), a także odpowiada za wszelkie rozliczenia z regulatorem (Bankiem Centralnym) i SWIFT.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

Używając Progress OpenEdge, stanęliśmy przed koniecznością zapewnienia jego współpracy z Oracle DBMS. Początkowo ten pakiet stanowił wąskie gardło naszej infrastruktury – do czasu zainstalowania i skonfigurowania Pro2 CDC – produktu Progress, który umożliwia bezpośrednie przesyłanie danych z systemu Progress DBMS do systemu Oracle DBMS w trybie online. W tym poście powiemy Ci szczegółowo, ze wszystkimi pułapkami, jak skutecznie zaprzyjaźnić się pomiędzy OpenEdge i Oracle.

Jak to się stało: przesyłanie danych do QCD poprzez udostępnianie plików

Na początek kilka faktów na temat naszej infrastruktury. Liczba aktywnych użytkowników bazy wynosi około 15 tys. Objętość wszystkich produktywnych baz danych, włączając replikę i rezerwę, wynosi 600 TB, największa baza danych to 16,5 TB. Jednocześnie bazy danych są stale uzupełniane: tylko w ciągu ostatniego roku dodano około 120 TB danych produkcyjnych. System zasilany jest przez 150 serwerów frontowych na platformie x86. Bazy danych są hostowane na 21 serwerach platformy IBM.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS
Systemy front-end, różne podstawowe systemy bankowe i usługi bankowe są integrowane z OpenEdge Progress (BISCUIT IBS) za pośrednictwem magistrali Sonic ESB. Przesyłanie danych do QCD odbywa się poprzez wymianę plików. Do pewnego momentu rozwiązanie to miało dwa duże problemy jednocześnie – niską wydajność przesyłania informacji do korporacyjnej hurtowni danych (CDW) oraz długi czas potrzebny na wykonanie uzgadniania (uzgadniania) danych z innymi systemami.
Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS
Dlatego zaczęliśmy szukać narzędzia, które mogłoby przyspieszyć te procesy. Rozwiązaniem obu problemów okazał się nowy produkt Progress OpenEdge – Pro2 CDC (Change Data Capture). Zacznijmy więc.

Zainstaluj Progress OpenEdge i Pro2Oracle

Aby uruchomić Pro2 Oracle na komputerze administratora z systemem Windows, wystarczy zainstalować pakiet Progress OpenEdge Developer Kit Classroom Edition, który można pobranie za darmo. Domyślne katalogi instalacyjne OpenEdge:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

Procesy ETL wymagają licencji Progress OpenEdge w wersji 11.7+ - czyli OE DataServer dla Oracle i 4GL Development System. Licencje te są dołączone do Pro2. Aby zapewnić pełną obsługę DataServer for Oracle ze zdalną bazą danych Oracle, instalowany jest Pełny Klient Oracle.

Na serwerze Oracle należy zainstalować Oracle Database 12+, utworzyć pustą bazę danych i dodać użytkownika (nazwijmy go cdc).

Aby zainstalować Pro2Oracle, pobierz najnowszą dystrybucję z centrum pobierania Oprogramowanie Postępu. Rozpakuj archiwum do katalogu C:Pro2 (Aby skonfigurować Pro2 w systemie Unix, używana jest ta sama dystrybucja i obowiązują te same zasady konfiguracji).

Tworzenie bazy danych replikacji cdc

Baza danych replikacji cdc (odtwórz) Pro2 służy do przechowywania informacji konfiguracyjnych, w tym mapy replikacji, nazw replikowanych baz danych i ich tabel. Zawiera także kolejkę replikacji, składającą się z notatek o zmianie wiersza tabeli w źródłowej bazie danych. Dane z kolejki replikacji są wykorzystywane przez procesy ETL do identyfikacji wierszy, które należy skopiować do Oracle ze źródłowej bazy danych.

Tworzymy osobną bazę danych cdc.

Procedura tworzenia bazy danych

  1. Na serwerze bazy danych tworzymy katalog dla bazy danych cdc - np. na serwerze /baza danych/cdc/.
  2. Utwórz fikcyjną bazę danych cdc: skopiuj $DLC/puste CDC
  3. Włącz obsługę dużych plików: proutil cdc -C Włącz duże pliki
  4. Przygotowujemy skrypt uruchamiający bazę danych cdc. Parametry początkowe muszą być podobne do parametrów początkowych replikowanej bazy danych.
  5. Uruchamiamy bazę danych cdc.
  6. Połącz się z bazą danych cdc i załaduj schemat Pro2 z pliku cdc.df, który jest dołączony do Pro2.
  7. W bazie cdc tworzymy następujących użytkowników:

pro2adm – do połączenia z panelu administracyjnego Pro2;
pro2etl – do łączenia procesów ETL (ReplBatch);
pro2cdc – do łączenia procesów CDC (CDCBatch);

Aktywacja przechwytywania danych zmian w OpenEdge

Włączmy teraz sam mechanizm CDC, za pomocą którego dane będą replikowane do dodatkowego obszaru technologicznego. Do każdej źródłowej bazy danych Progress OpenEdge należy dodać osobne obszary składowania, do których będą duplikowane dane źródłowe, a także aktywować sam mechanizm za pomocą komendy proutil.

Przykładowa procedura dla bazy danych Bisquit

  1. Kopiowanie z katalogu C:Pro2db файл cdcadd.st do katalogu źródłowej bazy danych Bisquit.
  2. Opisujemy w cdcadd.st zakresy o stałym rozmiarze dla regionów „ReplCDCArea” и „ReplCDCArea_IDX”. Możesz dodać nowe obszary przechowywania online: prostrct dodatek bisquit cdcadd.st
  3. Aktywuj CDC OpenEdge:
    proutil bisquit -C włącz obszar cdc „ReplCDCArea” obszar indeksu „ReplCDCArea_IDX”
  4. Aby zidentyfikować uruchomione procesy, w źródłowej bazie danych należy utworzyć następujących użytkowników:
    A. pro2adm – do połączenia z panelu administracyjnego Pro2.
    B. pro2etl – do łączenia procesów ETL (ReplBatch).
    C. pro2cdc – do łączenia procesów CDC (CDCBatch).

Tworzenie uchwytu schematu dla DataServer dla Oracle

Następnie musimy utworzyć na serwerze bazę danych Schema Holder, w której dane z systemu Progress DBMS będą replikowane do systemu Oracle DBMS. DataServer Schema Holder to pusta baza danych Progress OpenEdge bez użytkowników i danych aplikacji, zawierająca mapę korespondencji pomiędzy tabelami źródłowymi i zewnętrznymi tabelami Oracle.

Baza danych Schema Holder dla Progress OpenEdge DataServer dla Oracle for Pro2 musi znajdować się na serwerze procesów ETL, jest tworzona osobno dla każdej gałęzi.

Jak utworzyć uchwyt schematu

  1. Rozpakuj dystrybucję Pro2 do katalogu /pro2
  2. Utwórz i przejdź do katalogu /pro2/dbsh
  3. Utwórz bazę danych posiadacza schematu za pomocą polecenia skopiuj $DLC/pusty bisquitsh
  4. Wykonywanie konwersji biszkopt w wymagane kodowanie - na przykład w UTF-8, jeśli bazy danych Oracle mają kodowanie UTF-8: proutil bisquitsh -C convchar konwertuje UTF-8
  5. Po utworzeniu pustej bazy danych biszkopt połącz się z nim w trybie pojedynczego użytkownika: zwolennik biskwitu
  6. Przejdźmy do słownika danych: Narzędzia -> Słownik danych -> Serwer danych -> Narzędzia ORACLE -> Utwórz schemat serwera danych
  7. Uruchom uchwyt schematu
  8. Konfigurowanie brokera Oracle DataServer:
    A. Uruchom serwer administracyjny.
    proadsv -start
    B. Uruchomienie brokera Oracle DataServer
    oraman -nazwa orabroker1 -start

Konfiguracja panelu administracyjnego i schematu replikacji

Za pomocą panelu administracyjnego Pro2 konfigurowane są parametry Pro2, m.in. ustawiany jest schemat replikacji i generowanie procesów ETL (Biblioteka procesorów), podstawowe programy synchronizacji (Bulk-Copy Processor), wyzwalacze replikacji i polityki OpenEdge CDC. Istnieją również podstawowe narzędzia do monitorowania i zarządzania procesami ETL i CDC. Przede wszystkim konfigurujemy pliki parametrów.

Jak skonfigurować pliki parametrów

  1. Przejdź do katalogu C:Pro2bpreplScripts
  2. Otwórz plik do edycji replProc.pf
  3. Dodaj parametry połączenia do bazy danych replikacji cdc:
    # Baza danych replikacji
    -db cdc -ld repl -H <nazwa hosta głównej bazy danych> -S <port CDC brokera bazy danych>
    -U pro2admin -P <hasło>
  4. Dodać do replProc.pf parametry połączenia z bazami źródłowymi i Schema Holderem w postaci plików parametrów. Nazwa pliku parametrów musi być zgodna z nazwą podłączanej źródłowej bazy danych.
    # Połącz się ze wszystkimi replikowanymi źródłami BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Dodać do replProc.pf parametry połączenia z Schema Holderem.
    #Target Pro Uchwyt schematu DB
    -db bisquitsh -ld bisquitsh
    -H <nazwa hosta procesu ETL>
    -S <port brokera Biskuitsh>
    -db bisquitsql
    -ld bisquitsql
    -dt WYrocznia
    -S 5162 -H <nazwa hosta brokera Oracle>
    -Usługa danych orabroker1
  6. Zapisz plik parametrów replProc.pf
  7. Następnie musisz utworzyć i otworzyć do edycji pliki parametrów dla każdej podłączonej źródłowej bazy danych w katalogu C:Pro2bpreplScripts: bisquit.pf. Każdy plik pf zawiera parametry umożliwiające połączenie z odpowiednią bazą danych, na przykład:
    -db bisquit -ld bisquit -H <nazwa hosta> -S <port brokera>
    -U pro2admin -P <hasło>

Aby skonfigurować skróty systemu Windows, musisz przejść do katalogu C:Pro2bpreplScripts i edytuj skrót „Pro2 – Administracja”. Aby to zrobić, otwórz właściwości skrótu i ​​w wierszu Zacząć w wskaż katalog instalacyjny Pro2. Podobną operację należy wykonać dla skrótów „Pro2 – Editor” i „RunBulkLoader”.

Konfiguracja administracyjna Pro2: Ładowanie konfiguracji początkowej

Uruchommy konsolę.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

Przejdź do „Mapy bazy danych”.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

Aby połączyć bazy danych w Pro2 – Administracja, przejdź do zakładki Mapa DB. Dodaj mapowanie źródłowych baz danych - Posiadacz schematu - Oracle.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

Przejdź do zakładki Mapowanie. Katalogowany Źródłowa baza danych Domyślnie wybrana jest pierwsza podłączona źródłowa baza danych. Po prawej stronie listy powinien znajdować się napis Wszystkie bazy danych połączone — wybrane bazy danych są połączone. Poniżej po lewej stronie powinieneś zobaczyć listę tabel Progress firmy bisquit. Po prawej stronie znajduje się lista tabel z bazy Oracle.

Tworzenie schematów SQL i baz danych w Oracle

Aby utworzyć mapę replikacji, należy ją najpierw wygenerować Schemat SQL w Oracle. W Pro2 Administration wykonujemy element menu Narzędzia -> Wygeneruj kod -> Schemat docelowy, a następnie w oknie dialogowym Wybierz bazę danych wybierz jedną lub więcej źródłowych baz danych i przesuń je w prawo.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

Kliknij OK i wybierz katalog, w którym chcesz zapisać schematy SQL.

Następnie tworzymy bazę. Można to zrobić na przykład poprzez Programista Oracle SQL. W tym celu łączymy się z bazą danych Oracle i ładujemy schemat dodawania tabel. Po zmianie składu tabel Oracle należy zaktualizować schematy SQL w Schema Holder.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

Po pomyślnym zakończeniu pobierania wyjdź z bazy danych bisquitsh i otwórz panel administracyjny Pro2. Tabele z bazy Oracle powinny pojawić się w zakładce Mapowanie po prawej stronie.

Mapowanie tabeli

Aby utworzyć mapę replikacji, w panelu administracyjnym Pro2 przejdź do zakładki Mapowanie i wybierz źródłową bazę danych. Kliknij na Mapuj tabele, wybierz opcję Wybierz zmiany po lewej stronie tabel, które mają zostać zreplikowane w Oracle, przesuń je w prawo i potwierdź wybór. Dla wybranych tabel zostanie automatycznie utworzona mapa. Powtarzamy operację tworzenia mapy replikacji dla innych źródłowych baz danych.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

Generowanie biblioteki procesorów replikacji Pro2 i programów procesorów do kopiowania zbiorczego

Biblioteka procesorów replikacji jest przeznaczona dla niestandardowych procesów replikacji (ETL), które przetwarzają kolejkę replikacji Pro2 i wypychają zmiany do bazy danych Oracle. Programy bibliotek procesora replikacyjnego są automatycznie zapisywane w katalogu po wygenerowaniu bprepl/repl_proc (parametr PROC_DIRECTORY). Aby wygenerować bibliotekę procesora replikacji, przejdź do Narzędzia -> Wygeneruj kod -> Biblioteka procesorów. Po zakończeniu generowania programy pojawią się w katalogu bprepl/repl_proc.

Programy Bulk Load Processor służą do synchronizacji źródłowych baz danych Progress z docelową bazą danych Oracle opartą na języku programowania Progress ABL (4GL). Aby je wygenerować należy przejść do pozycji menu Narzędzia -> Wygeneruj kod -> Procesor kopiowania zbiorczego. W oknie dialogowym Wybierz bazę danych wybierz źródłowe bazy danych, przesuń je na prawą stronę okna i kliknij OK. Po zakończeniu generowania programy pojawią się w katalogu bpreplrepl_mproc.

Konfigurowanie procesów replikacji w Pro2

Podział tabel na zestawy obsługiwane przez oddzielny wątek replikacji poprawia wydajność i efektywność Pro2 Oracle. Domyślnie wszystkie połączenia utworzone na mapie replikacji dla nowych tabel replikacji są powiązane z wątkiem nr 1. Zalecane jest rozdzielenie tabel na różne wątki.

Informacje o stanie wątków replikacji wyświetlane są na ekranie Administracja Pro2 w zakładce Monitor w sekcji Stan replikacji. Szczegółowy opis wartości parametrów znajdziesz w dokumentacji Pro2 (katalog C:Pro2Docs).

Twórz i aktywuj zasady CDC

Zasady to zestaw reguł silnika OpenEdge CDC służących do monitorowania zmian w tabelach. W chwili pisania tego tekstu Pro2 obsługuje tylko zasady CDC na poziomie 0, co oznacza, że ​​monitorowane są tylko fakty rejestrować zmiany.

Aby utworzyć politykę CDC, w panelu administracyjnym przejdź do zakładki Mapowanie, wybierz źródłową bazę danych i kliknij przycisk Dodaj/Usuń polityki. W otwartym oknie Wybierz zmiany wybierz po lewej stronie i przesuń w prawo tabele, dla których chcesz utworzyć lub usunąć politykę CDC.

Aby aktywować należy ponownie otworzyć zakładkę Mapowanie, wybrać źródłową bazę danych i kliknąć przycisk (Nie)Aktywuj zasady. Wybierz i przesuń na prawą stronę tabeli polityki, które chcesz aktywować, kliknij OK. Następnie są one zaznaczone na zielono. Używając (Nie)Aktywuj zasady Możesz także dezaktywować zasady CDC. Wszystkie transakcje przeprowadzane są online.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

Po aktywowaniu polityki CDC notatki dotyczące zmodyfikowanych rekordów są zapisywane w obszarze przechowywania „ReplCDCArea” według źródłowej bazy danych. Notatki te będą przetwarzane w ramach specjalnego procesu Partia CDC, który na ich podstawie utworzy notatki w kolejce replikacji Pro2 w bazie danych cdc (odtwórz).

Mamy zatem dwie kolejki do replikacji. Pierwszym etapem jest CDCBatch: ze źródłowej bazy danych dane w pierwszej kolejności trafiają do pośredniej bazy CDC. Drugi etap polega na przesłaniu danych z bazy danych CDC do Oracle. Jest to cecha obecnej architektury i samego produktu – na razie twórcom nie udało się stworzyć bezpośredniej replikacji.

Synchronizacja podstawowa

Po włączeniu mechanizmu CDC i skonfigurowaniu serwera replikacji Pro2 należy przystąpić do wstępnej synchronizacji. Polecenie wstępnej synchronizacji:

/pro2/bprepl/Script/replLoad.sh nazwa tabeli bisquit

Po zakończeniu wstępnej synchronizacji można rozpocząć procesy replikacji.

Rozpoczęcie procesów replikacji

Aby rozpocząć procesy replikacji należy uruchomić skrypt replbatch.sh. Przed rozpoczęciem upewnij się, że istnieją skrypty replbatch dla wszystkich wątków - replbatch1, replbatch2 itp. Jeśli wszystko jest na swoim miejscu, otwórz wiersz poleceń (na przykład proenv), przejdź do katalogu /bprepl/skrypty i uruchom skrypt. W panelu administracyjnym sprawdzamy, czy odpowiedni proces otrzymał status RUNNING.

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS

wyniki

Jak zaprzyjaźnić się pomiędzy systemem bankowym Progress OpenEdge i Oracle DBMS
Po wdrożeniu znacznie przyspieszyliśmy przesyłanie informacji do korporacyjnej hurtowni danych. Dane automatycznie trafiają do Oracle online. Nie ma potrzeby tracić czasu na uruchamianie długotrwałych zapytań w celu gromadzenia danych z różnych systemów. Dodatkowo w tym rozwiązaniu proces replikacji może kompresować dane, co również pozytywnie wpływa na szybkość. Teraz codzienne uzgadnianie systemu BISKVIT z innymi systemami zaczęło zajmować 15-20 minut zamiast 2-2,5 godziny, a pełne uzgadnianie trwało kilka godzin zamiast dwóch dni.

Źródło: www.habr.com

Dodaj komentarz