MySQL / التزامن والأداء والتشغيل / الدرس 18
النسخ المتماثل و GTID والجاهزية التشغيلية
افصل تقدم النسخ وقرارات الإتاحة ومسؤوليات التعافي.
في هذه الصفحة
أهداف الدرس
- فسر قنوات النسخ وعلاقات مجموعات GTID.
- خطط لقراءات تراعي التأخر وعزل المصدر والترقيات والمراقبة.
النسخ المتماثل سلسلة غير متزامنة
في بنية MySQL غير المتزامنة يكتب المصدر الأحداث الثنائية وتجلبها النسخة إلى سجلات وسيطة ثم ينفذها العمال. لا يعني الاستلام التطبيق. قد ينجح تثبيت المصدر قبل ظهور التغيير في النسخة، فتقرأ حالة قديمة بعد الشراء. صمم توجيه القراءة وفق الاتساق المطلوب ولا تعتبر الوجهات متبادلة دائماً.
تسمي GTID معاملات لا محتوى الصفوف
تعرّف GTID معاملات المصدر عادة عبر UUID وتسلسل. تساعد دوال المجموعات على مقارنة التقدم دون تغيير قناة. المعرّف والفترات التالية اصطناعية. تختلف GTID في MariaDB صيغة ومعنى، فلا تنقل مجموعاتها أوأوامرها إلى MySQL. تطابق المجموعات دليل مفيد لكنه ليس بصمة تثبت تطابق الجداول.
SELECT GTID_SUBSET(
'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:1-3',
'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:1-5') AS contained;
contained
1
النتيجة 1 لأن المعاملات 1 و 2 و 3 ضمن 1 إلى 5. هذا حساب مجموعات حرفية ولا يدعي تنفيذ خادم فعلي لها. احصل في التشغيل على مجموعات المصدر والنسخة عبر تشخيص مصرح به.
احسب التقدم الناقص بدقة
تعيد GTID_SUBTRACT عناصر المجموعة الأولى الغائبة عن الثانية. إذا كان المطلوب 1 إلى 5 والمطبق 1 إلى 3 بقيت 4 و 5 غير محسوبتين في المقارنة. قد تضم المجموعات معرفات وفترات منفصلة، فلا تقارنها كبوادئ نصية ولاتعتبر أكبر رقم برهان اللحاق.
SELECT GTID_SUBTRACT(
'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:1-5',
'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:1-3') AS missing;
missing
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:4-5
النتيجة الاصطناعية aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:4-5. تحدد فترة معاملات مطلوبة لا ثواني تأخر أوعدد صفوف. وقد تغير معاملتان حجمين مختلفين جداً من البيانات فتحتاجان أزمنة تطبيق مختلفة.
راقب الاستلام والتطبيق منفصلين
تعرض SHOW REPLICA STATUS القناة والاستلام والتطبيق والأخطاء والمواضع و GTID. تعد Seconds_Behind_Source دليلاً محدوداً؛ فقد تكون NULL عند الجهل ولا يثبت الصفر حداثة المسار كله. افحص أخطاء العمال والاتصال ونمو الطابور ومؤشرات حداثة التطبيق. تتطلب الأدوات صلاحيات وقد تكشف معرّفات البنية فلا تنشر مخرجاتها الخام.
SHOW REPLICA STATUS;
SELECT @@GLOBAL.gtid_executed AS executed_transactions;
SHOW BINARY LOG STATUS;
استخدمها عبر اتصال تشخيص مصرح به. قد لا يملك خادم التدريب قناة، وتعتمد النتيجة على البنية والتسجيل الثنائي. نستخدم SHOW BINARY LOG STATUS في 8.4؛ فتحقق من أوامر المقالات القديمة المحذوفة أوالمعاد تسميتها في الدليل.
يتطلب التحويل عزلاً وتدريباً
قبل ترقية مرشح تحقق من تقدمه المطبق وحد الفقد المقبول واعزل الكاتب القديم ووجّه العملاء لمنع كاتبين متباعدين. يساعد التموضع التلقائي لـ GTID على إيجاد المعاملات ولا يؤمن ترقية خطرة. احتفظ بنسخ مستقلة وتدرب على إعادة الأعضاء أوبنائها. تحتاج الترقيات مسارات مدعومة وموصلات وخطط استعادة؛ ولا يثبت خيط نسخ سليم ذلك.
الأخطاء الشائعة وإصلاحها
تعيد قراءة بعد الشراء حالة أقدم للطلب.
- لماذا يحدث؟
- وجه التطبيق القراءة إلى نسخة غير متزامنة قبل التطبيق.
- كيف تصلحه؟
- استخدم المصدر أوتوجيهاً صريحاً يراعي التقدم بحد انتظار مناسب.
- كيف تتجنب تكراره؟
- حدد متطلبات القراءة بعد الكتابة لكل عملية.
يعلن المؤشر سلامة النسخ من تأخر صفري فقط.
- لماذا يحدث؟
- اعتُبر حقل تأخر واحد اختبار صحة شاملًا.
- كيف تصلحه؟
- افحص الاستلام والتطبيق والأخطاء والمجموعات وفحوص الحداثة معاً.
- كيف تتجنب تكراره؟
- أنذر عند الجهل والتوقف لا عند الثواني الموجبة فقط.
ينشئ التحويل كاتبين متنافسين.
- لماذا يحدث؟
- بقي المصدر القديم متاحاً للكتابة عند ترقية النسخة.
- كيف تصلحه؟
- اتبع إجراء الحادثة لعزل الكتابة وتقييم التباعد قبل المطابقة.
- كيف تتجنب تكراره؟
- تدرب على العزل والتوجيه وصلاحية الترقية معاً.
اختبر فهمك
1. هل تثبت GTID_SUBSET(required,applied)=1 تطابق كل الجداول؟
اعرض الحل المشروح
لا؛ تثبت تضمين معرّفات المعاملات المطلوبة في المجموعة المقارنة. وقد تؤثر المرشحات أوالكتابات غير المصرحة أوالتلف أوالتاريخ التشغيلي في البيانات. استخدم تحقق اتساق ومعرفة بالبنية؛ فالتقدم ليس بصمة سلامة عامة.
2. مرشح متأخر بمعاملتين؛ هل يمكن استنتاج حجم الفقد من العدد؟
اعرض الحل المشروح
لا؛ قد تغير معاملة صفاً وأخرى ملايين. افحص فترة GTID والعمل وأدلة التعافي ثم أعلن حد الفقد المقبول عبر إجراء التحويل المصرح. لا يصف عدد المعاملات وحده الأثر التجاري أومدة التطبيق.
أهم ما تعلمته
- تقدم النسخ والاتساق وقابلية التعافي ادعاءات منفصلة.
- اشترط أدلة التقدم وعزل الكاتب والمراقبة والتدرب على الاستعادة.