منصة البيانات · ترحيل قواعد البيانات
الترحيل إلى PostgreSQL مع تشغيل متوازٍ قبل التحويل النهائي
الترحيل إلى PostgreSQL ينقل أربعة أشياء لا شيئًا واحدًا: هيكل قاعدة البيانات، والشيفرة المخزنة داخلها، والبيانات نفسها، واستعلامات التطبيقات التي تعتمد عليها. ونسخ البيانات نادرًا ما يكون مصدر المشكلة؛ فالخطر في شيفرة تتصرف على PostgreSQL بشكل مختلف، وفي تحويل نهائي لا رجعة فيه. تنفّذ إنتركي ترحيل قواعد البيانات من الرياض: تقييم أولًا، ثم تشغيل متوازٍ يبقى فيه النظامان القديم والجديد متطابقين، ثم تحويل نهائي سبقه تمرين على التراجع.
نُشر في 5 دقائق قراءة
In short
- ما الذي يُنقل: الهيكل والشيفرة المخزنة والبيانات واستعلامات التطبيقات، ولكل منها عمله الخاص.
- أين يكمن الخطر: اختلاف سلوك الشيفرة والاستعلامات، وتحويل نهائي بلا طريق للعودة.
- كيف يبقى التوقف قصيرًا: تحميل أولي، ثم نسخ مستمر للتغييرات، ثم تشغيل متوازٍ، ثم تحويل نهائي على مراحل لها شروط عبور.
- ما الذي قد ينتهي إليه التقييم: الترحيل، أو تحسين النظام الحالي، أو عدم الترحيل.
- أين يعمل: جسر النسخ وقاعدة البيانات الهدف والأدوات يمكن تشغيلها على بنية داخل المملكة.
- التسعير: لكل مشروع على حدة، بعد التقييم.
ما الذي يشمله الترحيل إلى PostgreSQL فعليًا
| الطبقة | ما الذي يتغير | الجهد المعتاد |
|---|---|---|
| الهيكل (Schema) | تُحوَّل الجداول وأنواع البيانات والمفاتيح والفهارس والتسلسلات والقيود إلى ما يقابلها في PostgreSQL | يمكن أتمتة معظمه، مع مراجعة اختيار الأنواع |
| الشيفرة المخزنة | تُعاد كتابة الإجراءات والدوال والمشغّلات (Triggers) والحزم بلغة PL/pgSQL | غالبًا الجزء الأكبر من العمل الهندسي |
| البيانات | تحميل أولي، ثم نسخ مستمر حتى التحويل النهائي، مع مقارنة أعداد السجلات وقيم التحقق (Checksums) | يعتمد على الحجم ومعدل التغيير ونافذة التوقف |
| التطبيق | تُختبر الاستعلامات وبرامج الاتصال وإعدادات الربط ومعالجة الأخطاء على PostgreSQL | يُقدَّر لكل خدمة، وكثيرًا ما يُستهان به |
الانتقال من Oracle أو SQL Server أو MySQL: ما الذي يحتاج عادة إلى إعادة عمل
قاعدة البيانات المصدر هي التي تحدد أين يتركز العمل. هذه فروق تسبب أخطاء شائعة بعد الانتقال، مأخوذة من توثيق PostgreSQL، ومن توثيق Oracle في مسألة النصوص الفارغة:
- الشيفرة المخزنة. لا توجد حزم (Packages) في PostgreSQL. ويقترح توثيقها استخدام المخططات (Schemas) لتجميع الدوال، والجداول المؤقتة لحفظ حالة الجلسة التي كانت متغيرات الحزم تحفظها. والشيفرة الإجرائية من أي قاعدة مصدر تُعاد كتابتها لـ PostgreSQL، وغالبًا بلغة PL/pgSQL.
- أنواع البيانات. ينصح توثيق PostgreSQL باستبدال
varchar2بـvarcharأوtext، واستبدالnumberبـnumericأو بنوع رقمي أنسب. وأنواع التاريخ والوقت تحتاج المراجعة نفسها. - النصوص الفارغة. تعامل Oracle Database القيمة النصية التي طولها صفر على أنها
null، أما PostgreSQL فلا، فتتغير نتائج المقارنات والقيود التي تعتمد على ذلك. - حالة الأحرف في الأسماء. يحوّل PostgreSQL الأسماء غير المحاطة بعلامات اقتباس إلى أحرف صغيرة، فالشيفرة التي تخلط بين الأسماء المقتبسة وغير المقتبسة قد لا تجد جداولها.
- الأخطاء داخل الإجراءات. في PL/pgSQL، عند التقاط استثناء تُلغى كل تغييرات قاعدة البيانات منذ بداية تلك الكتلة. وشيفرة معالجة الأخطاء المنقولة سطرًا بسطر قد تفقد عملًا كانت تحتفظ به.
- الاستعلامات الديناميكية. يعمل
EXECUTEبطريقة قريبة، لكن الأسماء والقيم يجب أن تُقتبس بالدالتينquote_identوquote_literal، وإلا فلن يعمل الاستعلام بشكل موثوق.
لا شيء من هذا غريب، ولهذا يقرأ التقييم الشيفرة المخزنة واستعلامات التطبيق قبل أن يقدّر أحد أي مدة.
نقل البيانات دون توقف طويل
النمط واحد مهما كانت قاعدة البيانات التي تبدؤون منها:
- التحميل الأولي. نسخ البيانات الحالية إلى PostgreSQL.
- النسخ المستمر. نسخ كل تغيير من المصدر أولًا بأول ما دام النظامان يعملان.
- التشغيل المتوازي. قاعدتا البيانات تعملان ومتطابقتان، للمدة التي يتطلبها التحقق ويحتاجها العمل. وتنتقل عمليات القراءة أولًا، بخطوات يمكن التراجع عنها.
- التحويل النهائي. تنتقل عمليات الكتابة إلى PostgreSQL، ويبقى الرجوع ممكنًا حتى النقطة المتفق عليها.
اقرأ المزيد
تستخدم إنتركي iblync، منصتها لترحيل البيانات ونسخها المطوّرة في السعودية، لتشغيل الجسر بين قاعدتي البيانات. ينسخ iblync التغييرات باستمرار، بما في ذلك المزامنة في الاتجاهين حين يقبل الطرفان الكتابة. ويضبط معدل عمله حتى لا يزاحم بيئة الإنتاج، وإذا تعذّر الوصول إلى الهدف تنتظر التغييرات في طابور بدل أن تفشل. وتُبنى مسارات الترحيل بالإعداد لا بنصوص برمجية مكتوبة يدويًا، فيستطيع فريق قواعد البيانات لديكم مراجعتها وتكرارها.
وتتضمن قائمة الموصلات المنشورة لـ iblync كلًا من Oracle وSQL Server وMySQL وPostgreSQL. ويُتحقق في التقييم من زوج المصدر والهدف والإصدار الذي يحتاجه مشروعكم. وإن كان النظام غير مشمول بعد، تُبنى له موصلات مخصصة.
التحويل النهائي كسلسلة من البوابات
لكل خطوة شرط عبور متفق عليه مسبقًا، وأي إخفاق ينقل العمل إلى مسار التراجع.
| البوابة | شرط العبور |
|---|---|
| التجميد والمزامنة الأخيرة | إيقاف الكتابة أو وضعها في طابور، واكتمال نسخ آخر التغييرات |
| التحقق | تطابق أعداد السجلات وقيم التحقق وفحوص سلامة التطبيق |
| تحويل القراءة | معدلات الأخطاء وزمن الاستجابة على PostgreSQL ضمن الحدود المتفق عليها |
| قرار التراجع | مسؤول محدد بالاسم يقرر المضي أو التوقف، وبعد هذه البوابة تنتقل الكتابة |
| تحويل الكتابة والمتابعة | يصبح PostgreSQL النظام المرجعي، وتبقى القاعدة القديمة جاهزة للعودة إليها حتى تمر فترة ذروة واحدة على الأقل |
يُنفَّذ التحويل النهائي مرة واحدة، ويُتمرَّن عليه أكثر من مرة، بما في ذلك التراجع.
متى لا يكون الترحيل هو القرار الصحيح
قد ينتهي التقييم إلى أن الترحيل غير مناسب، ويقول ذلك كتابةً. فقاعدة البيانات العاملة التي تتحمل أحمالها أصل لا عبء، وقد يكون تحسين ما لديكم هو الخيار الأنسب. وحين يكون النظامان من مورّد واحد يوفر مسار ترحيل أصليًا مدعومًا، يكون ذلك المسار عادة أقل تكلفة من الترحيل بين أنظمة مختلفة، ولا يكون iblync الأداة المناسبة.
كيف تنفذ إنتركي الترحيل إلى PostgreSQL
- التقييم. عمل محدد النطاق يشمل أحمال العمل والشيفرة المخزنة واستعلامات التطبيقات وحجم البيانات ونافذة التوقف وإقامة البيانات. ونتيجته قرار مع مقارنة للتكلفة تتضمن خيار البقاء على الوضع الحالي.
- الهيكل والشيفرة. تحويل الهيكل، وإعادة كتابة الشيفرة المخزنة، واختبارها على بيانات تشبه بيانات الإنتاج.
- تعديلات التطبيقات. تقدير تعديلات الاستعلامات وبرامج الاتصال لكل خدمة والبدء بها مع فرق التطبيقات لديكم.
- الجسر والتشغيل المتوازي. التحميل الأولي، والنسخ المستمر، والمقارنة خدمةً بعد خدمة.
- تحويل نهائي بعد التمرين. التمرين على التحويل والتراجع، ثم التنفيذ مرة واحدة.
- التثبيت. ضبط الأداء، وإثبات الاستعادة من النسخ الاحتياطية، وتمارين الانتقال عند التعطل، ثم التسليم لمديري قواعد البيانات لديكم أو تشغيل إنتركي لها من الرياض.
وبعد الانتقال، يمكن إدارة تغييرات الهيكل على PostgreSQL بالإصدارات وتمريرها عبر مسار نشر آلي، وهذا ما تغطيه ممارسة DevOps لقواعد البيانات لدى إنتركي.
روابط ذات صلةممارسة DevOps لقواعد البيانات
ما الذي يحدد التكلفة
يُسعَّر كل مشروع على حدة بعد التقييم. وتحدد التكلفة عواملُ منها: مدى اختلاف الهيكل والشيفرة المخزنة عن PostgreSQL، وعدد الخدمات التي تتغير استعلاماتها، وحجم البيانات ومعدل تغيرها، ونافذة التوقف التي يقبلها العمل، ونموذج النشر، ومن يتولى تعديلات التطبيقات، والتشغيل بعد الإطلاق. ويُسعَّر iblync نفسه بعرض سعر بحسب الأنظمة المصدر والأنظمة الهدف وحجم البيانات.
ما يسألنا عنه العملاء
ما قواعد البيانات التي يمكن ترحيلها إلى PostgreSQL؟
تتضمن قائمة الموصلات المنشورة لـ iblync كلًا من Oracle وSQL Server وMySQL إضافة إلى PostgreSQL. ويُتحقق في التقييم من المصدر والإصدار لديكم تحديدًا.
هل يجب أن يتوقف العمل أثناء الترحيل؟
النمط مصمم لتجنب توقف طويل: النسخ المستمر يُبقي قاعدتي البيانات متطابقتين أثناء التشغيل المتوازي، فيصبح التحويل النهائي خطوة قصيرة لها شروط عبور، لا توقفًا يمتد نهاية أسبوع كاملة. ويُتفق على نافذة التوقف في التقييم.
هل يمكن أن تبقى بياناتنا داخل المملكة أثناء الترحيل؟
نعم. يمكن تشغيل جسر النسخ وقاعدة البيانات الهدف والأدوات على بنية داخل المملكة، ويُحسم ذلك في التقييم.
هل يمكن الرجوع إذا حدث خطأ؟
نعم، حتى نقطة التراجع المتفق عليها. تبقى القاعدة القديمة متطابقة وجاهزة، ويُتمرَّن على التراجع قبل التحويل الفعلي.
كم يستغرق الترحيل؟
التقييم هو الذي يحدد الجدول الزمني، لأن الشيفرة المخزنة واستعلامات التطبيقات هي التي تحدده. وأي مدة تُذكر قبل هذا التحليل مجرد تخمين.
من يشغّل PostgreSQL بعد ذلك؟
مديرو قواعد البيانات لديكم بعد التسليم، أو إنتركي من الرياض ضمن نطاق مكتوب للخدمات المُدارة.
التالي
اقرؤوا بعد ذلك
الخطوة التالية
احجزوا تقييم الترحيل
أخبرونا بقاعدة البيانات المصدر وإصدارها، والحجم التقريبي للبيانات، وكمية الشيفرة المخزنة فيها، ونافذة التوقف التي يقبلها العمل.
أو مباشرةً
+966-11-2180999 [email protected]أبراج التعاونية، البرج الشمالي، الطابق السابع، طريق الملك فهد، العليا، ص.ب. ٥٦٨٣٥، الرياض ١١٥٦٤، المملكة العربية السعودية