چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

از سال 1999، بانک ما از سیستم بانکی یکپارچه BISKVIT بر روی پلتفرم Progress OpenEdge استفاده کرده است که به طور گسترده در سراسر جهان از جمله در بخش مالی استفاده می شود. عملکرد این DBMS به شما این امکان را می دهد که تا یک میلیون یا بیشتر رکورد را در هر ثانیه در یک پایگاه داده (DB) بخوانید. Progress OpenEdge ما حدود 1,5 میلیون سپرده انفرادی و حدود 22,2 میلیون قرارداد برای محصولات فعال (وام خودرو و وام مسکن) را ارائه می دهد و همچنین مسئول تمام تسویه حساب ها با تنظیم کننده (بانک مرکزی) و سوئیفت است.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

با استفاده از Progress OpenEdge، با نیاز به کارکرد آن با Oracle DBMS مواجه شدیم. در ابتدا، این بسته گلوگاه زیرساخت ما بود - تا زمانی که Pro2 CDC را نصب و پیکربندی کردیم - یک محصول Progress که به شما امکان می‌دهد داده‌ها را از Progress DBMS به DBMS Oracle مستقیماً آنلاین ارسال کنید. در این پست با تمام مشکلات به شما خواهیم گفت که چگونه به طور موثر بین OpenEdge و Oracle دوست پیدا کنید.

چگونه اتفاق افتاد: آپلود داده ها در QCD از طریق اشتراک گذاری فایل

اول، برخی از حقایق در مورد زیرساخت ما. تعداد کاربران فعال پایگاه تقریباً 15 هزار نفر است. حجم تمامی پایگاه های داده تولیدی اعم از replica و standby 600 ترابایت و بزرگترین پایگاه داده 16,5 ترابایت است. در همان زمان، پایگاه‌های اطلاعاتی دائماً در حال تکمیل شدن هستند: تنها در سال گذشته، حدود 120 ترابایت داده تولیدی اضافه شده است. این سیستم توسط 150 سرور جلو بر روی پلت فرم x86 تغذیه می شود. پایگاه داده ها بر روی 21 سرور پلتفرم IBM میزبانی می شوند.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم
سیستم‌های فرانت‌اند، سیستم‌های مختلف بانکداری هسته‌ای و خدمات بانکی با OpenEdge Progress (BISCUIT IBS) از طریق گذرگاه Sonic ESB یکپارچه شده‌اند. آپلود داده ها در QCD از طریق تبادل فایل انجام می شود. تا زمان معینی، این راه حل به طور همزمان دو مشکل بزرگ داشت - عملکرد پایین بارگذاری اطلاعات در انبار داده های شرکتی (CDW) و زمان طولانی برای انجام تطبیق داده ها (سازگاری) با سیستم های دیگر.
چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم
بنابراین، ما شروع به جستجوی ابزاری کردیم که بتواند این فرآیندها را سرعت بخشد. راه حل هر دو مشکل محصول جدید Progress OpenEdge - Pro2 CDC (Change Data Capture) بود. بنابراین، بیایید شروع کنیم.

Progress OpenEdge و Pro2Oracle را نصب کنید

برای اجرای Pro2 Oracle بر روی رایانه ویندوزی مدیر، کافی است Progress OpenEdge Developer Kit Classroom Edition را نصب کنید که می تواند دانلود رایگان. دایرکتوری های نصب پیش فرض OpenEdge:

DLC: C:ProgressOpenEdge
WRK: C:OpenEdgeWRK

فرآیندهای ETL به مجوزهای Progress OpenEdge نسخه 11.7+ نیاز دارند - یعنی OE DataServer برای Oracle و سیستم توسعه 4GL. این مجوزها همراه با Pro2 هستند. برای کارکرد کامل DataServer برای Oracle با پایگاه داده اوراکل راه دور، Full Oracle Client نصب شده است.

در سرور Oracle شما باید Oracle Database 12+ را نصب کنید، یک پایگاه داده خالی ایجاد کنید و یک کاربر اضافه کنید (بیایید با او تماس بگیریم. سی دی سی).

برای نصب Pro2Oracle، آخرین توزیع را از مرکز دانلود دانلود کنید پیشرفت نرم افزار. آرشیو را در یک فهرست باز کنید C: Pro2 (برای پیکربندی Pro2 در یونیکس، از همان توزیع استفاده می شود و اصول پیکربندی یکسانی اعمال می شود).

ایجاد پایگاه داده تکثیر cdc

پایگاه داده تکرار سی دی سی (repl) Pro2 برای ذخیره اطلاعات پیکربندی، از جمله نقشه تکرار، نام پایگاه های داده تکراری و جداول آنها استفاده می شود. همچنین شامل یک صف تکرار است که شامل یادداشت هایی درباره این واقعیت است که یک ردیف جدول در پایگاه داده منبع تغییر کرده است. داده های صف تکرار توسط فرآیندهای ETL برای شناسایی ردیف هایی که باید از پایگاه داده منبع در Oracle کپی شوند استفاده می شود.

ما در حال ایجاد یک پایگاه داده cdc جداگانه هستیم.

مراحل ایجاد پایگاه داده

  1. در سرور پایگاه داده ما یک دایرکتوری برای پایگاه داده cdc ایجاد می کنیم - به عنوان مثال، روی سرور /پایگاه داده/cdc/.
  2. یک ساختگی برای پایگاه داده cdc ایجاد کنید: $DLC/cdc خالی را کپی کنید
  3. فعال کردن پشتیبانی از فایل های حجیم: proutil cdc -C EnableLargeFiles
  4. یک اسکریپت برای راه اندازی دیتابیس cdc آماده می کنیم. پارامترهای شروع باید مشابه پارامترهای شروع پایگاه داده تکراری باشند.
  5. پایگاه داده cdc را راه اندازی می کنیم.
  6. به پایگاه داده cdc متصل شوید و طرح Pro2 را از فایل بارگذاری کنید cdc.dfکه همراه با Pro2 موجود است.
  7. ما کاربران زیر را در پایگاه داده cdc ایجاد می کنیم:

pro2adm – برای اتصال از پنل اداری Pro2؛
pro2etl - برای اتصال فرآیندهای ETL (ReplBatch)؛
pro2cdc - برای اتصال فرآیندهای CDC (CDCBatch)؛

فعال کردن OpenEdge Change Data Capture

اکنون بیایید خود مکانیسم CDC را روشن کنیم، که با کمک آن داده ها در یک منطقه فناوری اضافی تکرار می شوند. به هر پایگاه داده منبع Progress OpenEdge، باید مناطق ذخیره‌سازی جداگانه‌ای اضافه کنید که داده‌های منبع در آنها کپی می‌شوند و خود مکانیزم را با استفاده از دستور فعال کنید. proutil.

روش مثال برای پایگاه داده bisquit

  1. کپی برداری از کاتالوگ C: Pro2db فایل cdcadd.st به دایرکتوری پایگاه داده منبع bisquit.
  2. در توضیح می دهیم cdcadd.st وسعت اندازه ثابت برای مناطق "ReplCDCArea" и "ReplCDCArea_IDX". می توانید فضای ذخیره سازی جدیدی را به صورت آنلاین اضافه کنید: prostrct addonline bisquit cdcadd.st
  3. CDC OpenEdge را فعال کنید:
    proutil bisquit -C enablecdc area "ReplCDCArea" index area "ReplCDCArea_IDX"
  4. برای شناسایی فرآیندهای در حال اجرا، کاربران زیر باید در پایگاه داده منبع ایجاد شوند:
    آ. pro2adm – برای اتصال از پنل مدیریتی Pro2.
    ب pro2etl - برای اتصال فرآیندهای ETL (ReplBatch).
    ج pro2cdc - برای اتصال فرآیندهای CDC (CDCBatch).

ایجاد یک Schema Holder برای DataServer برای Oracle

در مرحله بعد، ما باید یک پایگاه داده Schema Holder در سرور ایجاد کنیم که در آن داده های Progress DBMS به Oracle DBMS کپی می شود. DataServer Schema Holder یک پایگاه داده خالی Progress OpenEdge بدون کاربران یا داده های برنامه است که حاوی نقشه ای از مکاتبات بین جداول منبع و جداول خارجی Oracle است.

پایگاه داده Schema Holder برای Progress OpenEdge DataServer برای Oracle برای Pro2 باید در سرور پردازش ETL قرار داشته باشد؛ این پایگاه به طور جداگانه برای هر شاخه ایجاد می شود.

نحوه ایجاد یک Schema Holder

  1. توزیع Pro2 را در یک پوشه باز کنید /pro2
  2. ایجاد کنید و به دایرکتوری بروید /pro2/dbsh
  3. با استفاده از دستور یک پایگاه داده Schema Holder ایجاد کنید $DLC/empty bisquitsh را کپی کنید
  4. انجام تبدیل بیسکویتش به کدگذاری مورد نیاز - به عنوان مثال، در UTF-8 اگر پایگاه داده های Oracle دارای رمزگذاری UTF-8 باشند: proutil bisquitsh -C convchar تبدیل UTF-8
  5. پس از ایجاد یک پایگاه داده خالی بیسکویتش در حالت تک کاربره به آن متصل شوید: طرفدار بیسکویتش
  6. بیایید به دیکشنری داده ها برویم: ابزار -> دیکشنری داده -> سرور داده -> ابزارهای ORACLE -> ایجاد طرحواره DataServer
  7. Schema Holder را راه اندازی کنید
  8. راه اندازی بروکر Oracle DataServer:
    آ. AdminServer را راه اندازی کنید.
    proadsv -شروع
    ب شروع کارگزار Oracle DataServer
    oraman -name orabroker1 -start

راه اندازی پنل مدیریتی و طرح تکرار

با استفاده از پانل اداری Pro2، پارامترهای Pro2 پیکربندی می‌شوند، از جمله راه‌اندازی طرح تکرار و تولید فرآیندهای ETL (کتابخانه پردازشگر)، برنامه‌های همگام‌سازی اولیه (پردازنده کپی انبوه)، محرک‌های تکرار و سیاست‌های OpenEdge CDC. همچنین ابزارهای اولیه برای نظارت و مدیریت فرآیندهای ETL و CDC وجود دارد. اول از همه، ما فایل های پارامتر را تنظیم می کنیم.

نحوه پیکربندی فایل های پارامتر

  1. به کاتالوگ بروید C: Pro2bpreplScripts
  2. فایل را برای ویرایش باز کنید replProc.pf
  3. اضافه کردن پارامترهای اتصال به پایگاه داده تکرار cdc:
    # پایگاه داده تکرار
    -db cdc -ld repl -H <نام میزبان پایگاه داده اصلی> -S <درگاه کارگزار پایگاه داده cdc>
    -U pro2admin -P <گذرواژه>
  4. اضافه کردن به replProc.pf پارامترهای اتصال به پایگاه های داده منبع و Schema Holder در قالب فایل های پارامتر. نام فایل پارامترها باید با نام پایگاه داده منبع در حال اتصال مطابقت داشته باشد.
    # اتصال به همه منابع تکراری BISQUIT
    -pf bpreplscriptsbisquit.pf
  5. اضافه کردن به replProc.pf پارامترهای اتصال به Schema Holder.
    #Target Pro DB Schema Holder
    -db bisquitsh -ld bisquitsh
    -H <نام میزبان فرآیند ETL>
    -S <biskuitsh broker port>
    -db bisquitsql
    -ld bisquitsql
    -dt ORACLE
    -S 5162 -H <نام میزبان بروکر اوراکل>
    -DataService orabroker1
  6. فایل پارامترها را ذخیره کنید replProc.pf
  7. در مرحله بعد، باید فایل های پارامتری را برای هر پایگاه داده منبع متصل در دایرکتوری ایجاد و برای ویرایش باز کنید C:Pro2bpreplScripts: bisquit.pf. هر فایل pf شامل پارامترهایی برای اتصال به پایگاه داده مربوطه است، به عنوان مثال:
    -db bisquit -ld bisquit -H <hostname> -S <broker port>
    -U pro2admin -P <گذرواژه>

برای پیکربندی میانبرهای ویندوز، باید به دایرکتوری بروید C: Pro2bpreplScripts و میانبر Pro2 – Administration را ویرایش کنید. برای انجام این کار، ویژگی های میانبر و در خط را باز کنید شروع کنید دایرکتوری نصب Pro2 را نشان می دهد. عملیات مشابهی باید برای میانبرهای «Pro2 – Editor» و «RunBulkLoader» انجام شود.

راه اندازی مدیریت Pro2: بارگیری پیکربندی اولیه

بیایید کنسول را راه اندازی کنیم.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

به "DB Map" بروید.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

برای پیوند دادن پایگاه‌های داده در Pro2 – Administration، به تب بروید نقشه DB. اضافه کردن نقشه پایگاه داده منبع - Schema Holder - Oracle.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

به برگه بروید نقشه برداری. ذکر شده پایگاه داده منبع به طور پیش فرض، اولین پایگاه داده منبع متصل انتخاب شده است. در سمت راست لیست باید یک کتیبه وجود داشته باشد همه پایگاه های داده متصل شده اند - پایگاه های داده انتخاب شده متصل هستند. در زیر سمت چپ باید لیستی از جداول Progress را از bisquit مشاهده کنید. در سمت راست لیستی از جداول از پایگاه داده اوراکل وجود دارد.

ایجاد طرحواره ها و پایگاه داده های SQL در اوراکل

برای ایجاد یک نقشه تکراری، ابتدا باید تولید کنید طرحواره SQL در اوراکل در Pro2 Administration آیتم منو را اجرا می کنیم ابزارها -> تولید کد -> طرحواره هدف، سپس در کادر محاوره ای پایگاه داده را انتخاب کنید یک یا چند پایگاه داده منبع را انتخاب کرده و به سمت راست منتقل کنید.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

روی OK کلیک کنید و دایرکتوری را برای ذخیره طرحواره های SQL انتخاب کنید.

بعد ما پایه را ایجاد می کنیم. این را می توان به عنوان مثال از طریق توسعه دهنده Oracle SQL. برای این کار به پایگاه داده Oracle متصل می شویم و طرحی را برای اضافه کردن جداول بارگذاری می کنیم. پس از تغییر ترکیب جداول اوراکل، باید طرحواره های SQL را در Schema Holder به روز کنید.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

پس از اینکه دانلود با موفقیت انجام شد، از پایگاه داده bisquitsh خارج شده و پنل مدیریت Pro2 را باز کنید. جداول از پایگاه داده اوراکل باید در برگه Mapping در سمت راست ظاهر شوند.

نقشه برداری جدول

برای ایجاد نقشه تکراری، در پنل مدیریت Pro2، به تب Mapping رفته و پایگاه داده منبع را انتخاب کنید. روی Map Tables کلیک کنید، در سمت چپ جداول که باید در Oracle تکرار شوند، گزینه Select Changes را انتخاب کنید، آنها را به سمت راست منتقل کنید و انتخاب را تأیید کنید. یک نقشه به طور خودکار برای جداول انتخاب شده ایجاد می شود. ما این عملیات را برای ایجاد یک نقشه تکراری برای سایر پایگاه های داده منبع تکرار می کنیم.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

ایجاد کتابخانه پردازشگر تکرار Pro2 و برنامه های پردازشگر کپی انبوه

کتابخانه Replication Processor برای فرآیندهای تکرار سفارشی (ETL) طراحی شده است که صف تکرار Pro2 را پردازش می کند و تغییرات را به پایگاه داده Oracle فشار می دهد. برنامه های کتابخانه پردازشگر Replication به طور خودکار پس از تولید در دایرکتوری ذخیره می شوند bprepl/repl_proc (پارامتر PROC_DIRECTORY). برای تولید کتابخانه پردازشگر تکثیر، به ابزار -> تولید کد -> کتابخانه پردازشگر. پس از تکمیل تولید، برنامه ها در دایرکتوری ظاهر می شوند bprepl/repl_proc.

برنامه های Bulk Load Processor برای همگام سازی پایگاه های داده منبع Progress با پایگاه داده Oracle هدف بر اساس زبان برنامه نویسی Progress ABL (4GL) استفاده می شود. برای تولید آنها، به آیتم منو بروید ابزارها -> تولید کد -> پردازشگر کپی انبوه. در کادر محاوره ای Select Database، پایگاه های داده منبع را انتخاب کرده، آنها را به سمت راست پنجره منتقل کرده و کلیک کنید OK. پس از تکمیل تولید، برنامه ها در دایرکتوری ظاهر می شوند bpreplrepl_mproc.

راه اندازی فرآیندهای تکرار در Pro2

تقسیم جداول به مجموعه هایی که توسط یک رشته تکرار جداگانه ارائه می شوند، عملکرد و کارایی Pro2 Oracle را بهبود می بخشد. به طور پیش فرض، تمام اتصالات ایجاد شده در نقشه تکرار برای جداول تکرار جدید با رشته شماره 1 مرتبط است. توصیه می شود جداول را به رشته های مختلف جدا کنید.

اطلاعات مربوط به وضعیت رشته های تکرار بر روی صفحه Pro2 Administration در تب Monitor در قسمت Replication Status نمایش داده می شود. شرح مفصلی از مقادیر پارامتر را می توان در مستندات Pro2 (دایرکتوری C:Pro2Docs) یافت.

سیاست های CDC را ایجاد و فعال کنید

سیاست ها مجموعه ای از قوانین برای موتور OpenEdge CDC برای نظارت بر تغییرات جداول هستند. در زمان نگارش، Pro2 فقط از سیاست های CDC با سطح 0 پشتیبانی می کند، یعنی فقط واقعیت نظارت می شود ثبت تغییرات.

برای ایجاد یک سیاست CDC، در پانل مدیریت، به تب Mapping بروید، پایگاه داده منبع را انتخاب کنید و روی دکمه افزودن/حذف سیاست ها کلیک کنید. در پنجره Select Changes که باز می‌شود، در سمت چپ جدول‌هایی را که باید برای آن‌ها یک سیاست CDC ایجاد یا حذف کنید، به سمت راست منتقل کنید.

برای فعال سازی، دوباره تب Mapping را باز کنید، پایگاه داده منبع را انتخاب کرده و روی دکمه کلیک کنید (در)سیاست‌ها را فعال کنید. سیاست هایی که باید فعال شوند را انتخاب کرده و به سمت راست جدول منتقل کنید، روی OK کلیک کنید. پس از این، آنها با رنگ سبز مشخص می شوند. با استفاده از (در)سیاست‌ها را فعال کنید همچنین می توانید سیاست های CDC را غیرفعال کنید. تمامی تراکنش ها به صورت آنلاین انجام می شود.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

پس از فعال شدن خط‌مشی CDC، یادداشت‌های مربوط به رکوردهای اصلاح شده در فضای ذخیره‌سازی ذخیره می‌شوند "ReplCDCArea" با توجه به پایگاه داده منبع این یادداشت ها طی یک فرآیند خاص پردازش می شوند CDCBatchکه بر اساس آنها یادداشت هایی در صف تکرار Pro2 در پایگاه داده ایجاد می کند سی دی سی (repl).

بنابراین، ما دو صف برای تکرار داریم. مرحله اول CDCBatch است: از پایگاه داده منبع، داده ها ابتدا به پایگاه داده CDC میانی می روند. مرحله دوم زمانی است که داده ها از پایگاه داده CDC به اوراکل منتقل می شود. این یکی از ویژگی های معماری فعلی و خود محصول است - تا کنون توسعه دهندگان قادر به ایجاد تکرار مستقیم نبوده اند.

همگام سازی اولیه

پس از فعال کردن مکانیسم CDC و راه اندازی سرور تکرار Pro2، باید همگام سازی اولیه را شروع کنیم. دستور همگام سازی اولیه:

/pro2/bprepl/Script/replLoad.sh نام جدول بیسکوئیت

پس از تکمیل همگام سازی اولیه، فرآیندهای تکرار را می توان شروع کرد.

شروع فرآیندهای تکثیر

برای شروع فرآیندهای تکرار، باید یک اسکریپت اجرا کنید replbatch.sh. قبل از شروع، مطمئن شوید که اسکریپت های replbatch برای همه رشته ها وجود دارد - replbatch1، replbatch2 و غیره. اگر همه چیز درست است، خط فرمان را باز کنید (به عنوان مثال، proenv)، به دایرکتوری بروید /bprepl/scripts و اسکریپت را شروع کنید. در پنل مدیریت، بررسی می کنیم که فرآیند مربوطه وضعیت RUNNING را دریافت کرده باشد.

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم

یافته ها

چگونه بین سیستم بانکی Progress OpenEdge و Oracle DBMS دوست شویم
پس از اجرا، بارگذاری اطلاعات در انبار داده شرکت را بسیار تسریع کردیم. داده ها به طور خودکار به Oracle آنلاین می شوند. برای جمع‌آوری داده‌ها از سیستم‌های مختلف، نیازی به اتلاف وقت برای اجرای برخی پرس‌و‌جوهای طولانی‌مدت نیست. علاوه بر این، در این راه حل فرآیند Replication می تواند داده ها را فشرده کند که این امر نیز تأثیر مثبتی بر سرعت دارد. اکنون آشتی روزانه سیستم BISKVIT با سایر سیستم ها به جای 15-20 ساعت 2-2,5 دقیقه طول می کشد و آشتی کامل به جای دو روز چندین ساعت طول می کشد.

منبع: www.habr.com

اضافه کردن نظر