Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Từ năm 1999, để phục vụ văn phòng hỗ trợ, ngân hàng của chúng tôi đã sử dụng hệ thống ngân hàng tích hợp BISKVIT trên nền tảng Progress OpenEdge, được sử dụng rộng rãi trên toàn thế giới, kể cả trong lĩnh vực tài chính. Hiệu suất của DBMS này cho phép bạn đọc tới một triệu bản ghi trở lên mỗi giây trong một cơ sở dữ liệu (DB). Progress OpenEdge của chúng tôi phục vụ khoảng 1,5 triệu tiền gửi cá nhân và khoảng 22,2 triệu hợp đồng cho các sản phẩm đang hoạt động (cho vay mua ô tô và thế chấp), đồng thời chịu trách nhiệm thực hiện mọi quyết toán với cơ quan quản lý (Ngân hàng Trung ương) và SWIFT.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Khi sử dụng Progress OpenEdge, chúng tôi phải đối mặt với nhu cầu làm cho nó hoạt động với Oracle DBMS. Ban đầu, gói này là nút thắt cổ chai trong cơ sở hạ tầng của chúng tôi - cho đến khi chúng tôi cài đặt và định cấu hình Pro2 CDC - một sản phẩm Progress cho phép bạn gửi trực tiếp dữ liệu từ Progress DBMS đến Oracle DBMS. Trong bài đăng này, chúng tôi sẽ cho bạn biết chi tiết về tất cả những cạm bẫy, cách kết bạn giữa OpenEdge và Oracle một cách hiệu quả.

Chuyện xảy ra như thế nào: tải dữ liệu lên QCD thông qua chia sẻ tệp

Đầu tiên, một số sự thật về cơ sở hạ tầng của chúng tôi. Số lượng người dùng hoạt động của cơ sở dữ liệu là khoảng 15 nghìn. Dung lượng của tất cả các cơ sở dữ liệu sản xuất, bao gồm cả bản sao và cơ sở dữ liệu dự phòng, là 600 TB, cơ sở dữ liệu lớn nhất là 16,5 TB. Đồng thời, cơ sở dữ liệu liên tục được bổ sung: chỉ riêng trong năm qua, khoảng 120 TB dữ liệu sản xuất đã được bổ sung. Hệ thống được cung cấp bởi 150 máy chủ phía trước trên nền tảng x86. Cơ sở dữ liệu được lưu trữ trên 21 máy chủ nền tảng IBM.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS
Các hệ thống giao diện người dùng, các hệ thống ngân hàng lõi và dịch vụ ngân hàng khác nhau được tích hợp với OpenEdge Progress (BISCUIT IBS) thông qua bus Sonic ESB. Tải dữ liệu lên QCD xảy ra thông qua trao đổi tập tin. Cho đến một thời điểm nhất định, giải pháp này gặp phải hai vấn đề lớn cùng một lúc - hiệu suất tải thông tin lên kho dữ liệu doanh nghiệp (CDW) thấp và thời gian thực hiện đối chiếu dữ liệu (đối chiếu) với các hệ thống khác mất nhiều thời gian.
Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS
Vì vậy, chúng tôi bắt đầu tìm kiếm một công cụ có thể tăng tốc các quá trình này. Giải pháp cho cả hai vấn đề là sản phẩm Progress OpenEdge mới – Pro2 CDC (Change Data Capture). Vì vậy, hãy bắt đầu.

Tiến trình cài đặt OpenEdge và Pro2Oracle

Để chạy Pro2 Oracle trên máy tính Windows của quản trị viên, chỉ cần cài đặt Progress OpenEdge Developer Kit Classroom Edition, có thể là tải về miễn phí. Thư mục cài đặt OpenEdge mặc định:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

Các quy trình ETL yêu cầu giấy phép Progress OpenEdge phiên bản 11.7+ - cụ thể là OE DataServer cho Oracle và Hệ thống phát triển 4GL. Các giấy phép này được bao gồm trong Pro2. Để vận hành đầy đủ DataServer cho Oracle với cơ sở dữ liệu Oracle từ xa, Full Oracle Client đã được cài đặt.

Trên máy chủ Oracle, bạn cần cài đặt Cơ sở dữ liệu Oracle 12+, tạo cơ sở dữ liệu trống và thêm người dùng (hãy gọi anh ấy là cdc).

Để cài đặt Pro2Oracle, hãy tải xuống bản phân phối mới nhất từ ​​trung tâm tải xuống Phần mềm Tiến bộ. Giải nén kho lưu trữ vào một thư mục C:Pro2 (Để định cấu hình Pro2 trên Unix, sử dụng cùng một bản phân phối và áp dụng các nguyên tắc cấu hình tương tự).

Tạo cơ sở dữ liệu sao chép cdc

Cơ sở dữ liệu sao chép cdc (thay thế) Pro2 được sử dụng để lưu trữ thông tin cấu hình, bao gồm bản đồ sao chép, tên của cơ sở dữ liệu được sao chép và bảng của chúng. Nó cũng chứa một hàng đợi sao chép, bao gồm các ghi chú về thực tế là một hàng trong bảng trong cơ sở dữ liệu nguồn đã thay đổi. Dữ liệu từ hàng đợi sao chép được các quy trình ETL sử dụng để xác định các hàng cần được sao chép sang Oracle từ cơ sở dữ liệu nguồn.

Chúng tôi đang tạo một cơ sở dữ liệu cdc riêng biệt.

Quy trình tạo cơ sở dữ liệu

  1. Trên máy chủ cơ sở dữ liệu, chúng tôi tạo một thư mục cho cơ sở dữ liệu cdc - ví dụ: trên máy chủ /cơ sở dữ liệu/cdc/.
  2. Tạo một hình nộm cho cơ sở dữ liệu cdc: sao chép $DLC/cdc trống
  3. Bật hỗ trợ cho các tệp lớn: proutil cdc -C EnableLargeFiles
  4. Chúng tôi chuẩn bị một tập lệnh để khởi động cơ sở dữ liệu cdc. Các tham số bắt đầu phải giống với các tham số bắt đầu của cơ sở dữ liệu được sao chép.
  5. Chúng tôi bắt đầu cơ sở dữ liệu cdc.
  6. Kết nối với cơ sở dữ liệu cdc và tải lược đồ Pro2 từ tệp cdc.df, được bao gồm trong Pro2.
  7. Chúng tôi tạo những người dùng sau trong cơ sở dữ liệu cdc:

pro2adm – để kết nối từ bảng quản trị Pro2;
pro2etl – để kết nối các quy trình ETL (ReplBatch);
pro2cdc – để kết nối các quy trình CDC (CDCBatch);

Kích hoạt tính năng thu thập dữ liệu thay đổi OpenEdge

Bây giờ chúng ta hãy bật chính cơ chế CDC, với sự trợ giúp của dữ liệu này sẽ được sao chép sang một lĩnh vực công nghệ bổ sung. Đối với mỗi cơ sở dữ liệu nguồn Progress OpenEdge, bạn cần thêm các vùng lưu trữ riêng biệt để sao chép dữ liệu nguồn vào đó và kích hoạt chính cơ chế đó bằng lệnh proutil.

Thủ tục ví dụ cho cơ sở dữ liệu bisquit

  1. Sao chép từ danh mục C:Pro2db tập tin cdcadd.st vào thư mục cơ sở dữ liệu nguồn bisquit.
  2. Chúng tôi mô tả ở cdcadd.st phạm vi kích thước cố định cho các khu vực "ReplCDCKhu vực" и "Thay thếCDCArea_IDX". Bạn có thể thêm các khu vực lưu trữ mới trực tuyến: protrct addonline bisquit cdcadd.st
  3. Kích hoạt CDC OpenEdge:
    proutil bisquit -C khu vực kích hoạtcdc "ReplCDCArea" khu vực chỉ mục "ReplCDCArea_IDX"
  4. Những người dùng sau phải được tạo trong cơ sở dữ liệu nguồn để xác định các tiến trình đang chạy:
    Một. pro2adm – để kết nối từ bảng quản trị Pro2.
    b. pro2etl – để kết nối các quy trình ETL (ReplBatch).
    c. pro2cdc – để kết nối các quy trình CDC (CDCBatch).

Tạo Schema Holder cho DataServer cho Oracle

Tiếp theo, chúng ta cần tạo cơ sở dữ liệu Schema Holder trên máy chủ nơi dữ liệu từ Progress DBMS sẽ được sao chép sang Oracle DBMS. DataServer Schema Holder là một cơ sở dữ liệu Progress OpenEdge trống không có người dùng hoặc dữ liệu ứng dụng, chứa bản đồ tương ứng giữa các bảng nguồn và các bảng Oracle bên ngoài.

Cơ sở dữ liệu Schema Holder cho Progress OpenEdge DataServer for Oracle for Pro2 phải được đặt trên máy chủ xử lý ETL; nó được tạo riêng cho từng nhánh.

Cách tạo Người giữ lược đồ

  1. Giải nén bản phân phối Pro2 vào một thư mục /pro2
  2. Tạo và đi đến thư mục /pro2/dbsh
  3. Tạo cơ sở dữ liệu Schema Holder bằng lệnh sao chép $DLC/bisquitsh trống
  4. Thực hiện chuyển đổi bánh quy vào mã hóa được yêu cầu - ví dụ: trong UTF-8 nếu cơ sở dữ liệu Oracle có mã hóa UTF-8: proutil bisquitsh -C convchar chuyển đổi UTF-8
  5. Sau khi tạo cơ sở dữ liệu trống bánh quy kết nối với nó ở chế độ một người dùng: chuyên nghiệp bisquitsh
  6. Hãy vào Từ điển dữ liệu: Công cụ -> Từ điển dữ liệu -> Máy chủ dữ liệu -> Tiện ích ORACLE -> Tạo lược đồ máy chủ dữ liệu
  7. Khởi chạy Trình giữ lược đồ
  8. Thiết lập nhà môi giới Oracle DataServer:
    Một. Khởi động Máy chủ quản trị.
    proadsv -bắt đầu
    b. Sự khởi đầu của nhà môi giới Oracle DataServer
    oraman -name orabroker1 -bắt đầu

Thiết lập bảng quản trị và sơ đồ nhân rộng

Bằng cách sử dụng bảng quản trị Pro2, các tham số Pro2 được định cấu hình, bao gồm thiết lập sơ đồ sao chép và tạo quy trình ETL (Thư viện bộ xử lý), chương trình đồng bộ hóa chính (Bộ xử lý sao chép hàng loạt), trình kích hoạt sao chép và chính sách OpenEdge CDC. Ngoài ra còn có các công cụ chính để theo dõi và quản lý các quy trình ETL và CDC. Trước hết, chúng tôi thiết lập các tập tin tham số.

Cách định cấu hình tệp tham số

  1. Đi tới danh mục C:Pro2bpreplScripts
  2. Mở file để chỉnh sửa thay thếProc.pf
  3. Thêm tham số kết nối vào cơ sở dữ liệu sao chép cdc:
    # Cơ sở dữ liệu sao chép
    -db cdc -ld repl -H <tên máy chủ cơ sở dữ liệu chính> -S <cổng môi giới cơ sở dữ liệu cdc>
    -U pro2admin -P <mật khẩu>
  4. Thêm vào thay thếProc.pf các tham số kết nối đến cơ sở dữ liệu nguồn và Trình giữ lược đồ ở dạng tệp tham số. Tên của tệp tham số phải khớp với tên của cơ sở dữ liệu nguồn đang được kết nối.
    # Kết nối với tất cả các nguồn được sao chép BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. Thêm vào thay thếProc.pf các tham số để kết nối với Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <tên máy chủ xử lý ETL>
    -S <cổng môi giới biskuitsh>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <Tên máy chủ của nhà môi giới Oracle>
    -DataService orabroker1
  6. Lưu tập tin tham số thay thếProc.pf
  7. Tiếp theo, bạn cần tạo và mở để chỉnh sửa các tệp tham số cho từng cơ sở dữ liệu nguồn được kết nối trong thư mục C:Pro2bpreplScripts: bisquit.pf. Mỗi tệp pf chứa các tham số để kết nối với cơ sở dữ liệu tương ứng, ví dụ:
    -db bisquit -ld bisquit -H <tên máy chủ> -S <cổng môi giới>
    -U pro2admin -P <mật khẩu>

Để cấu hình phím tắt Windows, bạn cần vào thư mục C:Pro2bpreplScripts và chỉnh sửa phím tắt “Pro2 – Quản trị”. Để thực hiện việc này, hãy mở thuộc tính của phím tắt và trong dòng Bắt đầu vào chỉ ra thư mục cài đặt Pro2. Thao tác tương tự phải được thực hiện đối với phím tắt “Pro2 – Editor” và “RunBulkLoader”.

Thiết lập quản trị Pro2: Đang tải cấu hình ban đầu

Hãy khởi chạy giao diện điều khiển.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Chuyển đến “Bản đồ cơ sở dữ liệu”.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Để liên kết cơ sở dữ liệu trong Pro2 – Quản trị, hãy chuyển đến tab Bản đồ cơ sở dữ liệu. Thêm ánh xạ cơ sở dữ liệu nguồn - Người giữ lược đồ - Oracle.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Đi tới tab Lập bản đồ. Liệt kê Cơ sở dữ liệu nguồn Theo mặc định, cơ sở dữ liệu nguồn được kết nối đầu tiên được chọn. Ở bên phải danh sách phải có dòng chữ Tất cả cơ sở dữ liệu được kết nối — cơ sở dữ liệu đã chọn được kết nối. Bên dưới bên trái, bạn sẽ thấy danh sách các bảng Tiến trình từ bisquit. Bên phải là danh sách các bảng từ cơ sở dữ liệu Oracle.

Tạo lược đồ và cơ sở dữ liệu SQL trong Oracle

Để tạo bản đồ sao chép, trước tiên bạn phải tạo Lược đồ SQL trong Oracle. Trong Quản trị Pro2, chúng tôi thực thi mục menu Công cụ -> Tạo mã -> Lược đồ mục tiêu, sau đó trong hộp thoại Chọn cơ sở dữ liệu chọn một hoặc nhiều cơ sở dữ liệu nguồn và di chuyển chúng sang bên phải.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Bấm OK và chọn thư mục để lưu các lược đồ SQL.

Tiếp theo chúng ta tạo nền tảng. Điều này có thể được thực hiện, ví dụ, thông qua Nhà phát triển SQL Oracle. Để thực hiện việc này, chúng tôi kết nối với cơ sở dữ liệu Oracle và tải lược đồ để thêm bảng. Sau khi thay đổi thành phần của các bảng Oracle, bạn cần cập nhật các lược đồ SQL trong Schema Holder.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Sau khi quá trình tải xuống hoàn tất thành công, hãy thoát khỏi cơ sở dữ liệu bisquitsh và mở bảng quản trị Pro2. Các bảng từ cơ sở dữ liệu Oracle sẽ xuất hiện trên tab Ánh xạ ở bên phải.

Ánh xạ bảng

Để tạo bản đồ sao chép, trong bảng quản trị Pro2, hãy chuyển đến tab Ánh xạ và chọn cơ sở dữ liệu nguồn. Nhấp vào Bảng bản đồ, chọn Chọn Thay đổi ở bên trái các bảng sẽ được sao chép trong Oracle, di chuyển chúng sang bên phải và xác nhận lựa chọn. Một bản đồ sẽ được tạo tự động cho các bảng đã chọn. Chúng tôi lặp lại thao tác để tạo bản đồ sao chép cho các cơ sở dữ liệu nguồn khác.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Tạo thư viện bộ xử lý sao chép Pro2 và các chương trình bộ xử lý sao chép hàng loạt

Thư viện bộ xử lý sao chép được thiết kế cho các quy trình sao chép tùy chỉnh (ETL) xử lý hàng đợi sao chép Pro2 và đẩy các thay đổi vào cơ sở dữ liệu Oracle. Các chương trình thư viện bộ xử lý sao chép được tự động lưu vào thư mục sau khi tạo bprepl/repl_proc (tham số PROC_DIRECTORY). Để tạo thư viện bộ xử lý sao chép, hãy đi tới Công cụ -> Tạo mã -> Thư viện bộ xử lý. Sau khi tạo xong, các chương trình sẽ xuất hiện trong thư mục bprepl/repl_proc.

Các chương trình Bộ xử lý tải hàng loạt được sử dụng để đồng bộ hóa cơ sở dữ liệu Progress nguồn với cơ sở dữ liệu Oracle đích dựa trên ngôn ngữ lập trình Progress ABL (4GL). Để tạo chúng, hãy chuyển đến mục menu Công cụ -> Tạo mã -> Bộ xử lý sao chép hàng loạt. Trong hộp thoại Chọn cơ sở dữ liệu, chọn cơ sở dữ liệu nguồn, di chuyển chúng sang bên phải cửa sổ và nhấp vào OK. Sau khi tạo xong, các chương trình sẽ xuất hiện trong thư mục bpreplrepl_mproc.

Thiết lập quy trình sao chép trong Pro2

Việc chia các bảng thành các bộ được phục vụ bởi một luồng sao chép riêng biệt sẽ cải thiện hiệu suất và hiệu quả của Pro2 Oracle. Theo mặc định, tất cả các kết nối được tạo trong bản đồ sao chép cho các bảng sao chép mới đều được liên kết với luồng số 1. Nên tách các bảng thành các luồng khác nhau.

Thông tin về trạng thái của các luồng sao chép được hiển thị trên màn hình Quản trị Pro2 trong tab Giám sát trong phần Trạng thái sao chép. Bạn có thể tìm thấy mô tả chi tiết về các giá trị tham số trong tài liệu Pro2 (thư mục C:Pro2Docs).

Tạo và kích hoạt chính sách CDC

Chính sách là một bộ quy tắc dành cho công cụ OpenEdge CDC để giám sát các thay đổi đối với bảng. Tại thời điểm viết bài, Pro2 chỉ hỗ trợ các chính sách của CDC ở cấp độ 0, tức là chỉ theo dõi thực tế ghi lại những thay đổi.

Để tạo chính sách CDC, trên bảng quản trị, hãy chuyển đến tab Ánh xạ, chọn cơ sở dữ liệu nguồn và nhấp vào nút Thêm/Xóa Chính sách. Trong cửa sổ Chọn Thay đổi mở ra, chọn ở phía bên trái và di chuyển sang bên phải các bảng mà bạn cần tạo hoặc xóa chính sách CDC.

Để kích hoạt, hãy mở lại tab Ánh xạ, chọn cơ sở dữ liệu nguồn và nhấp vào nút (Trong)Kích hoạt chính sách. Chọn và di chuyển sang bên phải bảng các chính sách cần kích hoạt, nhấn OK. Sau đó chúng được đánh dấu bằng màu xanh lá cây. Bằng cách sử dụng (Trong)Kích hoạt chính sách Bạn cũng có thể hủy kích hoạt các chính sách của CDC. Tất cả các giao dịch được thực hiện trực tuyến.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Sau khi chính sách CDC được kích hoạt, các ghi chú về bản ghi đã sửa đổi sẽ được lưu vào vùng lưu trữ "ReplCDCKhu vực" theo cơ sở dữ liệu nguồn. Những ghi chú này sẽ được xử lý thông qua một quy trình đặc biệt CDCBatch, dựa trên chúng sẽ tạo ghi chú trong hàng đợi sao chép Pro2 trong cơ sở dữ liệu cdc (thay thế).

Vì vậy, chúng tôi có hai hàng đợi để sao chép. Giai đoạn đầu tiên là CDCBatch: từ cơ sở dữ liệu nguồn, trước tiên dữ liệu sẽ được chuyển đến cơ sở dữ liệu CDC trung gian. Giai đoạn thứ hai là khi dữ liệu được chuyển từ cơ sở dữ liệu CDC sang Oracle. Đây là một tính năng của kiến ​​trúc hiện tại và bản thân sản phẩm - cho đến nay các nhà phát triển vẫn chưa thể thiết lập bản sao trực tiếp.

Đồng bộ hóa sơ cấp

Sau khi kích hoạt cơ chế CDC và thiết lập máy chủ sao chép Pro2, chúng ta cần bắt đầu đồng bộ hóa ban đầu. Lệnh đồng bộ hóa ban đầu:

/pro2/bprepl/Script/replLoad.sh bỏ tên bảng

Sau khi quá trình đồng bộ hóa ban đầu hoàn tất, quá trình sao chép có thể được bắt đầu.

Bắt đầu quá trình sao chép

Để bắt đầu quá trình sao chép, bạn cần chạy một tập lệnh replbatch.sh. Trước khi bắt đầu, hãy đảm bảo rằng có các tập lệnh replbatch cho tất cả các luồng - replbatch1, replbatch2, v.v. Nếu mọi thứ đã ổn, hãy mở dòng lệnh (ví dụ: proenv), đi tới thư mục /bprepl/script và bắt đầu kịch bản. Trong bảng quản trị, chúng tôi kiểm tra xem quy trình tương ứng đã nhận được trạng thái ĐANG CHẠY hay chưa.

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS

Những phát hiện

Cách kết bạn giữa hệ thống ngân hàng Progress OpenEdge và Oracle DBMS
Sau khi triển khai, chúng tôi đã tăng tốc đáng kể việc tải thông tin lên kho dữ liệu của công ty. Dữ liệu tự động được đưa vào Oracle trực tuyến. Không cần lãng phí thời gian chạy một số truy vấn dài hạn để thu thập dữ liệu từ các hệ thống khác nhau. Ngoài ra, trong giải pháp này, quá trình sao chép có thể nén dữ liệu, điều này cũng có tác động tích cực đến tốc độ. Giờ đây, việc đối chiếu hàng ngày của hệ thống BISKVIT với các hệ thống khác bắt đầu mất 15-20 phút thay vì 2-2,5 giờ và việc đối chiếu hoàn toàn mất vài giờ thay vì hai ngày.

Nguồn: www.habr.com

Thêm một lời nhận xét