ما هي خطة النسخ الاحتياطي/الصيانة لـ SQL Server لديك؟

StackOverflow https://stackoverflow.com/questions/296897

  •  08-07-2019
  •  | 
  •  

سؤال

على سبيل المتابعة هذا السؤال أتساءل ما هي خطة النسخ الاحتياطي/الصيانة لـ SQL Server لديك، وكيف يمكنني تحسين خطتي.

أقوم حاليًا بتشغيل خطتي صيانة عاديتين من معالج الخطة.

الأول يعمل ليلاً ويفعل كل شيء تقريبًا ...

  • النسخ الاحتياطي الكامل لقاعدة البيانات وسجل المعاملات
  • التحقق من النزاهة، وإعادة بناء الفهرس، وإعادة حساب الإحصائيات، وما إلى ذلك.(لقد راجعت كل شيء باستثناء النسخ الاحتياطي المتزايد)

الآخر يعمل كل ثلاث ساعات ويقوم بعمل نسخة احتياطية تزايدية (أنا مصاب بجنون العظمة، أعلم أن هذا ربما يكون مبالغة).

يتم حفظ النسخ الاحتياطية على القرص، ويتم إرسال النسخ الاحتياطية الكاملة إلى شبكة التخزين (SAN)، ويتم الاحتفاظ بها لمدة أسبوع.

ما رأيك هل هذه خطة معقولة؟أي اقتراحات؟

يحرر:هذا هو SQL Server 2005.DB هو 5 غيغابايت، وينمو حوالي 1 غيغابايت/شهر.

هل كانت مفيدة؟

المحلول

يبدو جيدا.أنا أكثر بجنون العظمة.أقوم بعمل نسخ احتياطية كاملة يوميًا ونسخًا احتياطيًا لسجل المعاملات كل ساعة.يعتمد على حجم قاعدة البيانات أو الدورة التدريبية.يتم إجراء النسخ الاحتياطية مباشرة على القرص ثم يتم نسخها احتياطيًا على الشريط ليلاً.

ربما لا تحتاج إلى القيام بمهام الصيانة كل يوم.أنا أفعل ذلك فقط في عطلة نهاية الأسبوع، باستثناء هذه الطاولة التي نعيد فهرستها كل ليلة.مرة أخرى، يعتمد هذا على حجم قاعدة البيانات ونشاطها.

إذا كان لديك مساحة كافية على وحدة المعالجة المركزية والقرص، فيمكنك ضغط النسخ الاحتياطية على القرص لتوفير المساحة وجعل النقل إلى الشريط أو أي موقع آخر أسرع.

نصائح أخرى

يجب أن تتحدث مع المستخدمين/العملاء/أوصياء البيانات - أيًا كان ما تسميهم به.إنهم بحاجة إلى أن يكون لديهم فهم واضح لمقدار العمل الذي يمكن أن يخسروه.اكتب اتفاقية مستوى الخدمة (SLA) إذا لم يكن لديك واحدة.أنت لا تريد أي مفاجآت عندما يتعلق الأمر بالأخبار السيئة.

وعليهم أيضًا أن يفهموا أن الاستعادة تستغرق وقتًا.تحتاج إلى تخطيط خطة الاسترداد الخاصة بك لإنشاء وقت استعادة مقبول.قد يعني هذا إجراء نسخ احتياطي يومي كامل و4 فروق ونسخ احتياطية للسجل كل 5 دقائق.وهذا ليس جنونًا أو جنون العظمة كما قال ماركوس إريكسون - فالأمر كله يعتمد على معلوماتك والقيمة الدولارية التي تضعها مؤسستك عليها.

لا أعتقد أنك مصاب بجنون العظمة عن طريق تشغيل النسخ الاحتياطية كل 3 ساعات.بشكل أساسي، يجب قياس خطة النسخ الاحتياطي الخاصة بك وفقًا لمتطلبات الاستعادة الخاصة بك.ما هي المدة التي يمكنك أن تتحمل فيها التوقف أثناء التعافي مقابل مقدار البيانات التي ترغب في خسارتها قبل أن تتعطل.بالنسبة لـ SQL Server، يمكنك تقليص كمية البيانات التي ترغب في خسارتها بشكل كبير عن طريق إضافة نسخ احتياطية لسجل المعاملات إلى خطة النسخ الاحتياطي الخاصة بك.يقوم العديد من الأشخاص بذلك كل بضع دقائق اعتمادًا على حجم المعاملات التي تمر عبر النظام.للقيام بالاستعادة، ما عليك سوى استعادة آخر نسخة كاملة وآخر زيادة ثم جميع النسخ الاحتياطية لسجل المعاملات منذ الزيادة.يمكن أن يمنحك هذا الحد الأدنى من فقدان البيانات ولكن قد يستغرق الأمر بعض الوقت لتطبيق جميع النسخ الاحتياطية لسجل المعاملات.أرى ما يلي بانتظام:النسخ الاحتياطية الكاملة - النسخ الاحتياطية الإضافية الأسبوعية - النسخ الاحتياطية السجلات الليلية - كل بضع دقائق اعتمادًا على المتطلبات (قد تكون جيدة مرة واحدة في الساعة وما إلى ذلك)

تذكر إجراء عمليات إطلاق نار حيث تحاول فعليًا الاستعادة من النسخ الاحتياطية التي قمت بإنشائها (إلى نظام اختبار).وينبغي أن يتم ذلك ربما مرة واحدة في الشهر.

الحد الأدنى الذي أوصي به عملائي هو عمل نسخة احتياطية كاملة لقاعدة البيانات ليلاً ثم نسخة احتياطية للمعاملات كل 3 ساعات.يذهلني دائمًا عدد الأشخاص الذين لم يقوموا مطلقًا بإعداد نسخة احتياطية.هذه دائما مكالمات سيئة.

في رأيي أفضل طريقة هي:

قم بعمل نسخة احتياطية كاملة لقاعدة البيانات كل 12 ساعة

BACKUP DATABASE database TO DISK = 'd:/full.bak'

نسخة احتياطية تفاضلية كل ست ساعات، وفي حالة الفشل يسهل عملية الاستعادة

BACKUP DATABASE database TO DISK = 'd:/diff.bak' WITH DIFFERENTIAL

وبالطبع النسخ الاحتياطية لسجل المعاملات والتي من الأفضل إجراؤها كل ساعة.

BACKUP LOG database TO DISK = 'log.bak'

في حالة الفشل ستكون عملية الاسترداد هي التالية:

  • آخر نسخة احتياطية كاملة
  • آخر نسخة احتياطية تفاضلية
  • سجل المعاملات الأخير

يجب الاعتراف بأنه من الأفضل استخدام نموذج الاسترداد الكامل لإتاحة الاسترداد في الوقت المناسب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top