如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

自1999年以來,為了服務後台,我行在Progress OpenEdge平台上使用了綜合銀行系統BISKVIT,該系統在全球範圍內廣泛使用,包括在金融領域。 該 DBMS 的性能允許您在一個數據庫 (DB) 中每秒讀取多達一百萬條或更多記錄。 我們的 Progress OpenEdge 為約 1,5 萬筆個人存款和約 22,2 萬份活躍產品合同(汽車貸款和抵押貸款)提供服務,並負責與監管機構(央行)和 SWIFT 的所有結算。

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

使用 Progress OpenEdge,我們需要使其與 Oracle DBMS 配合使用。 最初,這個捆綁包是我們基礎設施的瓶頸 - 直到我們安裝並配置了 Pro2 CDC - 這是一個 Progress 產品,允許您直接在線將數據從 Progress DBMS 發送到 Oracle DBMS。 在這篇文章中,我們將詳細告訴您如何在 OpenEdge 和 Oracle 之間有效地交朋友,儘管存在所有陷阱。

發生過程:通過文件共享將數據上傳到 QCD

首先,關於我們的基礎設施的一些事實。 該數據庫的活躍用戶數量約為15。 所有生產數據庫(包括副本和備用數據庫)的容量為 600 TB,最大數據庫為 16,5 TB。 與此同時,數據庫也在不斷補充:僅去年一年,就增加了約 120 TB 的生產數據。 該系統由 x150 平台上的 86 個前端服務器提供支持。 這些數據庫託管在 21 台 IBM 平台服務器上。

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼
前端系統、各種核心銀行系統和銀行服務通過 Sonic ESB 總線與 OpenEdge Progress (BISCUIT IBS) 集成。 通過文件交換將數據上傳到 QCD。 直到某個時間點,這個解決方案同時存在兩個大問題——將信息上傳到企業數據倉庫(CDW)的性能低下,以及與其他系統進行數據協調(reconciliation)的時間長。
如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼
因此,我們開始尋找一種可以加速這些過程的工具。 這兩個問題的解決方案是新的 Progress OpenEdge 產品 – Pro2 CDC(變更數據捕獲)。 那麼,讓我們開始吧。

OpenEdge 和 Pro2Oracle 安裝進度

要在管理員的 Windows 計算機上運行 Pro2 Oracle,只需安裝 Progress OpenEdge Developer Kit Classroom Edition,即可 下載 免費。 默認 OpenEdge 安裝目錄:

DLC:C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

ETL 流程需要 Progress OpenEdge 許可證版本 11.7+ - 即適用於 Oracle 的 OE DataServer 和 4GL 開發系統。 這些許可證包含在 Pro2 中。 為了通過遠程 Oracle 數據庫完整操作 DataServer for Oracle,需要安裝完整 Oracle 客戶端。

在Oracle服務器上,您需要安裝Oracle數據庫12+,創建一個空數據庫並添加一個用戶(我們稱他為 直流電).

要安裝 Pro2Oracle,請從下載中心下載最新發行版 進度軟件。 將存檔解壓到目錄中 C:Pro2 (要在 Unix 上配置 Pro2,使用相同的發行版並應用相同的配置原則)。

創建 cdc 複製數據庫

複製數據庫 疾病預防控制中心 (repl) Pro2用於存儲配置信息,包括複製映射、複製數據庫及其表的名稱。 它還包含一個複制隊列,其中包含有關源數據庫中的表行已更改這一事實的註釋。 ETL 進程使用複制隊列中的數據來識別需要從源數據庫複製到 Oracle 的行。

我們正在創建一個單獨的 cdc 數據庫。

創建數據庫的過程

  1. 在數據庫服務器上我們為cdc數據庫創建一個目錄——例如在服務器上 /數據庫/疾控中心/.
  2. 為 cdc 數據庫創建一個虛擬對象: procopy $DLC/空 cdc
  3. 啟用對大文件的支持: proutil cdc -C 啟用大文件
  4. 我們準備一個用於啟動 cdc 數據庫的腳本。 啟動參數必須與復制數據庫的啟動參數類似。
  5. 我們啟動 cdc 數據庫。
  6. 連接到 cdc 數據庫並從文件加載 Pro2 架構 CDC.df,包含在 Pro2 中。
  7. 我們在cdc數據庫中創建以下用戶:

pro2adm – 用於從 Pro2 管理面板進行連接;
pro2etl – 用於連接 ETL 流程 (ReplBatch);
pro2cdc – 用於連接 CDC 進程 (CDCBatch);

激活 OpenEdge 變更數據捕獲

現在讓我們打開 CDC 機製本身,借助該機制將數據複製到其他技術領域。 對於每個 Progress OpenEdge 源數據庫,您需要添加單獨的存儲區域來將源數據複製到其中,並使用以下命令激活該機製本身 普羅蒂爾.

bisquit 數據庫的示例過程

  1. 從目錄複製 C:Pro2db 文件 cdadd.st 到 bisquit 源數據庫目錄。
  2. 我們描述在 cdadd.st 區域的固定大小範圍 “ReplCDCArea” и “ReplCDCArea_IDX”。 您可以在線添加新的存儲區域: prostrct addonline bisquit cdcadd.st
  3. 激活 OpenEdge CDC:
    proutil bisquit -C啟用cdc區域“ReplCDCArea”indexarea“ReplCDCArea_IDX”
  4. 必須在源數據庫中創建以下用戶以識別正在運行的進程:
    A。 pro2adm – 用於從 Pro2 管理面板進行連接。
    b. pro2etl – 用於連接 ETL 流程 (ReplBatch)。
    C。 pro2cdc – 用於連接 CDC 進程 (CDCBatch)。

為 DataServer for Oracle 創建架構持有者

接下來,我們需要在服務器上創建一個 Schema Holder 數據庫,其中來自 Progress DBMS 的數據將被複製到 Oracle DBMS。 DataServer Schema Holder 是一個空的 Progress OpenEdge 數據庫,沒有用戶或應用程序數據,包含源表和外部 Oracle 表之間的對應關係圖。

Pro2 的 Progress OpenEdge DataServer for Oracle 的架構持有者數據庫必須位於 ETL 流程服務器上;它是為每個分支單獨創建的。

如何創建架構持有者

  1. 將 Pro2 發行版解壓到目錄中 /pro2
  2. 創建並進入目錄 /pro2/dbsh
  3. 使用命令創建 Schema Holder 數據庫 複製 $DLC/空 bisquitsh
  4. 執行轉換 比斯基什 轉換為所需的編碼 - 例如,如果 Oracle 數據庫具有 UTF-8 編碼,則採用 UTF-8: proutil bisquitsh -C convchar 轉換 UTF-8
  5. 創建空數據庫後 比斯基什 以單用戶模式連接到它: 親比斯基什
  6. 讓我們進入數據字典: 工具 -> 數據字典 -> 數據服務器 -> ORACLE 實用程序 -> 創建數據服務器架構
  7. 啟動架構持有者
  8. 設置 Oracle DataServer 代理:
    A。 啟動管理服務器。
    proadsv-啟動
    b. 啟動 Oracle DataServer 代理
    oraman-名稱 orabroker1-start

設置管理面板和復制方案

使用 Pro2 管理面板,配置 Pro2 參數,包括設置複製方案和生成 ETL 進程(處理器庫)、主同步程序(批量複製處理器)、複製觸發器和 OpenEdge CDC 策略。 還有用於監視和管理 ETL 和 CDC 流程的主要工具。 首先,我們設置參數文件。

如何配置參數文件

  1. 前往目錄 C:Pro2bpreplScripts
  2. 打開文件進行編輯 複製程序.pf
  3. 添加cdc複製數據庫的連接參數:
    # 複製數據庫
    -db cdc -ld repl -H <主數據庫主機名> -S <數據庫代理端口 cdc>
    -U pro2admin -P <密碼>
  4. 添加 複製程序.pf 以參數文件的形式連接到源數據庫和Schema Holder的連接參數。 參數文件的名稱必須與所連接的源數據庫的名稱匹配。
    # 連接到所有復制源 BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. 添加 複製程序.pf 用於連接到架構持有者的參數。
    #Target Pro DB 架構持有者
    -db bisquitsh -ld bisquitsh
    -H <ETL 進程主機名>
    -S <biskuitsh 代理端口>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <Oracle 代理主機名>
    -DataService orabroker1
  6. 保存參數文件 複製程序.pf
  7. 接下來,您需要為目錄中的每個連接的源數據庫創建並打開用於編輯參數文件 C:Pro2bprepl腳本:bisquit.pf。 每個pf文件都包含連接對應數據庫的參數,例如:
    -db bisquit -ld bisquit -H <主機名> -S <代理端口>
    -U pro2admin -P <密碼>

要配置Windows快捷方式,您需要進入該目錄 C:Pro2bpreplScripts 並編輯“Pro2 – 管理”快捷方式。 為此,請打開快捷方式的屬性並在行中 開始 表示Pro2的安裝目錄。 必須對“Pro2 – Editor”和“RunBulkLoader”快捷方式執行類似的操作。

Pro2 管理設置:加載初始配置

讓我們啟動控制台。

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

轉到“數據庫地圖”。

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

要在 Pro2 – Administration 中鏈接數據庫,請轉到選項卡 數據庫地圖。 添加源數據庫的映射 - 架構持有者 - Oracle.

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

轉到選項卡 映射. 上市 源數據庫 默認情況下,選擇第一個連接的源數據庫。 列表的右側應該有一個銘文 所有數據庫已連接 — 所選數據庫已連接。 在左下方,您應該會看到 bisquit 的進度表列表。 右側是 Oracle 數據庫中的表列表。

在 Oracle 中創建 SQL 模式和數據庫

要創建複製映射,您必須首先生成 SQL 架構 在甲骨文中。 在 Pro2 Administration 中我們執行菜單項 工具 -> 生成代碼 -> 目標架構,然後在對話框中 選擇數據庫 選擇一個或多個源數據庫並將它們移至右側。

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

單擊“確定”並選擇保存 SQL 架構的目錄。

接下來我們創建基礎。 例如,這可以通過 Oracle SQL開發人員。 為此,我們連接到 Oracle 數據庫並加載用於添加表的架構。 更改 Oracle 表的組成後,您需要更新 Schema Holder 中的 SQL 架構。

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

下載成功完成後,退出bisquitsh數據庫並打開Pro2管理面板。 Oracle 數據庫中的表應顯示在右側的“映射”選項卡上。

表映射

要創建複製映射,請在 Pro2 管理面板中轉至映射選項卡並選擇源數據庫。 單擊“Map Tables”,選擇應在 Oracle 中復制的表左側的“Select Changes”,將其移至右側並確認選擇。 將為所選表自動創建地圖。 我們重複該操作來為其他源數據庫創建複製映射。

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

生成 Pro2 複製處理器庫和批量複製處理器程序

複製處理器庫專為處理 Pro2 複製隊列並將更改推送到 Oracle 數據庫的自定義復制進程 (ETL) 而設計。 複製處理器庫程序生成後自動保存到目錄中 bprepl/repl_proc(PROC_DIRECTORY 參數)。 要生成複制處理器庫,請轉至 工具 -> 生成代碼 -> 處理器庫。 生成完成後,程序會出現在目錄中 bprepl/repl_proc.

Bulk Load Processor 程序用於基於 Progress ABL (4GL) 編程語言將源 Progress 數據庫與目標 Oracle 數據庫同步。 要生成它們,請轉到菜單項 工具 -> 生成代碼 -> 批量複製處理器。 在“選擇數據庫”對話框中,選擇源數據庫,將其移至窗口右側,然後單擊 OK。 生成完成後,程序會出現在目錄中 bpreplrepl_mproc.

在 Pro2 中設置複製流程

將表拆分為由單獨的複制線程提供服務的集合可提高 Pro2 Oracle 的性能和效率。 默認情況下,在復制映射中為新復製表創建的所有連接都與線程號 1 關聯。建議將表分成不同的線程。

有關複製線程狀態的信息顯示在 Pro2 管理屏幕的“監視”選項卡的“複製狀態”部分中。 參數值的詳細說明可以在Pro2文檔(目錄C:Pro2Docs)中找到。

創建並激活 CDC 策略

策略是 OpenEdge CDC 引擎監控表更改的一組規則。 截至撰寫本文時,Pro2 僅支持級別 0 的 CDC 策略,即僅監控事實 記錄變化.

要創建 CDC 策略,請在管理面板上轉至“映射”選項卡,選擇源數據庫,然後單擊“添加/刪除策略”按鈕。 在打開的“選擇更改”窗口中,選擇左側並移動到右側需要創建或刪除 CDC 策略的表。

要激活,請再次打開“映射”選項卡,選擇源數據庫並單擊按鈕 (中)激活策略。 選擇需要激活的策略並將其移至表格右側,單擊“確定”。 此後它們被標記為綠色。 通過使用 (中)激活策略 您還可以停用 CDC 策略。 所有交易均在線進行。

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

CDC策略激活後,修改記錄的備註會保存到存儲區 “ReplCDCArea” 根據源數據庫。 這些筆記將通過特殊流程進行處理 CDB批次,基於它們將在數據庫的 Pro2 複製隊列中創建註釋 疾病預防控制中心 (repl).

因此,我們有兩個用於復制的隊列。 第一階段是CDCBatch:數據從源數據庫首先進入中間CDC數據庫。 第二階段是將數據從CDC數據庫傳輸到Oracle。 這是當前架構和產品本身的一個特性——到目前為止開發人員還無法建立直接複製。

主同步

啟用CDC機制並設置Pro2複製服務器後,我們需要開始初始同步。 初始同步命令:

/pro2/bprepl/Script/replLoad.sh bisquit 表名

初始同步完成後,即可開始復製過程。

複製過程開始

要啟動複製過程,您需要運行腳本 replbatch.sh。 在開始之前,請確保所有線程都有 replbatch 腳本 - replbatch1、replbatch2 等。 如果一切就緒,請打開命令行(例如, 普羅恩),進入目錄 /bprepl/腳本 並啟動腳本。 在管理面板中,我們檢查相應的進程是否已收到“正在運行”狀態。

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼

Результаты

如何在 Progress OpenEdge 銀行系統和 Oracle DBMS 之間建立友誼
實施後,我們大大加快了信息上傳到企業數據倉庫的速度。 數據自動在線進入Oracle。 無需浪費時間運行一些長時間運行的查詢來從不同系統收集數據。 此外,在此解決方案中,複製過程可以壓縮數據,這對速度也有積極的影響。 現在,BISKVIT 系統與其他系統的日常核對開始需要 15-20 分鐘,而不是 2-2,5 小時,完整的核對需要幾個小時,而不是兩天。

來源: www.habr.com

添加評論