SQL Server / المتقدم / الدرس 15
النسخ الاحتياطية وسلاسل الاستعادة ونماذج الاسترداد
صمّم الاسترداد وفق سيناريو فقد محدد، واربط نماذج الاسترداد والنسخ الكاملة والتفاضلية والسجل وتسلسل الاستعادة وتمريناً معزولاً.
في هذه الصفحة
أهداف الدرس
- ترجمة RPO وRTO إلى تصميم نسخ.
- شرح سلسلة استعادة صالحة.
- تمييز فحص النسخة من تمرين استرداد ناجح.
ابدأ بالفقد والتوقف المقبولين
يصف RPO مقدار فقد البيانات المقبول، ويصف RTO زمن الاستعادة المقبول. قد تعرض نسخة ليلية تغييرات يوم كامل تقريباً للفقد رغم سرعة استعادتها. وقد تحمي سلسلة طويلة من نسخ سجل صغيرة معاملات حديثة لكنها تستغرق وقتاً مفرطاً دون استراتيجية كاملة وتفاضلية مناسبة. حدد الهدفين مع العمل قبل الجدول.
احصر ما يلزم غير صفحات البيانات: مفاتيح التشفير أو شهاداته وبيانات الاعتماد بإجراءات معتمدة وإعدادات المثيل ونشر التطبيق واعتمادياته الخارجية. لا توفر نسخة على التخزين المعطّل نفسه حماية كوارث مفيدة. الاحتفاظ وضبط الوصول والنسخ المحمية أو غير القابلة للتعديل والملكية الموثقة أجزاء من هندسة الاسترداد.
افصل نموذج الاسترداد عن نوع النسخة
يسمح SIMPLE بإعادة استخدام مساحة السجل دون نسخه، مع مراعاة العمل النشط والقيود الأخرى، ولا يدعم استرداد نسخ السجل إلى أوقات عشوائية. يدعم FULL نسخ السجل والاسترداد الزمني عند توافر السلسلة المطلوبة. لا ينشئ التحويل إلى FULL استراتيجية كاملة؛ يجب تخطيط نسخة بيانات ابتدائية ونسخ سجل مستمرة.
يدعم BULK_LOGGED تسجيلاً مخففاً لعمليات مؤهلة لكنه يعقد الاختيار الزمني: لا يمكن عموماً التوقف داخل نسخة سجل تحتوي عملاً مخفف التسجيل. لا تبدل النموذج لمجرد تقليص السجل. افحص log_reuse_wait_desc لمعرفة سبب احتجاز المساحة ثم عالج النسخ أو المعاملة الفعلية بإجراء تشغيل معتمد.
SELECT name,recovery_model_desc,log_reuse_wait_desc
FROM sys.databases WHERE database_id=DB_ID();
قيمة مثل LOG_BACKUP أو ACTIVE_TRANSACTION سياق تشخيصي لا إذن لتغيير القاعدة.
ابنِ تسلسل استعادة صالحاً
توفر النسخة الكاملة أساس الاستعادة، وتحمل التفاضلية التغييرات منذ أساسها التفاضلي، وتتابع نسخ السجل سلسلته. ليست التفاضلية ببساطة تغييرات منذ تفاضلية الأمس. يمكن للنسخة الكاملة copy-only توفير نسخة خاصة دون تغيير الأساس التفاضلي المعتاد. احتفظ ببيانات وصفية تكفي لاختيار ملفات متوافقة وكشف الفجوات.
استعد الكاملة مع NORECOVERY ثم التفاضلية المناسبة اختيارياً معها ثم نسخ السجل بالترتيب. نفّذ الاسترداد عند المرحلة النهائية المقصودة فقط. للاسترداد الزمني استخدم STOPAT المناسب في التسلسل وتحقق من اصطلاح الوقت. قد تحمي نسخة ذيل السجل عملاً حديثاً بعد الفشل إن بقي السجل متاحاً، وتحدد ظروف الحادثة إمكانها.
افحص الوسائط قبل التمرين المعزول
تقرأ RESTORE HEADERONLY بيانات مجموعات النسخ، وتصف FILELISTONLY الملفات المنطقية. تفحص RESTORE VERIFYONLY اكتمال مجموعة النسخ وقابليتها للقراءة بالتحقق المدعوم، لكنها لا تتحقق كاملاً من بنية القاعدة ولا تثبت استرداد التطبيق. المسارات في المثال وسائط مختبر خيالية لا ملفات قائمة أو استعادة منفذة.
تتطلب الاستعادة الحقيقية هدفاً معزولاً صراحة وخرائط ملفات مفحوصة وسعة كافية وشهادات لازمة وخطة تمنع الكتابة فوق قاعدة أخرى. لا تضف WITH REPLACE تلقائياً عند اعتراض الاستعادة على الهدف؛ فالتحذير سبب لمراجعة الهوية والوجهات. تقدم الدورة صياغة الفحص عمداً لا وصفة استرداد مدمرة قابلة للتنفيذ.
-- Fictional backup media for a recovery-plan review.
RESTORE HEADERONLY FROM DISK=N'D:\TrainingBackups\Shop_full.bak';
RESTORE FILELISTONLY FROM DISK=N'D:\TrainingBackups\Shop_full.bak';
RESTORE VERIFYONLY FROM DISK=N'D:\TrainingBackups\Shop_full.bak'
WITH CHECKSUM;
تتبع النتائج الترويسات والملفات والصلاحيات ومجاميع التحقق الفعلية، ولا ندعي نجاح الفحص.
قس الاسترداد لا نجاح مهمة النسخ
يستعيد التمرين نسخاً محمية إلى بيئة معزولة ويفحص السلامة ويتحقق من حقائق عمل مثل طلب معروف حول نقطة الاسترداد. قس الزمن بما يشمل جلب الملفات والمفاتيح والاستعادة والتحقق وجاهزية التطبيق. قارن النقطة المستعادة والمدة بـ RPO وRTO.
احتفظ بدليل السلسلة والفحوص والاعتماديات المفقودة. يفيد نجاح مهمة النسخ أو VERIFYONLY لكنه لا يكفي. تدرّب دورياً بالأشخاص الذين سيتولون الحادثة. الاسترداد قدرة مختبرة ذات مسؤولية واضحة، لا مجلد ملفات ذات أوقات حديثة.
الأخطاء الشائعة وإصلاحها
The log keeps growing under FULL.
- لماذا يحدث؟
- تغيب نسخ السجل المطلوبة أو شرط آخر لإعادة الاستخدام.
- كيف تصلحه؟
- افحص سبب الاحتجاز وأصلح العملية المعتمدة.
- كيف تتجنب تكراره؟
- راقب استخدام السجل وعمر نسخه.
A differential cannot be applied.
- لماذا يحدث؟
- لا يطابق أساسها النسخة الكاملة المستعادة.
- كيف تصلحه؟
- اختر الأساس الصحيح ببيانات النسخ الوصفية.
- كيف تتجنب تكراره؟
- احتفظ ببيانات السلسلة والأساس.
VERIFYONLY passed but recovery failed.
- لماذا يحدث؟
- خُلطت قابلية القراءة باختبار استرداد كامل.
- كيف تصلحه؟
- نفذ استعادة معزولة بمفاتيح وفحص سلامة وتطبيق.
- كيف تتجنب تكراره؟
- جدول تمارين استرداد مقاسة.
اختبر فهمك
1. النسخة الكاملة الأحد والتفاضلية يومية. إلى ماذا تستند تفاضلية الأربعاء؟
اعرض الحل المشروح
عادة إلى الكاملة التي تمثل الأساس لا تفاضلية الثلاثاء. استعد الكاملة وتفاضلية الأربعاء المتوافقة ثم السجلات اللازمة بالترتيب. افحص البيانات الوصفية لا الأسماء فقط.
2. تستعاد النسخة الليلية في عشر دقائق. هل تحقق RPO خمس دقائق؟
اعرض الحل المشروح
لا؛ سرعة الاستعادة تعالج RTO، وقد تفقد النسخة الليلية أكثر بكثير من خمس دقائق. صمّم حماية سجل مناسبة بنموذج متوافق واختبر السلسلة كاملة.
أهم ما تعلمته
- نموذج الاسترداد ونوع النسخة مفهومان مختلفان.
- تحتاج السلسلة أسساً متوافقة ودون فجوات لازمة.
- لا يثبت الجاهزية إلا تمرين استعادة مقاس.