منذ عام 1999 ، يستخدم مصرفنا نظام BISKVIT المصرفي المتكامل على منصة Progress OpenEdge لخدمة المكتب الخلفي ، والذي يستخدم على نطاق واسع في جميع أنحاء العالم ، بما في ذلك في القطاع المالي. يتيح لك أداء نظام إدارة قواعد البيانات هذا قراءة ما يصل إلى مليون سجل أو أكثر في الثانية الواحدة في قاعدة بيانات واحدة (DB). يخدم تقدمنا OpenEdge حوالي 1.5 مليون من ودائع الأفراد وحوالي 22.2 مليون عقد للمنتجات النشطة (قروض السيارات والرهون العقارية) ، كما أنه مسؤول عن جميع التسويات مع الجهة المنظمة (CB) و SWIFT.

باستخدام Progress OpenEdge ، نواجه حقيقة أننا نحتاج إلى تكوين صداقات مع Oracle DBMS. في البداية ، كانت هذه الحزمة "عنق الزجاجة" في بنيتنا الأساسية - حتى نقوم بتثبيت Pro2 CDC وتكوينه - وهو منتج تقدم يسمح لك بإرسال البيانات من Progress DBMSs إلى Oracle DBMSs مباشرة ، عبر الإنترنت. في هذا المنشور ، سنشرح بالتفصيل ، مع كل العثرات ، كيفية تكوين صداقات فعالة مع OpenEdge و Oracle.
كيف كان: تحميل البيانات إلى QCD من خلال تبادل الملفات
أولاً ، بعض الحقائق عن البنية التحتية لدينا. عدد المستخدمين النشطين لقاعدة البيانات حوالي 15 ألف. حجم جميع قواعد البيانات الإنتاجية ، بما في ذلك النسخ المتماثلة والاستعداد ، هو 600 تيرابايت ، أكبر قاعدة بيانات هي 16.5 تيرابايت. في الوقت نفسه ، يتم تجديد قواعد البيانات باستمرار: في العام الماضي وحده ، تمت إضافة حوالي 120 تيرابايت من البيانات الإنتاجية. يوفر النظام 150 خادمًا أماميًا على نظام x86. يتم استضافة قواعد البيانات على 21 من خوادم النظام الأساسي لـ IBM.

تم دمج الأنظمة الأمامية ومختلف خدمات ABS والخدمات المصرفية مع OpenEdge Progress (IBS BISQUIT) عبر حافلة Sonic ESB. يتم تحميل البيانات إلى QCD من خلال تبادل الملفات. مثل هذا الحل ، حتى وقت معين من الوقت ، واجه على الفور مشكلتين كبيرتين - الأداء المنخفض لتحميل المعلومات إلى مستودع بيانات الشركة (QCD) والوقت الطويل الذي يستغرقه التوفيق بين البيانات (التسوية) مع الأنظمة الأخرى.

لذلك ، بدأنا في البحث عن أداة يمكنها تسريع هذه العمليات. كان الحل لكلتا المشكلتين هو بالتحديد منتج Progress OpenEdge الجديد - Pro2 CDC (تغيير التقاط البيانات). لذلك دعونا نبدأ.
تثبيت التقدم OpenEdge و Pro2Oracle
لتشغيل Pro2 Oracle على كمبيوتر يعمل بنظام التشغيل Windows كمسؤول ، ما عليك إلا تثبيت الإصدار Progress OpenEdge Developer Kit Classroom Edition ، والذي يمكن
تنزيله مجانًا. دلائل التثبيت الافتراضية OpenEdge:
DLC: C: \ Progress \ OpenEdge
WRK: C: \ OpenEdge \ WRKتتطلب عمليات ETL تراخيص الإصدار 11.7 من Progress OpenEdge - وهي OE DataServer لنظام Oracle و 4GL Development. يتم تضمين هذه التراخيص مع Pro2. للتشغيل الكامل لـ DataServer for Oracle مع قاعدة بيانات Oracle عن بعد ، يتم تثبيت Full Oracle Client.
على خادم Oracle ، تحتاج إلى تثبيت إصدار Oracle Database 12+ ، وإنشاء قاعدة بيانات فارغة وإضافة المستخدم (دعنا نسميها
cdc ).
لتثبيت Pro2Oracle ، قم بتنزيل أحدث حزمة توزيع من مركز تنزيل
برمجيات التقدم . قم بفك
ضغط الأرشيف في دليل
C: \ Pro2 (يتم استخدام نفس مجموعة التوزيع لتكوين Pro2 على Unix ويتم تطبيق نفس مبادئ التكوين).
إنشاء قاعدة بيانات النسخ المتماثل cdc
يستخدم Pro2 قاعدة بيانات النسخ المتماثل
cdc (repl) لتخزين معلومات التكوين ، بما في ذلك خريطة النسخ المتماثل وأسماء قواعد البيانات المنسوخة وجداولها. يحتوي أيضًا على قائمة انتظار النسخ متماثل تتكون من ملاحظات حول حقيقة أن صف الجدول في قاعدة البيانات المصدر قد تغير. يتم استخدام البيانات من قائمة انتظار النسخ المتماثل بواسطة عمليات ETL لتحديد الصفوف التي يجب نسخها إلى Oracle من قاعدة البيانات المصدر.
إنشاء قاعدة بيانات منفصلة CDC.
الإجراء لإنشاء قاعدة بيانات- على خادم قاعدة البيانات ، قم بإنشاء دليل لقاعدة بيانات cdc - على سبيل المثال ، على / database / cdc / server.
- إنشاء دمية لقاعدة CDC : procopy $ DLC / cdc فارغة
- تمكين دعم الملفات الكبيرة: proutil cdc -C EnableLargeFiles
- نقوم بإعداد البرنامج النصي لبدء تشغيل قاعدة بيانات cdc. يجب أن تكون معلمات البدء مشابهة لمعلمات البدء لقاعدة البيانات المنسوخة.
- نبدأ قاعدة البيانات cdc.
- نتصل بقاعدة بيانات cdc ونحمل مخطط Pro2 من ملف cdc.df ، والذي تم تضمينه مع حزمة Pro2.
- في قاعدة بيانات cdc ، قم بإنشاء المستخدمين التاليين:
pro2adm - للاتصال من لوحة إدارة Pro2 ؛
pro2etl - لربط عمليات ETL (ReplBatch) ؛
pro2cdc - لتوصيل عمليات CDC (CDCBatch) ؛ تفعيل OpenEdge تغيير التقاط البيانات
الآن دعنا نشغل آلية CDC نفسها ، والتي من خلالها سيتم نسخ البيانات إلى منطقة تكنولوجية إضافية. في كل قاعدة بيانات لمصدر Progress OpenEdge ، تحتاج إلى إضافة مساحات تخزين منفصلة يتم نسخ بيانات المصدر إليها ، وتنشيط الآلية نفسها باستخدام
الأمر proutil .
مثال الإجراء لقاعدة البيانات البسكويت- قم بنسخ ملف cdcadd.st من دليل C: \ Pro2 \ db إلى دليل قاعدة بيانات مصدر bisquit .
- وصفنا في cdcadd.st نطاقات المدى الثابت لمناطق ReplCDCArea و ReplCDCArea_IDX . يمكنك إضافة مناطق تخزين جديدة عبر الإنترنت: prostrct addonline bisquit cdcadd.st
- تنشيط OpenEdge CDC:
proutil bisquit -C enablecdc area "ReplCDCArea" indexarea "ReplCDCArea_IDX"
- يجب إنشاء المستخدمين التاليين في قاعدة البيانات المصدر لتحديد العمليات الجارية:
أ. pro2adm - للاتصال من لوحة إدارة Pro2.
ب. pro2etl - لربط عمليات ETL (ReplBatch).
ج. pro2cdc - لتوصيل عمليات CDC (CDCBatch).
إنشاء حامل مخطط لـ DataServer لـ Oracle
بعد ذلك ، نحتاج إلى إنشاء حامل مخطط قاعدة البيانات على الخادم حيث سيتم نسخ البيانات من Progress DBMS إلى Oracle DBMS. حامل مخطط DataServer هو قاعدة بيانات تقدم OpenEdge فارغة بدون مستخدمين أو بيانات التطبيق ، تحتوي على خريطة للمراسلات بين الجداول المصدر وجداول Oracle الخارجية.
يجب أن تكون قاعدة بيانات حامل المخطط الخاصة بـ Progress OpenEdge DataServer for Oracle for Pro2 موجودة على خادم معالجة ETL ؛ يتم إنشاؤها بشكل منفصل لكل فرع.
كيفية إنشاء حامل مخطط- قم بفك توزيع Pro2 في الدليل / pro2
- قم بإنشاء وانتقل إلى الدليل / pro2 / dbsh
- إنشاء قاعدة بيانات "حامل المخطط" باستخدام الأمر procopy $ DLC / فارغ bisquitsh
- نقوم بتحويل bisquitsh إلى الترميز الضروري - على سبيل المثال ، في UTF-8 إذا تم تشفير قواعد بيانات Oracle في UTF-8: proutil bisquitsh -C convchar convert UTF-8
- بعد إنشاء قاعدة بيانات bisquitsh فارغة ، نحن نتصل به في وضع المستخدم المفرد: pro bisquitsh
- انتقل إلى قاموس البيانات: أدوات -> قاموس البيانات -> DataServer -> أدوات ORACLE -> إنشاء مخطط DataServer
- إطلاق مخطط الحامل
- تكوين وسيط Oracle DataServer:
أ. بدء AdminServer.
proadsv بدء
ب. بدء وسيط Oracle DataServer
oraman -name orabroker1 -Start
تكوين لوحة المسؤول ونظام النسخ المتماثل
باستخدام لوحة إدارة Pro2 ، يتم تكوين إعدادات Pro2 ، بما في ذلك إعداد نظام النسخ المتماثل وإنشاء برامج عملية ETL (مكتبة المعالج) وبرامج المزامنة الأساسية (معالج النسخ المجمع) ومشغلات النسخ المتماثل وسياسات OpenEdge CDC. هناك أيضًا أدوات أساسية لمراقبة وإدارة عمليات ETL و CDC. بادئ ذي بدء ، نحن تكوين ملفات المعلمة.
كيفية إعداد ملفات المعلمة- انتقل إلى الدليل C: \ Pro2 \ bprepl \ Scripts
- افتح الملف replProc.pf للتحرير
- أضف المعلمات للاتصال بقاعدة بيانات النسخ المتماثل cdc:
# قاعدة بيانات النسخ المتماثل
-db cdc -ld repl -H <اسم مضيف قاعدة البيانات الرئيسية> -S <منفذ وسيط قاعدة بيانات cdc>
-U pro2admin -P <password>
- إضافة المعلمات للاتصال بقواعد البيانات المصدر وحامل المخطط في شكل ملفات المعلمات إلى replProc.pf . يجب أن يتطابق اسم ملف المعلمة مع اسم قاعدة البيانات المصدر المطلوب توصيلها.
# الاتصال لجميع البسكويت مصدر منسوخ
-pf bprepl \ scripts \ bisquit.pf
- إضافة المعلمات للاتصال "حامل المخطط" في replProc.pf.
#Target Pro DB Schema Holder
-db bisquitsh -ld bisquitsh
-H <اسم المضيف لعمليات ETL>
-S <منفذ biskuitsh وسيط>
-db bisquitsql
- بسكيتسل
أوراكل
-S 5162 -H <Oracle hostname>
-خدمة البيانات orabroker1
- احفظ ملف المعلمة replProc.pf
- بعد ذلك ، تحتاج إلى إنشاء ملفات المعلمات لكل قاعدة بيانات مصدر متصلة وفتحها في الدليل C: \ Pro2 \ bprepl \ Scripts: bisquit.pf . يحتوي كل ملف pf على معلمات للاتصال بقاعدة البيانات المقابلة ، على سبيل المثال:
-db bisquit -ld bisquit -H <hostname> -S <وسيط المنفذ>
-U pro2admin -P <password>
لتكوين اختصارات Windows ، انتقل إلى دليل
C: \ Pro2 \ bprepl \ Scripts وقم بتحرير اختصار "Pro2 - Administration". للقيام بذلك ، افتح خصائص الاختصار وفي السطر
ابدأ ، أشر إلى دليل التثبيت Pro2. يجب إجراء عملية مماثلة للتسميات "Pro2 - Editor" و "RunBulkLoader".
تكوين إدارة Pro2: تنزيل التكوين الأساسي
نطلق وحدة التحكم.

انتقل إلى "خريطة DB".

لربط قواعد البيانات في Pro2 - الإدارة ، انتقل إلى علامة التبويب
خريطة DB . نضيف تعيين قواعد البيانات المصدر -
حامل المخطط - أوراكل .

انتقل إلى علامة التبويب
تعيين . في قائمة "
قاعدة البيانات المصدر" ، يتم تحديد قاعدة البيانات المصدر الأول المتصلة بشكل افتراضي. على يمين القائمة يجب أن تكون
جميع قواعد البيانات متصلة - يتم توصيل قواعد البيانات المحددة. يجب أن تكون قائمة جداول التقدم من البسكويت مرئية أدناه على اليسار. على اليمين توجد قائمة بالجداول من قاعدة بيانات Oracle.
إنشاء مخططات SQL وقواعد البيانات في Oracle
لإنشاء مخطط للنسخ المتماثل ، يجب عليك أولاً إنشاء
مخطط SQL في Oracle. في إدارة Pro2 ، قم بتنفيذ
أدوات عنصر القائمة
-> إنشاء رمز -> مخطط الهدف ، ثم في مربع الحوار "
تحديد قاعدة البيانات" ، حدد قاعدة بيانات واحدة أو أكثر من المصادر وقم بنقلها إلى اليمين.

انقر فوق "موافق" وحدد الدليل لحفظ مخططات SQL.
بعد ذلك ، نخلق القاعدة. يمكن القيام بذلك ، على سبيل المثال ، من خلال
Oracle SQL Developer . للقيام بذلك ، قم بالاتصال بقاعدة بيانات Oracle وتحميل المخطط لإضافة الجداول. بعد تغيير تكوين جداول Oracle ، تحتاج إلى تحديث مخططات SQL في "حامل المخطط".

بعد اكتمال التنزيل بنجاح ، قم بالخروج من قاعدة بيانات bisquitsh وافتح لوحة إدارة Pro2. يجب أن تظهر الجداول من قاعدة بيانات Oracle في علامة التبويب تعيين على اليمين.
رسم الخرائط الجداول
لإنشاء خريطة نسخ متماثل في لوحة إدارة Pro2 ، انتقل إلى علامة التبويب تعيين ، حدد قاعدة البيانات المصدر. نضغط على Map Tables ، وحدد على اليسار تحديد Changes والجداول التي يجب نسخها إلى Oracle ، ونقلها إلى اليمين وتأكيد التحديد. سيتم إنشاء خريطة تلقائيًا للجداول المحددة. كرر العملية لإنشاء مخطط النسخ متماثل لقواعد البيانات المصدر الأخرى.

إنشاء مكتبة معالج النسخ المتماثل Pro2 وبرامج معالج نسخ كبيرة الحجم
تم تصميم مكتبة المعالج لعمليات النسخ المتماثل الخاصة (ETLs) التي تقوم بمعالجة قائمة انتظار النسخ المتماثل Pro2 ودفع التغييرات إلى قاعدة بيانات Oracle. بعد
الإنشاء ، يتم حفظ برامج مكتبة معالج النسخ المتماثل تلقائيًا في دليل
bprepl / repl_proc (المعلمة PROC_DIRECTORY) . لإنشاء مكتبة معالج النسخ المتماثل ، انتقل إلى
أدوات -> إنشاء رمز -> مكتبة المعالج. بعد اكتمال
الإنشاء ، ستظهر البرامج في دليل
bprepl / repl_proc .
تُستخدم برامج المعالجات الجماعية لمزامنة مصدر قواعد بيانات Progress مع قاعدة بيانات Oracle الهدف بناءً على لغة برمجة Progress ABL (4GL). لإنشاءها ، انتقل إلى
أدوات عنصر القائمة
-> إنشاء رمز -> معالج النسخ بالجملة . في مربع الحوار Select Database ، حدد قاعدة البيانات المصدر ، وانقلها إلى الجانب الأيمن من النافذة وانقر فوق
OK . بعد اكتمال
الإنشاء ، ستظهر البرامج في دليل
bprepl \ repl_mproc .
تكوين عمليات النسخ المتماثل في Pro2
تقسيم الجداول إلى مجموعات يتم خدمتها بواسطة مؤشر ترابط نسخ متماثل منفصل يمكن أن يحسن أداء وكفاءة Oracle Pro2. بشكل افتراضي ، يتم ربط جميع الاتصالات التي تم إنشاؤها في خريطة النسخ المتماثل لجداول النسخ المتماثل الجديدة برقم الدفق 1. من المستحسن تقسيم الجداول إلى تدفقات مختلفة.
يتم عرض معلومات حول حالة تدفقات النسخ المتماثل على شاشة إدارة Pro2 في علامة التبويب مراقب في قسم حالة النسخ المتماثل. يمكن العثور على وصف تفصيلي لقيم المعلمات في وثائق Pro2 (الدليل C: \ Pro2 \ Docs).
إنشاء وتفعيل سياسات CDC
السياسات هي مجموعة من القواعد لآلية OpenEdge CDC ، والتي بموجبها يتم تعقب التغييرات في الجداول. في وقت كتابة هذا التقرير ، يدعم Pro2 فقط سياسات CDC ذات المستوى 0 ، أي أنه يتم تعقب حقيقة
تغيير السجل فقط .
لإنشاء سياسة CDC على اللوحة الإدارية ، انتقل إلى علامة التبويب "تعيين" ، وحدد قاعدة البيانات المصدر وانقر فوق الزر "إضافة / إزالة السياسات". في نافذة "تحديد التغييرات" التي تفتح ، حدد على الجانب الأيسر ونقل إلى الجدول الأيمن الذي تحتاج إلى إنشاء أو حذف سياسة CDC.
للتنشيط ، افتح علامة التبويب "تعيين" مرة أخرى ، حدد قاعدة البيانات المصدر وانقر فوق الزر
(في) تنشيط السياسات . حدد ونقل إلى الجانب الأيمن من الجدول الذي تحتاج إلى تنشيط سياساته ، انقر فوق "موافق". بعد ذلك يتم وضع علامة باللون الأخضر. باستخدام
(في) تنشيط السياسات ، يمكنك أيضًا إلغاء تنشيط سياسات CDC. يتم تنفيذ جميع العمليات عبر الإنترنت.

بعد تنشيط سياسة CDC ، يتم حفظ الملاحظات حول السجلات التي تم تغييرها في منطقة التخزين
"ReplCDCArea" وفقًا لقاعدة البيانات الأصلية. ستتم معالجة هذه الملاحظات من خلال عملية
CDCBatch خاصة ، والتي
ستنشئ على أساسها ملاحظات في قائمة انتظار النسخ المتماثل Pro2 في قاعدة بيانات
cdc (repl) .
وبالتالي ، لدينا طابور للنسخ المتماثل. المرحلة الأولى هي CDCBatch: من قاعدة البيانات الأصلية ، تنتقل البيانات أولاً إلى قاعدة بيانات CDC الوسيطة. المرحلة الثانية هي عندما يتم سكب البيانات من قاعدة بيانات مركز السيطرة على الأمراض في أوراكل. هذه سمة من سمات البنية الحالية والمنتج نفسه - حتى الآن ، لم يتمكن المطورين من إنشاء نسخ متماثل مباشر.
المزامنة الأساسية
بعد تشغيل آلية CDC وإعداد خادم النسخ المتماثل Pro2 ، نحتاج إلى بدء التزامن الأساسي. أمر بدء التزامن الأساسي:
/pro2/bprepl/Script/replLoad.sh bisquit اسم الجدولبعد اكتمال المزامنة الأولية ، يمكن بدء عمليات النسخ المتماثل.
بدء عمليات النسخ المتماثل
لبدء عمليات النسخ المتماثل ، تحتاج إلى تشغيل البرنامج النصي
replbatch.sh . قبل البدء ، تأكد من وجود نصوص برمجية لإعادة التحميل لجميع سلاسل العمليات - replbatch1 ، replbatch2 ، إلخ. إذا كان كل شيء في مكانه ، افتح سطر الأوامر (على سبيل المثال ،
proenv) ، انتقل إلى دليل
/ bprepl / scriptts وابدأ البرنامج النصي. في اللوحة الإدارية ، نتحقق من أن العملية المقابلة قد حصلت على حالة RUNNING.

النتائج

بعد التنفيذ ، قمنا بتسريع عملية تحميل المعلومات إلى مستودع بيانات الشركة بشكل كبير. تذهب البيانات نفسها إلى Oracle عبر الإنترنت. لا حاجة لقضاء بعض الوقت في بعض الاستعلامات طويلة الأجل لجمع البيانات من أنظمة مختلفة. بالإضافة إلى ذلك ، في هذا الحل ، يمكن لعملية النسخ المتماثل ضغط البيانات ، والتي لها أيضًا تأثير إيجابي على السرعة. الآن ، بدأت المصالحة اليومية لنظام BISKVIT مع الأنظمة الأخرى تستغرق 15-20 دقيقة بدلاً من 2-2.5 ساعة ، والمصالحة الكاملة - عدة ساعات بدلاً من يومين.