MariaDB / المتوسط: التزامن وSQL القابلة لإعادة الاستخدام / الدرس 12
تصميم النسخ الاحتياطي والتصدير المنطقي
اختر النسخ وفق متطلبات التعافي وافهم الاتساق المنطقي وتهيئة النسخ الفيزيائي، ولماذا لا يثبت نجاح مهمة النسخ نجاح الاستعادة.
في هذه الصفحة
أهداف الدرس
- ربط هدفي نقطة التعافي وزمنه بالنسخ والاحتفاظ بالسجلات.
- شرح التصدير المنطقي المتسق وتهيئة النسخة الفيزيائية.
ابدأ بسؤال التعافي
هدف نقطة التعافي هو نافذة فقد البيانات المقبولة، وهدف الزمن مدة الاستعادة المقبولة. لا يضمن تفريغ ليلي وحده فقداً لا يتجاوز خمس دقائق. تعيد النسخ المنطقية الكائنات والصفوف عبر SQL، وتحفظ الفيزيائية ملفات المحرك وتحتاج أدوات متوافقة ومعالجة تعافٍ. حدد هل الحادث حذف عرضي أم فقد خادم أم منطقة، فذلك يحدد السجلات والنسخ الخارجية والمفاتيح وعزل التدريب.
احصر المحركات والكائنات
لا تجعل لقطة InnoDB الجداول غير المعاملاتية المتغيرة متسقة. احصر المحركات والعروض والروتينات والمحفزات والأحداث قبل اختيار التصدير، وسجل الصلاحيات والمعرفين المطلوبين للاستعادة. يحصر الاستعلام الجداول الأساسية المرئية في قاعدة التدريب. معلومات المحرك دليل لاختيار الطريقة، وليست دليلاً على وجود نسخة أو قابليتها للاستعادة على إصدار آخر.
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'harbor_lab' AND TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_NAME;
SELECT ROUTINE_NAME, ROUTINE_TYPE FROM information_schema.ROUTINES
WHERE ROUTINE_SCHEMA = 'harbor_lab' ORDER BY ROUTINE_NAME;
يعتمد الحصر على الصلاحيات. احفظ بيان الكائنات إلى جانب النسخ.
افهم التصدير بمعاملة واحدة
تستطيع mariadb-dump استخدام --single-transaction للقطة متسقة للجداول المعاملاتية و--quick لبث الصفوف. لا يجمد ذلك الخادم كله، وقد تفسد ALTER أو DROP متزامنة الافتراضات. تحتاج المحركات المختلطة استراتيجية اتساق منفصلة. تحقق من تضمين الروتينات والأحداث والمحفزات بخيارات الأداة الفعلية؛ ملف الصفوف وحده ليس نسخة خدمة كاملة. سجل إصدار الأداة وحالة خروجها دون كشف الاعتمادات.
اقرأ عينة تدقيق متسقة
توضح معاملة القراءة فكرة لقطة InnoDB المنسقة لجدول حجوزات تدريبي. يعود العدد والمجموع إلى لقطة واحدة لا لحظتين منفصلتين. يعطي الجدول الفارغ عدداً صفرياً وSUM بقيمة NULL، واخترنا صفراً للعرض باستخدام COALESCE. لا تستبدل SQL أداة نسخ ولا تحفظ بيانات خارج الخادم، بل توضح ضرورة تسجيل حد الاتساق الذي تعود إليه مجاميع التحقق.
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
START TRANSACTION WITH CONSISTENT SNAPSHOT, READ ONLY;
SELECT COUNT(*) AS bookings, COALESCE(SUM(total), 0) AS total
FROM bookings;
COMMIT;
إذا اقتصرت العينة على مجموعي 10 و15 فالتدقيق المتوقع حجوزات = 2 ومجموع = 25.
تحتاج النسخة تهيئة ودليلاً
تأخذ mariadb-backup نسخاً فيزيائية للتخزين المدعوم وتحتاج مرحلة prepare قبل الاستعادة العادية؛ نسخ الصفحات الخام ليس دليلاً جاهزاً للتشغيل. اختر إصدار الأداة وفق توافق الخادم الموثق لا الاسم التنفيذي فقط. تحقق في التدريب من الكائنات والمجاميع التجارية وسلوك التطبيق وقِس زمن التعافي. احتفظ بنسخة مستقلة محمية حتى لا يمحو فشل المصدر أو اختراقه كل مسارات التعافي.
الأخطاء الشائعة وإصلاحها
انتهى التفريغ لكن اختلفت مجاميع الاستعادة
- لماذا يحدث؟
- قد يكون التصدير خلط حدود الاتساق أو أغفل كائنات.
- كيف تصلحه؟
- افحص المحركات وتعريف البيانات المتزامن والخيارات ثم أنشئ نسخة متحققة.
- كيف تتجنب تكراره؟
- سجل بياناً وقارن ثوابت منطقية في تدريبات استعادة معزولة.
لا تعمل النسخة الفيزيائية كخادم
- لماذا يحدث؟
- قد تكون غير مهيأة أو غير متوافقة مع الإصدار.
- كيف تصلحه؟
- استخدم تسلسل التهيئة والاستعادة الموثق على نسخة معزولة.
- كيف تتجنب تكراره؟
- احفظ معلومات الأداة المتوافقة واختبر التعافي قبل الاعتماد.
توجد النسخة على قرص القاعدة فقط
- لماذا يحدث؟
- اختلط نجاح المهمة بقابلية تعافٍ مستقلة.
- كيف تصلحه؟
- أنشئ نسخاً خارجية محمية وتحقق من الوصول لمفاتيح التشفير.
- كيف تتجنب تكراره؟
- اختبر فقد المصدر والاعتمادات مقابل هدفي التعافي.
اختبر فهمك
1. يقبل العمل فقد عشر دقائق لكن النسخ ليلي. ما سلسلة التعافي الإضافية اللازمة؟
اعرض الحل المشروح
احتفظ بالسجلات الثنائية وانقلها بوتيرة تحقق العشر دقائق واربطها بموضع نسخة أساسية متسقة. تحقق من غياب الفجوات واحمِ السلسلة خارج الخادم. يجب أن تستعيد التدريب النسخة والسجلات ضمن الزمن المقبول. قد تناسب زيادة وتيرة النسخ إذا أثبت القياس كلفتها وقابليتها للتعافي.
2. تحتوي القاعدة طلبات InnoDB وعدادات Aria تتغير كثيراً. هل تثبت --single-transaction وحدها اتساق التصدير؟
اعرض الحل المشروح
لا؛ لا تمتد ضمانة اللقطة إلى تغييرات Aria العادية. صمم إيقافاً منظماً للكتابة أو أقفالاً مناسبة أو استراتيجية موثقة للحمل المختلط واختبرها. حدد هل يمكن إعادة بناء العدادات مستقلة، ووثق القرار بدلاً من افتراض ضمانات InnoDB لكل الجداول.
أهم ما تعلمته
- يثبت نجاح النسخ بملفات قابلة للاستعادة والتحقق.
- الاتساق والاحتفاظ والتوافق والمفاتيح أجزاء من تصميم التعافي.