Cara berteman Progress OpenEdge dan Oracle DBMS

Sejak 1999, bank kami telah menggunakan sistem perbankan BISKVIT terintegrasi pada platform Progress OpenEdge untuk melayani back office, yang banyak digunakan di seluruh dunia, termasuk di sektor keuangan. Kinerja DBMS ini memungkinkan Anda membaca hingga satu juta atau lebih catatan per detik dalam satu basis data (DB). OpenEdge Progress kami melayani sekitar 1,5 juta simpanan individu dan sekitar 22,2 juta kontrak untuk produk aktif (kredit mobil dan hipotek), dan juga bertanggung jawab atas semua pembayaran dengan regulator (CB) dan SWIFT.



Menggunakan Progress OpenEdge, kita dihadapkan pada kenyataan bahwa kita perlu berteman dengan Oracle DBMS. Awalnya, bundel ini adalah "bottleneck" dari infrastruktur kami - hingga kami menginstal dan mengkonfigurasi CDC Pro2 - produk Progress yang memungkinkan Anda mengirim data dari Progress DBMS ke Oracle DBMS secara langsung, online. Dalam posting ini, kami akan menjelaskan secara rinci, dengan semua jebakan, cara berteman secara efektif dengan OpenEdge dan Oracle.

Bagaimana itu: mengunggah data ke QCD melalui berbagi file


Pertama, beberapa fakta tentang infrastruktur kami. Jumlah pengguna aktif dari database adalah sekitar 15 ribu. Volume semua basis data produktif, termasuk replika dan siaga, adalah 600 TB, basis data terbesar adalah 16,5 TB. Pada saat yang sama, basis data terus diisi ulang: pada tahun lalu saja, sekitar 120 TB data produktif telah ditambahkan. Sistem menyediakan 150 server ujung depan pada platform x86. Database di-host di 21 server platform IBM.


Sistem depan, berbagai ABS dan layanan perbankan diintegrasikan dengan Kemajuan OpenEdge (IBS BISQUIT) melalui bus Sonic ESB. Data diunggah ke QCD melalui pertukaran file. Solusi semacam itu hingga titik waktu tertentu segera memiliki dua masalah besar - rendahnya kinerja mengunggah informasi ke gudang data perusahaan (QCD) dan waktu yang lama untuk merekonsiliasi data (rekonsiliasi) dengan sistem lain.

Oleh karena itu, kami mulai mencari alat yang dapat mempercepat proses ini. Solusi untuk kedua masalah tersebut adalah produk OpenEdge Progress baru - Pro2 CDC (Ubah Data Capture). Jadi mari kita mulai.

Instal Progress OpenEdge dan Pro2Oracle


Untuk menjalankan Pro2 Oracle pada komputer Windows administrator, cukup instal Progress OpenEdge Developer Kit Classroom Edition, yang dapat diunduh secara gratis. Direktori instalasi default OpenEdge:

DLC: C: \ Progress \ OpenEdge
WRK: C: \ OpenEdge \ WRK

Proses ETL memerlukan Progress OpenEdge versi 11.7+ lisensi - yaitu OE DataServer untuk Oracle dan Sistem Pengembangan 4GL. Lisensi ini disertakan dengan Pro2. Untuk operasi penuh DataServer untuk Oracle dengan basis data Oracle jarak jauh, Klien Oracle Lengkap diinstal.

Di server Oracle, Anda perlu menginstal versi Oracle Database 12+, membuat database kosong dan menambahkan pengguna (sebut saja cdc ).

Untuk menginstal Pro2Oracle, unduh paket distribusi terbaru dari pusat unduhan Perangkat Lunak Progress . Buka paket arsip ke direktori C: \ Pro2 (kit distribusi yang sama digunakan untuk mengonfigurasi Pro2 di Unix dan prinsip-prinsip konfigurasi yang sama diterapkan).

Membuat basis data replikasi cdc


Basis data replikasi cdc (repl) digunakan oleh Pro2 untuk menyimpan informasi konfigurasi, termasuk peta replikasi, nama-nama basis data yang direplikasi dan tabel-tabelnya. Ini juga berisi antrian replikasi yang terdiri dari catatan tentang fakta bahwa baris tabel dalam database sumber telah berubah. Data dari antrian replikasi digunakan oleh proses ETL untuk mengidentifikasi baris yang perlu disalin ke Oracle dari sumber database.

Buat basis data cdc terpisah.

Prosedur untuk membuat database
  1. Di server database, buat direktori untuk basis data cdc - misalnya, di / database / cdc / server.
  2. Buat dummy untuk basis cdc : procopy $ DLC / kosong cdc
  3. Aktifkan dukungan file besar: proutil cdc -C EnableLargeFiles
  4. Kami menyiapkan skrip untuk memulai basis data cdc. Parameter awal harus sama dengan parameter awal dari basis data yang direplikasi.
  5. Kami memulai basis data cdc.
  6. Kami terhubung ke basis data cdc dan memuat diagram Pro2 dari file cdc.df , yang termasuk dalam paket Pro2.
  7. Di basis data cdc, buat pengguna berikut:

pro2adm - untuk menghubungkan dari panel admin Pro2;
pro2etl - untuk menghubungkan proses ETL (ReplBatch);
pro2cdc - untuk menghubungkan proses CDC (CDCBatch);


Mengaktifkan OpenEdge Change Capture Data


Sekarang mari kita nyalakan mekanisme CDC itu sendiri, di mana data akan direplikasi ke area teknologi tambahan. Di setiap basis data sumber OpenEdge Progress, Anda perlu menambahkan area penyimpanan terpisah tempat data sumber akan digandakan, dan mengaktifkan mekanisme itu sendiri menggunakan perintah proutil .

Contoh prosedur untuk basis data bisquit
  1. Salin file cdcadd.st dari direktori C: \ Pro2 \ db ke direktori database sumber bisquit .
  2. Kami menjelaskan dalam lingkup tetap cdcadd.st untuk area ReplCDCArea dan ReplCDCArea_IDX . Anda dapat menambahkan area penyimpanan baru secara online: prostrct addonline bisquit cdcadd.st
  3. Aktifkan OpenEdge CDC:
    proutil bisquit -C area enablecdc "ReplCDCArea" indexarea "ReplCDCArea_IDX"
  4. Pengguna berikut harus dibuat di sumber basis data untuk mengidentifikasi proses yang berjalan:
    a. pro2adm - untuk menghubungkan dari panel admin Pro2.
    b. pro2etl - untuk menghubungkan proses ETL (ReplBatch).
    c. pro2cdc - untuk menghubungkan proses CDC (CDCBatch).



Membuat Pemegang Skema untuk DataServer untuk Oracle


Selanjutnya, kita perlu membuat Schema Holder database di server tempat data dari DBMS Progress ke Oracle DBMS akan direplikasi. DataServer Schema Holder adalah database Progress OpenEdge kosong tanpa data pengguna atau aplikasi, yang berisi peta korespondensi antara tabel sumber dan eksternal, tabel Oracle.

Basis data Schema Holder untuk Progress OpenEdge DataServer untuk Oracle untuk Pro2 harus ditempatkan pada server proses ETL, itu dibuat secara terpisah untuk setiap cabang.

Cara membuat Schema Holder
  1. Buka paket distribusi Pro2 ke direktori / pro2
  2. Buat dan buka direktori / pro2 / dbsh
  3. Buat basis data Pemegang Skema menggunakan proksi $ DLC / perintah bisquitsh kosong
  4. Kami mengonversi bisquitsh ke pengkodean yang diperlukan - misalnya, di UTF-8 jika database Oracle dikodekan dalam UTF-8: proutil bisquitsh -C convchar convert UTF-8
  5. Setelah membuat database bisquitsh kosong, kami terhubung ke dalam mode single-user: pro bisquitsh
  6. Pergi ke Kamus Data: Alat -> Kamus Data -> DataServer -> Utilitas ORACLE -> Buat Skema DataServer
  7. Luncurkan Pemegang Skema
  8. Konfigurasikan pialang Oracle DataServer:
    a. Mulai AdminServer.
    proadsv -mulai
    b. Mulai dari pialang Oracle DataServer
    oraman -name orabroker1 -start



Konfigurasikan panel admin dan skema replikasi


Menggunakan panel administrasi Pro2, pengaturan Pro2 dikonfigurasikan, termasuk mengatur skema replikasi dan menghasilkan program proses ETL (Perpustakaan Prosesor), program sinkronisasi utama (Proses Copy-Massal), pemicu replikasi, dan kebijakan OpenEdge CDC. Ada juga alat utama untuk memantau dan mengelola proses ETL dan CDC. Pertama-tama, kita mengkonfigurasi file parameter.

Cara mengatur file parameter
  1. Pergi ke direktori C: \ Pro2 \ bprepl \ Scripts
  2. Buka file replProc.pf untuk diedit
  3. Tambahkan parameter untuk menghubungkan ke basis data replikasi cdc:
    # Database Replikasi
    -db cdc -ld repl -H <nama host dari database utama> -S <port broker database cdc>
    -U pro2admin -P <password>
  4. Tambahkan parameter untuk menghubungkan ke database sumber dan Pemegang Skema dalam bentuk file parameter untuk replProc.pf . Nama file parameter harus cocok dengan nama database sumber yang akan dihubungkan.
    # Hubungkan ke semua BISQUIT sumber yang direplikasi
    -pf bprepl \ scripts \ bisquit.pf
  5. Tambahkan parameter untuk menghubungkan ke Schema Holder di replProc.pf.
    # Pemegang Skema Pro DB Target
    -db bisquitsh -ld bisquitsh
    -H <nama host dari proses ETL>
    -S <port broker biskuitsh>
    -db bisquitsql
    -ld bisquitsql
    ORACLE -dt
    -S 5162 -H <Oracle hostnamename>
    -DataService orabroker1
  6. Simpan file parameter replProc.pf
  7. Selanjutnya, Anda perlu membuat dan membuka untuk mengedit file parameter untuk setiap basis data sumber yang terhubung di direktori C: \ Pro2 \ bprepl \ Scripts: bisquit.pf . Setiap file pf berisi parameter untuk menghubungkan ke database yang sesuai, misalnya:
    -db bisquit -ld bisquit -H <hostname> -S <broker port>
    -U pro2admin -P <password>



Untuk mengkonfigurasi pintasan Windows, buka direktori C: \ Pro2 \ bprepl \ Scripts dan edit pintasan "Pro2 - Administration". Untuk melakukan ini, buka properti dari jalan pintas dan di baris Mulai di tunjukkan direktori instalasi Pro2. Operasi serupa perlu dilakukan untuk label "Pro2 - Editor" dan "RunBulkLoader".

Konfigurasi Administrasi Pro2: Mengunduh Konfigurasi Utama


Kami meluncurkan konsol.



Pergi ke "DB Map".



Untuk menautkan basis data di Pro2 - Administrasi, buka tab DB Map . Kami menambahkan pemetaan basis data sumber - Pemegang Skema - Oracle .



Buka tab Pemetaan . Dalam daftar Database Sumber , basis data sumber terhubung pertama kali dipilih secara default. Di sebelah kanan daftar harus Semua Database Terhubung - database yang dipilih terhubung. Daftar tabel Kemajuan dari bisquit harus terlihat di bawah di sebelah kiri. Di sebelah kanan adalah daftar tabel dari database Oracle.

Membuat SQL Schemas dan Database di Oracle


Untuk membuat peta replikasi, Anda harus terlebih dahulu membuat skema SQL di Oracle. Di Administrasi Pro2, jalankan item menu Alat -> Buat Kode -> Skema Target , lalu di kotak dialog Pilih Basis Data pilih satu atau lebih basis data sumber dan transfer ke kanan.



Klik OK dan pilih direktori untuk menyimpan skema SQL.

Selanjutnya, kami membuat basis. Ini dapat dilakukan, misalnya, melalui Oracle SQL Developer . Untuk melakukan ini, sambungkan ke database Oracle dan muat skema untuk menambahkan tabel. Setelah mengubah komposisi tabel Oracle, Anda perlu memperbarui skema SQL di Pemegang Skema.



Setelah unduhan berhasil diselesaikan, keluar dari database bisquitsh dan buka panel admin Pro2. Tabel dari database Oracle akan muncul pada tab Mapping di sebelah kanan.

Memetakan tabel


Untuk membuat peta replikasi di panel admin Pro2, buka tab Pemetaan, pilih basis data sumber. Kami klik pada Tabel Tables, pilih di sebelah kiri Pilih Perubahan tabel yang harus direplikasi ke Oracle, transfer mereka ke kanan dan konfirmasi pemilihan. Peta akan dibuat secara otomatis untuk tabel yang dipilih. Ulangi operasi untuk membuat peta replikasi untuk basis data sumber lainnya.



Generasi Perpustakaan Prosesor Replikasi Pro2 dan Program Prosesor Salinan Massal



Perpustakaan Prosesor dirancang untuk proses replikasi khusus (ETL) yang memproses antrian replikasi Pro2 dan mendorong perubahan ke database Oracle. Setelah generasi, program pustaka prosesor replikasi disimpan secara otomatis di direktori bprepl / repl_proc (parameter PROC_DIRECTORY) . Untuk menghasilkan perpustakaan prosesor replikasi, pergi ke Alat -> Hasilkan Kode -> Perpustakaan Prosesor. Setelah generasi selesai, program akan muncul di direktori bprepl / repl_proc .

Program pemroses massal digunakan untuk menyinkronkan sumber data Kemajuan sumber dengan database target Oracle berdasarkan bahasa pemrograman Progress ABL (4GL). Untuk menghasilkannya, buka item menu Tools -> Generate Code -> Bulk-Copy Processor . Di kotak dialog Pilih Database, pilih basis data sumber, transfer ke sisi kanan jendela dan klik OK . Setelah pembuatan selesai, program akan muncul di direktori bprepl \ repl_mproc .

Mengkonfigurasi proses replikasi di Pro2


Membagi tabel menjadi set yang dilayani oleh ulangan replikasi terpisah dapat meningkatkan kinerja dan efisiensi Oracle Pro2. Secara default, semua koneksi yang dibuat di peta replikasi untuk tabel replikasi baru terikat ke aliran nomor 1. Direkomendasikan agar tabel dibagi menjadi aliran yang berbeda.

Informasi tentang status arus replikasi ditampilkan pada layar Administrasi Pro2 di tab Monitor di bagian Status Replikasi. Deskripsi terperinci tentang nilai parameter dapat ditemukan di dokumentasi Pro2 (direktori C: \ Pro2 \ Documents).

Buat dan aktifkan kebijakan CDC


Kebijakan adalah seperangkat aturan untuk mekanisme OpenEdge CDC, sesuai dengan perubahan dalam tabel yang dilacak. Pada saat penulisan, Pro2 hanya mendukung kebijakan CDC dengan level 0, yaitu, hanya fakta perubahan catatan dilacak.

Untuk membuat kebijakan CDC pada panel administratif, buka tab Pemetaan, pilih basis data sumber dan klik tombol Tambah / Hapus Kebijakan. Di jendela Select Changes yang terbuka, pilih di sisi kiri dan transfer ke tabel kanan yang Anda butuhkan untuk membuat atau menghapus kebijakan CDC.

Untuk mengaktifkan, buka lagi tab Pemetaan, pilih basis data sumber dan klik tombol (Dalam) Aktifkan Kebijakan . Pilih dan transfer ke sisi kanan tabel yang kebijakannya perlu Anda aktifkan, klik OK. Setelah itu mereka ditandai dengan warna hijau. Menggunakan (Dalam) Aktifkan Kebijakan , Anda juga dapat menonaktifkan kebijakan CDC. Semua operasi dilakukan secara online.



Setelah mengaktifkan kebijakan CDC, catatan tentang catatan yang diubah disimpan di area penyimpanan "ReplCDCArea" sesuai dengan database asli. Catatan ini akan diproses oleh proses CDCBatch khusus, yang atas dasar mereka akan membuat catatan dalam antrian replikasi Pro2 dalam basis data cdc (repl) .

Jadi, kami memiliki dua antrian untuk replikasi. Tahap pertama adalah CDCBatch: dari database asli, data pertama-tama pergi ke database CDC perantara. Tahap kedua adalah ketika data dituangkan dari basis data CDC ke Oracle. Ini adalah fitur arsitektur saat ini dan produk itu sendiri - sejauh ini, pengembang belum dapat membuat replikasi langsung.

Sinkronisasi primer


Setelah menyalakan mekanisme CDC dan mengatur server replikasi Pro2, kita perlu memulai sinkronisasi utama. Perintah mulai sinkronisasi utama:

/pro2/bprepl/Script/replLoad.sh bisquit nama-tabel

Setelah sinkronisasi awal selesai, proses replikasi dapat dimulai.

Mulai proses replikasi


Untuk memulai proses replikasi, Anda perlu menjalankan skrip replbatch.sh . Sebelum memulai, pastikan ada skrip replbatch untuk semua utas - replbatch1, replbatch2, dll. Jika semuanya sudah ada, buka baris perintah (misalnya, proenv) , buka direktori / bprepl / script dan mulai skrip. Di panel administrasi, kami memverifikasi bahwa proses yang sesuai telah menerima status MENJALANKAN.



Hasil



Setelah implementasi, kami telah mempercepat pengunggahan informasi ke gudang data perusahaan. Data itu sendiri masuk ke Oracle online. Tidak perlu menghabiskan waktu pada beberapa permintaan jangka panjang untuk mengumpulkan data dari sistem yang berbeda. Selain itu, dalam solusi ini, proses replikasi dapat memampatkan data, yang juga memiliki efek positif pada kecepatan. Sekarang, rekonsiliasi harian dari sistem BISKVIT dengan sistem lain mulai memakan waktu 15-20 menit, bukannya 2-2,5 jam, dan rekonsiliasi penuh - beberapa jam, bukan dua hari.

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


All Articles