MariaDB / المتقدم: الأدلة والتشغيل الموثوق / الدرس 18
الترحيل والموثوقية التشغيلية
خطط لترقية MariaDB أو الانتقال من MySQL كتغيير قابل للرجوع قائم على الدليل، واجمع تطور المخطط والتوجيه والتعافي والصيانة.
في هذه الصفحة
أهداف الدرس
- بناء فحص توافق وتعافٍ للإصدارات المحددة.
- استخدام توسيع المخطط ثم تقليصه بمعايير تحويل مقاسة.
احصر الاعتماديات الفعلية
لا يحدد اسم المنتج التوافق. سجل الإصدارين الدقيقين والمحركات والترتيبات وأوضاع SQL واستخدام JSON والأعمدة المولدة والروتينات والموصلات والبنية. تختلف MariaDB وMySQL في المصادقة وGTID والخطط والميزات. اختبر النقل المنطقي ببيانات وسلوك تطبيق ممثلين. لا تنقل أدلة البيانات بين المنتجات أو الإصدارات الكبرى لأن البروتوكول أو تعريف الجدول يبدو مألوفاً.
افحص الإعداد الفعلي
يكشف الحصر للقراءة السلوك قبل اقتراح الترحيل. تغير اختيار الترتيب الافتراضي لمجموعة Unicode المسماة صراحة دون COLLATE في MariaDB 11.5. وبصورة مستقلة، تغير افتراض الخادم من latin1 وlatin1_swedish_ci إلى utf8mb4 وutf8mb4_uca1400_ai_ci في 11.6. الإصدار 11.8 أول إصدار بدعم طويل الأمد يجمع التغييرين، لذلك قد يظهر أثرهما معاً عند الترقية من إصدار أسبق بدعم طويل الأمد. وقد يؤدي الاعتماد على الإعدادات الافتراضية الضمنية إلى مخطط وجهة مختلف. سجل تعريفات الجداول لا إعداد الخادم وحده. توافر السلسلة لا يثبت استمرار صيانتها وفق سياستك. افحص جدول الصيانة الرسمي عند التخطيط ولا تثبت إصداراً أخيراً مخمناً في الإجراء.
SELECT VERSION(), @@session.sql_mode;
SHOW VARIABLES LIKE 'character_set_server';
SHOW VARIABLES LIKE 'collation_server';
SELECT TABLE_NAME, ENGINE, TABLE_COLLATION
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'harbor_lab' ORDER BY TABLE_NAME;
النتائج دليل للنشر. تاريخ المراجعة 2026-10-23 ولا يضمن استمرار دعم سلسلة إلى الأبد.
وسع قبل إزالة العقود القديمة
عند إعادة تسمية حقل أضف التمثيل الجديد المتوافق أولاً، وانشر شيفرة تقبل الاثنين، واملأه بدفعات محدودة ثم تحقق من التقارب. حول القراءة بعد استعداد التطبيق والنسخ، واحذف القديم لاحقاً. تعتمد أقفال ALTER TABLE وخوارزمياتها على العملية والمحرك والإصدار. لا يعني INPLACE أو INSTANT غياب انتظار البيانات الوصفية أو الكلفة أو تحقق توافق التطبيق فوراً.
افحص تقارب الترحيل صراحة
افترض جدول customers تدريبياً يحوي old_label وnew_label مؤقتاً مع معنى NULL وسياسة المقارنة نفسيهما. تتيح المساواة الآمنة للفراغ <=> كشف الاختلاف حتى عندما يكون أحد الطرفين NULL. الصفر شرط لازم للعقد لكنه لا يثبت تطابق البايتات أو توافق التطبيق. إذا لزم التطابق الدقيق فصمم فحصه صراحة، وافحص صفوف الحدود والقيود قبل إلغاء المسار القديم.
SELECT COUNT(*) AS mismatches
FROM customers WHERE NOT (old_label <=> new_label);
SELECT customer_id, old_label, new_label
FROM customers WHERE NOT (old_label <=> new_label)
ORDER BY customer_id LIMIT 20;
المتوقع بعد ملء صحيح: mismatches = 0 ولا صفوف عينة، وفق سياسة المقارنة المذكورة.
اجعل الرجوع والصيانة عمليين
تدرب معزولاً على الاستعادة والمدة واختبارات التطبيق وتوجيه الكتابة. حدد آخر نقطة رجوع آمنة؛ بعد قبول الوجهة كتابات خاصة بها قد يفقد الرجوع دون مزامنة عكسية بيانات. ضمّن الاختلاف والزمن وسلامة النسخ والمنح في معايير التحويل، واحمِ المصدر للمدة المتفق عليها. تابع الفروع المدعومة والتحديثات الأمنية؛ تبنى الموثوقية بتعافٍ مختبر وتغيير منضبط لا بالبقاء على إصدار قديم بلا نهاية.
الأخطاء الشائعة وإصلاحها
يمنع ترتيب لغوي خاص بـ MySQL الاستيراد
- لماذا يحدث؟
- اختلط اسم مجموعة محارف مشترك بقوائم ترتيب متطابقة.
- كيف تصلحه؟
- اختر ترتيباً مدعوماً في الوجهة واختبر تغير المساواة والفرز.
- كيف تتجنب تكراره؟
- احصر الترتيبات وتعارضات التفرد قبل التحويل.
تنتظر ALTER المفترضة متاحة بلا انقطاع
- لماذا يحدث؟
- قد تمسك معاملة طويلة أقفال بيانات وصفية متعارضة.
- كيف تصلحه؟
- افحص المسبب وأعد الجدولة بالإجراء المراجع.
- كيف تتجنب تكراره؟
- حدد ميزانية انتظار واختبر العملية مع معاملات طويلة.
يفقد الرجوع كتابات ما بعد التحويل
- لماذا يحدث؟
- تجاهلت الخطة تاريخ الوجهة المختلف.
- كيف تصلحه؟
- امنع الكتابة وصالح البيانات عبر مسار عكسي أو تعافٍ مختبر.
- كيف تتجنب تكراره؟
- حدد أهلية الرجوع وملكية البيانات قبل أول كتابة في الوجهة.
اختبر فهمك
1. تستخدم الوجهة ترتيباً غير حساس للحالة مختلفاً. لماذا تفحص البريد الفريد قبل التحويل؟
اعرض الحل المشروح
قد تجعل قواعد التكافؤ الجديدة سلاسل مختلفة متساوية فتخالف UNIQUE. اختبر الترتيب على نسخة ممثلة وحدد التعارضات واتفق على حل تجاري قبل الاستيراد. قد يغير استبدال اسم الترتيب معنى الهوية رغم صلاحية كل محارف utf8mb4.
2. يقترح الفريق الرجوع بتغيير الوجهة بعد ساعة من بدء الكتابة الجديدة. ما الدليل الغائب؟
اعرض الحل المشروح
يجب حصر كل كتابة خاصة بالوجهة وإثبات وصولها للمصدر القديم دون فقد أو تعارض. حدد منع الكتابة والمزامنة العكسية أو التعافي والمصالحة ثم تدرب عليها. دون الدليل يكون تغيير العنوان تغيير توجيه لا رجوعاً مثبت الأمان للبيانات.
أهم ما تعلمته
- يشمل التوافق دلالات البيانات والصلاحيات والتاريخ التشغيلي.
- يجب أن تفسر خطة الرجوع كتابات ما بعد التحويل والإصدارات المدعومة.