منصة البيانات · النسخ المتزامن
التقاط تغييرات البيانات (CDC): كيف تُبقون قاعدتي بيانات متطابقتين دون إيقاف أيٍّ منهما
التقاط تغييرات البيانات (Change Data Capture أو CDC) يرصد عمليات الإضافة والتعديل والحذف في قاعدة بيانات مصدر، ويطبّقها على نظام آخر بعد حدوثها بوقت قصير. وهو الآلية المعتادة خلف النسخ المتزامن (Replication) المستمر، والترحيل المرحلي مع تشغيل متوازٍ، والمزامنة ثنائية الاتجاه بين نظامين يبقيان قيد العمل. تشرح هذه الصفحة الطرق الثلاث الشائعة لالتقاط التغييرات، وما تتطلبه كل منها من النظام المصدر، وما يتعطل عملياً، وما يجب حسمه قبل أن تعتمدوا عليه.
نُشر في 7 دقائق قراءة
باختصار
- ما هو: طريقة لمعرفة ما تغيّر فقط في قاعدة البيانات، لتنتقل التغييرات وحدها، لا الجدول كله كل ليلة.
- فيمَ يُستخدم: الربط بين النظامين القديم والجديد أثناء الترحيل، وتغذية نسخة للتقارير، والإبقاء على تطبيقين قائمين متطابقين، والحفاظ على نسخة بديلة جاهزة للتشغيل.
- ثلاث طرق شائعة للالتقاط: الاستعلام الدوري بأعمدة الوقت أو الإصدار، والمشغّلات (Triggers) في قاعدة البيانات، وقراءة سجل المعاملات.
- ما يحدد النجاح: الوصول إلى المصدر، وترتيب التغييرات، وما يحدث حين يتعذر الوصول إلى الهدف، وطريقة التعامل مع تغييرات المخطط.
أين يُستخدم التقاط تغييرات البيانات
الآلية نفسها تخدم مهام مختلفة. والفرق الذي يهم في التخطيط: هل للنسخ المتزامن تاريخ انتهاء؟
| الاستخدام | ما يفعله CDC | ينتهي حين |
|---|---|---|
| الترحيل المرحلي | يُبقي النظام الجديد محدَّثاً بينما ما زال القديم يستقبل المعاملات | يكتمل التحويل (Cutover) ويُخرَج النظام القديم من الخدمة |
| نسخة للتقارير أو التحليلات | يغذي نسخة منفصلة حتى لا تُنفَّذ الاستعلامات الثقيلة على الإنتاج | لا ينتهي؛ يستمر ما دامت النسخة مطلوبة |
| تطبيقان قائمان | يُبقي السجلات المشتركة متسقة بين نظامين يبقيان في الخدمة، وأحياناً في الاتجاهين | لا ينتهي؛ يصبح جزءاً من التشغيل |
| نسخة بديلة جاهزة للتشغيل | يحافظ على نسخة ثانية من قاعدة بيانات حرجة في موقع آخر | لا ينتهي؛ هو جزء من تخطيط استمرارية الأعمال |
إن لم يكن للنسخ المتزامن تاريخ انتهاء، فتعاملوا معه على أنه تكامل يحتاج إلى مالك ومراقبة وإدارة للتغيير، لا مهمةً ضمن مشروع.
ثلاث طرق شائعة لالتقاط التغييرات
طريقة العثور على التغييرات تحدد الحمل على النظام المصدر، وهل تُرصد عمليات الحذف، وما تحتاجونه من مالك قاعدة البيانات.
| الطريقة | كيف تعمل | أثرها على المصدر | ما يجب الانتباه إليه |
|---|---|---|---|
| الاستعلام الدوري (أعمدة الوقت أو الإصدار) | مهمة تستعلم عن الصفوف التي قيمة «آخر تعديل» فيها أحدث من آخر تشغيل | استعلامات إضافية على جدول زمني، تثقل كلما كبرت الجداول | الصفوف المحذوفة نهائياً لا تترك أثراً يُعثر عليه ما لم يُسجَّل الحذف؛ والتغييرات بين استعلامين لا تظهر إلا بحالتها الأخيرة |
| المشغّلات (Triggers) في قاعدة البيانات | مشغّلات على كل جدول تكتب التغيير في جدول تغييرات يُقرأ لاحقاً | تضيف عملاً إلى كل عملية إضافة وتعديل وحذف | المشغّلات جزء من المخطط، فيجب نشرها وإدارة إصداراتها واختبارها معه |
| قراءة سجل المعاملات | تقرأ سجل قاعدة البيانات للتغييرات المؤكَّدة (Committed) أثناء كتابته | أدنى أثر؛ دون تعديل في التطبيق أو المخطط | تحتاج صلاحية الوصول إلى السجل ومدة احتفاظ كافية به، بالتنسيق مع أرشفة السجلات؛ وصيغ السجلات تختلف بحسب قاعدة البيانات وإصدارها |
الطريقة التي تنطبق تعتمد على النظام المصدر والأداة. اسألوا أي مزوّد، ونحن منهم، عن الطريقة التي ستُستخدم لكل مصدر لديكم ولماذا.
ما يتطلبه CDC من مالك النظام المصدر
قاعدة البيانات المصدر تتبع غالباً فريقاً غير الفريق الذي يدير الترحيل أو التكامل. اتفقوا معه على هذه النقاط قبل بناء أي شيء:
اقرأ المزيد
- الصلاحيات: الحساب الذي تستخدمه عملية الالتقاط، وما المسموح له بقراءته.
- مدة الاحتفاظ بالسجل: إن كانت التغييرات تُقرأ من السجل، فكم تُحفظ سجلاته، وكيف يتوافق ذلك مع الأرشفة والنسخ الاحتياطي.
- التحميل الأولي: تُنسخ البيانات الموجودة أولاً، ثم يلحق بها تدفق التغييرات من نقطة معروفة. حددوا موعد النسخ الأولي ومقدار الحمل المسموح به على الإنتاج.
- حدود الحمل: متى يكون المصدر في ذروة انشغاله، وكم من سعته يمكن أن يأخذ النسخ المتزامن في تلك الساعات.
- تغييرات المخطط: ماذا يحدث حين يُضاف عمود أو تُغيَّر تسميته أو يُحذف في المصدر، ومن يبلّغ فريق النسخ المتزامن.
- مسار الشبكة: أين تعمل عملية الالتقاط، وكيف تصل إلى المصدر والهدف.
ما يتعطل عملياً
التقاط التغييرات نصف المهمة. ونصفها الآخر توصيلها بموثوقية، وهناك تظهر هذه المشكلات:
اقرأ المزيد
- تعذّر الوصول إلى الهدف. التصميم الذي يفشل حين يتوقف الهدف يفقد تغييرات أو يوقف المسار كله. يجب أن تُحجز التغييرات وتُسلَّم حين يعود الهدف.
- الترتيب مهم. تعديلٌ يُطبَّق قبل الإضافة التي يعتمد عليها يفشل أو يُفسد البيانات. يجب تطبيق التغييرات بترتيب تأكيدها (Commit).
- التكرار يحدث. بعد إعادة التشغيل قد تُسلَّم بعض التغييرات مرتين. ويجب ألا يؤدي تطبيق التغيير نفسه مرتين إلى إنشاء سجلين.
- الحذف لا تراه بعض الطرق. الاستعلام الدوري على عمود وقت لا يمكنه رؤية صف لم يعد موجوداً.
- النسخ المتزامن ينافس الإنتاج. دون حدود، قد يُثقل اللحاق بالتغييرات بعد انقطاعٍ المصدرَ في أسوأ توقيت.
- التأخر لا يُراقَب. إن لم يقس أحد مقدار تأخر الهدف عن المصدر، فأول علامة على المشكلة مستخدم يبلّغ عن بيانات مفقودة.
نسخ متزامن باتجاه واحد أم مزامنة ثنائية الاتجاه
النسخ المتزامن باتجاه واحد له مرجع واحد للبيانات: تنتقل التغييرات من المصدر إلى الهدف، والهدف للقراءة فقط بالنسبة لتلك البيانات. أما المزامنة ثنائية الاتجاه فتتيح لكلا النظامين قبول الكتابة، وترسل تغييرات كل طرف إلى الآخر. وهذا مفيد حين يجب استخدام النظامين القديم والجديد معاً أثناء الانتقال، ومحفوف بالمخاطر حين يمكن تعديل السجل نفسه في الطرفين في الوقت نفسه.
قبل اختيار المزامنة ثنائية الاتجاه
حددوا أي نظام يملك كل نوع من السجلات، أو كيف يُحسم التعارض حين يتغير السجل نفسه في الطرفين. هذا قرار تصميم يُحسم أثناء تحديد النطاق، لا مسألة تحلّها الأداة وحدها. وحيثما أمكن، اجعلوا الملكية باتجاه واحد لكل نوع سجل، واستخدموا الاتجاهين فقط حيث تحتاج الأعمال فعلاً أن يكتب النظامان معاً.
التقاط تغييرات البيانات جسراً في الترحيل المرحلي
في الترحيل المرحلي، CDC هو ما يتيح للنظام القديم أن يستمر في العمل بينما يُثبت الجديد جاهزيته:
- انسخوا البيانات الموجودة إلى النظام الجديد من نقطة معروفة.
- مرّروا التغييرات باستمرار من النظام القديم ليبقى الجديد محدَّثاً.
- انقلوا القراءة أولاً. وجّهوا التقارير والوظائف التي تقرأ فقط إلى النظام الجديد، بينما تستمر الكتابة في القديم.
- تدرّبوا على التحويل، ومعه الرجوع، قبل تنفيذه فعلاً.
- حوّلوا، ثم أبقوا طريق الرجوع مفتوحاً للمدة المتفق عليها، مع تدفق التغييرات في الاتجاه المعاكس إن تطلبت الخطة ذلك.
مدة التشغيل المتوازي والشرط الذي يُطلق التحويل يُتفق عليهما قبل بدء العمل. ولطريقة تنظيم إنتركي لهذا من البداية إلى النهاية: خدمات ترحيل قواعد البيانات. وللقرارات التي يجب حسمها أولاً: قائمة قرارات ترحيل البيانات
روابط ذات صلةخدمات ترحيل قواعد البياناتقائمة قرارات ترحيل البيانات
أين يأتي دور iblync
iblync منصة إنتركي لترحيل البيانات ونسخها المتزامن، مطوَّرة في المملكة، لنقل البيانات بين أنظمة لم تُصمَّم لتبادلها. ما الذي تقدمه:
- نسخ متزامن مستمر، بما يشمل المزامنة ثنائية الاتجاه حين يقبل الطرفان الكتابة.
- حجز التغييرات في طابور حين يتعذر الوصول إلى الهدف، ثم تسليمها عند عودته، بدلاً من الفشل.
- ضبط الاستهلاك، حتى لا ينافس النسخ المتزامن الإنتاجَ على السعة.
- مسارات عمل منخفضة البرمجة تُضبط بالإعدادات بدلاً من نصوص تُكتب لكل مشروع، فيستطيع فريق قواعد البيانات لديكم الاطلاع على الترحيل ومراجعته وتكراره.
- مجموعة موصّلات تُوسَّع باستمرار، مع بناء موصّلات خاصة للأنظمة التي لا تغطيها بعد.
- يبقى الرجوع ممكناً أثناء التشغيل المتوازي، ويُتفق على مدته وشرط التحويل عند تحديد النطاق.
اقرأ المزيد
يُحدَّد موضع تشغيل iblync في كل مشروع على حدة، ويُسعَّر بعرض سعر وفق الأنظمة المصدر والأنظمة الهدف وحجم البيانات. وتعتمد الإنتاجية في بيئتكم على حجم الصفوف، وعدد الكائنات، ومعدل المعاملات، ومدى اختلاف نموذجي البيانات في المصدر والهدف، لذا تُقاس على أنظمتكم أثناء تحديد النطاق بدلاً من الاستناد إلى نتائج اختبار أداء منشورة (Benchmark).
متى لا يكون iblync الأداة المناسبة: إن كان النظامان من مزوّد واحد يوفّر مساراً مدعوماً للترحيل أو النسخ المتزامن، فذلك المسار غالباً أقل كلفة وأفضل دعماً. ويناسب iblync حين لا يوجد مثل هذا المسار، أو حين تختلف نماذج البيانات بما يكفي لتحتاج تحويلاً حقيقياً، أو حين يجب أن يبقى النظامان متزامنين.
iblync لترحيل البيانات والنسخ المتزامن
روابط ذات صلةiblync لترحيل البيانات والنسخ المتزامن
أسئلة يجب حسمها قبل الاعتماد على CDC
- ما طريقة الالتقاط التي ستُستخدم لكل مصدر، وما الصلاحيات التي تحتاجها؟
- كم تُحفظ سجلات المصدر، ومن يغيّر هذا الإعداد عند الحاجة؟
- كيف يُؤخذ النسخ الأولي، وكيف تُسجَّل نقطة اللحاق؟
- ماذا يحدث للتغييرات أثناء تعذّر الوصول إلى الهدف، وإلى متى يمكن حجزها؟
- هل تُطبَّق التغييرات بترتيب تأكيدها، وهل تطبيق التغيير نفسه مرتين آمن؟
- كيف تُكتشف تغييرات المخطط في المصدر، وكيف يُتعامل معها؟
- كيف يُقاس التأخر بين المصدر والهدف، ومن يُنبَّه؟
- إن كانت المزامنة ثنائية الاتجاه: من يملك كل نوع سجل، وكيف يُحسم التعارض؟
أسئلة شائعة
هل التقاط تغييرات البيانات هو ETL نفسه؟
لا. يصف ETL (الاستخراج والتحويل والتحميل) نقل البيانات وإعادة تشكيلها. أما CDC فطريقة لمعرفة ما تغيّر حتى تنتقل التغييرات وحدها. ويمكن لمسار بيانات أن يستخدم CDC في خطوة الاستخراج، فيعمل باستمرار بدلاً من دفعات ليلية، ويحوّل البيانات في الطريق.
هل يغني النسخ المتزامن عن النسخ الاحتياطي؟
لا. ينسخ النسخ المتزامن الأخطاء بالأمانة نفسها التي ينسخ بها البيانات السليمة: الجدول المحذوف خطأً يُحذف في الهدف أيضاً. احتفظوا بالنسخ الاحتياطية، وتعاملوا مع النسخة المتزامنة وسيلةً للبقاء متاحين، لا للعودة إلى حالة سابقة.
ما مدى قربه من الوقت الفعلي؟
يعتمد على طريقة الالتقاط، والشبكة، وسرعة الكتابة في الهدف، وحجم التغييرات. قيسوه على أنظمتكم قبل الاعتماد عليه، بدلاً من الاستناد إلى رقم منشور.
هل يمكن الترحيل دون أي توقف؟
مع تشغيل متوازٍ ونسخ متزامن مستمر، يمكن تقليص التوقف إلى خطوة التحويل نفسها. ومدى قِصر هذه الخطوة يعتمد على التعديلات في التطبيقات واختبارات القبول، لذا يُحدَّد في التقييم ولا يُوعد به مسبقاً.
انتقلنا إلى قاعدة بيانات جديدة فتوقف النسخ المتزامن. ما الأسباب المعتادة؟
من الأسباب الشائعة: عملية التقاط ما زالت تشير إلى الخادم القديم أو إلى موضع قديم في السجل، وصلاحيات لم يُعَد إنشاؤها، ومدة احتفاظ بالسجل أقصر على الخادم الجديد، واختلافات في المخطط بين القاعدتين القديمة والجديدة، ومشغّلات أو إعدادات ترقيم تلقائي (Identity) يختلف سلوكها بعد الانتقال. افحصوا كلاً منها قبل إعادة بناء المسار.
هل يجب أن يكون الهدف من نوع قاعدة البيانات المصدر نفسه؟
لا. كثيراً ما يُستخدم CDC لنقل البيانات إلى نظام من نوع مختلف، مثل الانتقال من قاعدة بيانات علائقية إلى قاعدة بيانات مستندات. وعندها يحتاج نموذج البيانات إلى تحويل حقيقي، وهنا يذهب معظم جهد التصميم. وCouchbase من الأنظمة الهدف التي تنفّذها إنتركي، لكن iblync لا يشترطها.
التالي
اقرؤوا بعد ذلك
الخطوة التالية
حددوا معنا نطاق النسخ المتزامن أو الترحيل المرحلي
أخبرونا بالأنظمة المصدر والهدف، وبحجم البيانات الذي يتغير يومياً على وجه التقريب، وهل النسخ المتزامن مؤقت (لترحيل) أم دائم. يراجع الفريق في الرياض طلبكم، ويردّ عليكم أحد المختصين في أيام العمل السعودية، بالعربية أو الإنجليزية.
أو مباشرةً
+966-11-2180999 [email protected]أبراج التعاونية، البرج الشمالي، الطابق السابع، طريق الملك فهد، العليا، ص.ب. ٥٦٨٣٥، الرياض ١١٥٦٤، المملكة العربية السعودية