it-swarm.asia

خطة صيانة خادم Sql - أفضل الممارسات في المهام والجدولة

أنا مكلف بوضع خطة صيانة لقواعد بيانات SQL Server 2005. أعرف النسخ الاحتياطية أريد إجراء نسخ احتياطي يومي كامل لقاعدة البيانات ونسخ احتياطية لسجل المعاملات كل 15 دقيقة. تكمن مشكلتي في تحديد المهام الأخرى التي أريد القيام بها وعدد المرات التي يجب أن أقوم بها.

حتى الآن لدي هذا في الاعتبار. صحح لي إذا كان هناك أي عيوب في تفكيري أو طريقة أفضل للقيام بذلك.

  1. النسخ الاحتياطي - جميع الجداول ، النسخ الاحتياطي الكامل (يوميًا)
  2. النسخ الاحتياطي - جداول محددة ، نسخ احتياطي كامل (كل ساعة)
  3. النسخ الاحتياطي - سجلات المعاملات (كل 15 دقيقة)
  4. تحقق من تكامل قاعدة البيانات (يوميًا)
  5. إعادة تنظيم المؤشر (يوميًا)
  6. تحديث الإحصائيات (يوميًا)
  7. تقليص قاعدة البيانات (أسبوعيا)
  8. مؤشر إعادة البناء (أسبوعيًا)
  9. تنظيف الصيانة (يوميًا)

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

44
Josh

جوش ،

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

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

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

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

عندما تقوم بإعادة بناء الفهارس ، يتم تحديث إحصائيات الفهارس باستخدام fullscan ولكن إذا قمت بتحديث الإحصائيات بعد ذلك ، فسيتم تحديثها مرة أخرى بعينة افتراضية (والتي تعتمد على عدة عوامل ، عادة 5 ٪ من الجدول عندما يكون حجم الجدول> 8 ميغابايت) مما قد يؤدي إلى مشاكل في الأداء. اعتمادًا على الإصدار الذي تستخدمه ، قد تتمكن من إعادة بناء الفهرس عبر الإنترنت. الطريقة الصحيحة للقيام بهذا النشاط هي التحقق من مقدار التجزئة وتبعاً لذلك إما إعادة بناء الفهرس أو إعادة تنظيم الفهرس + إحصائيات التحديث. وقد ترغب أيضًا في تحديد الجداول التي تحتاج إلى تحديث الإحصائيات بشكل متكرر ومحاولة تحديث الإحصائيات بشكل أكثر تكرارًا.

خطط الصيانة لا بأس بها ولكن من الصعب الحصول على أفضل النتائج من خلال هذه التخصيصات ما لم تتمكن من تسجيل الدخول إلى SSIS و Tweak the MP. لهذا السبب أفضل عدم استخدامها واستخدامها نصوص Ola Hallengren المجانية التي هي أكثر قوة من MP. أيضا ، أود أن أوصي اللحاق بالمقال المشار إليه بواسطة بول راندال حول هذا الموضوع.

المرجع: http://technet.Microsoft.com/en-us/magazine/2008.08.database.aspx

هذه ليست إجابة شاملة لسؤالك ولكنها نقطة بداية جيدة. يرجى إعلامنا إذا كان لديك أي أسئلة/تعليقات إضافية.

30
Sankar Reddy

سوف أشارك تجربتي ، حتى لو كنت قد قبلت بالفعل إجابة. ربما سيكون من المفيد :-).

  1. نسخ احتياطي يومي كامل (يومي) - رائع ، لكن لا تنس التحقق من وجود مساحة وإزالة الملفات القديمة بعد بعض الوقت المحدد مسبقًا.
  2. جداول مختارة احتياطيًا (كل ساعة) - لا تفهم سبب حاجتك إلى ذلك ، من الأفضل أن تذهب مع النسخ الاحتياطية التفاضلية. كيف تقوم بعمل نسخة احتياطية من جداول معينة فقط: SSIS ، والنصوص ، و bcp؟ فيما يتعلق بالنسخ الاحتياطية المختلفة ، لا تقم بجدولة ذلك كثيرًا ، حيث ستسرق دور النسخ الاحتياطية للسجل.
  3. نسخ احتياطي لسجل المعاملات (كل 15 دقيقة) - رائع ، هل أنت متأكد من أنك بحاجة إلى جميع قواعد البيانات؟ هل تستخدم جميع قواعد البيانات نموذج الاسترداد الكامل أم لا؟
  4. تحقق من سلامة db - نعم ، ولكن عليك التأكد من أنك لا تقتل البيئة. عبارات الشيكات DBCC أنانية جدا على الموارد وتفحص dbs كاملة ، لذلك يجب جدولتها خلال ساعات العمل.
  5. إعادة تنظيم المؤشر (يوميًا) - لا تجبره ، افعل ذلك فقط إذا لزم الأمر. تحقق من فهرس DMV فيما يتعلق بالتجزئة وإعادة التنظيم بناءً على الاحتياجات فقط. سوف أنقل جميع عمليات الفهرس والإحصاءات في مهمة أسبوعية واحدة.
  6. تحديث الإحصائيات (يوميًا) - يرجى الاطلاع على إجابتي على سؤال سابق. بدلاً من فرض تحديث جميع الإحصائيات ، كل يوم ، من الأفضل أن تتحقق من وقت آخر تحديث للإحصاءات ويتم تحديثها في بعض الحالات فقط.
  7. تقليص قاعدة البيانات (أسبوعيا) - أوه ، لا. يرجى قراءة مقالة بول راندال بشأن تقلص الملف.
  8. مؤشر إعادة البناء (أسبوعيًا) - انظر 5.
  9. تنظيف الصيانة (يوميًا) - لا بأس بذلك.

  10. من الأفضل أيضًا إضافة مهمة للتحقق من النسخ الاحتياطية - هناك إصدار من الأمر RESTORE (تحقق فقط .. إذا تذكرت بشكل صحيح) - دعنا نقول أسبوعيًا ، على الرغم من أنني أفضل ذلك يوميًا.

تذكر أنك تريد أن تكون محميًا في حالة فقدان البيانات ، لذلك أود أن تحتاج إلى إضافة قواعد بيانات النظام في إجراء الصيانة هذا. واحرص أيضًا على نسخ الملفات احتياطيًا على جهاز مختلف عن الخادم نفسه. احتفظ بمكان ما في ملف يحتوي على ما يجب فعله في حالة احتياجك إلى إعادة إنشاء db الرئيسي ، msdb..etc. حظا موفقا في مهمتك

22
Marian

إجابة متأخرة ولكن يمكن أن تكون مفيدة للقراء الآخرين.

من فضلك ، ضع في اعتبارك أن هناك الكثير من مهام الصيانة أو إعداد التقارير ، يمكنك إنشاؤها ، والتي تنطوي على مخاطر غير مرئية مرتبطة بها.

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

ضع في اعتبارك دائمًا كيفية تفاعل الوظائف المختلفة ووقتها بحيث لا يكون هناك تداخل في المهام الحساسة أو المهام المكثفة للموارد.

أقترح قراءة هذا المقال أولاً: http://www.sqlshack.com/removing-the-risk-from-important-maintenance-tasks-in-sql-server/

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

10
Alex Kirilov
  1. يبدو جيدا

  2. قد تستفيد من عمل النسخ الاحتياطية التفاضلية هنا. ابحث عنها بالتأكيد

  3. يبدو جيدا

  4. يبدو جيدا

  5. كما ذكرنا سابقًا ، فإن تقلص قاعدة البيانات سيء لأنه ينشئ تجزئة فعلية لبياناتك وملفات السجل الخاصة بك ، مما يسبب المزيد من العشوائية IO يقرأ.

5 و 6 و 8: انظر ما يلي.

تسير هذه الأمور جنبًا إلى جنب ، حيث تعتمد الفهارس على أحدث الإحصاءات ، ويعتبر ترتيب هذه العمليات مهمًا إلى حد ما. الطريقة الأساسية التي أستخدمها ، والتي قد لا تعمل مع الجميع ، هي أنني أقوم بجولتين من صيانة الفهرس. أولاً ، أقوم بإجراء الفهارس العنقودية ثم الفهارس غير المجمعة. الطريقة التي أستخدمها لكليهما هي التالية. إذا كان الفهرس كبيرًا بما يكفي ومجزئًا بما فيه الكفاية (sys.dm_db_index_physical_stats) ، فسأعيد إنشاء الفهرس (الذي يتضمن تحديثًا للإحصاءات مع مسح كامل). إذا كان الفهرس صغيرًا جدًا لإعادة التجديد أو غير مجزأ تمامًا بما يكفي لإعادة البناء (أقل من 100 صفحة وما بين 5٪ و 15٪ تجزئة) ، فسوف أقوم أولاً بإعادة تنظيم الفهرس. ثم سأقوم بتحديث الإحصائيات مع مسح كامل. إذا كان الفهرس غير مجزأ بما يكفي لأي من هذه الأجزاء من صيانة الفهرس ، فسوف أواصل تحديث الإحصائيات بمسح كامل.

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

آمل أن يكون هذا قد ساعد بطريقة ما!

7
Matt M

مالت على تعليق "فقدان البيانات يمكن أن يكون له نتائج قانونية هنا".

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

الحصول على نسخ احتياطية هو شيء واحد. معرفة كيفية استخدامها في حالات الطوارئ أمر آخر.

لا تنس أنه إذا كنت على وشك استعادة نسخة احتياطية بعد فشل كبير ، فربما تكون بالفعل تحت ضغط من الضغط والضغط. لا تحتاج إلى العبء الإضافي للحفر والكتابة بشكل لا تشوبه شائبة بيان RESTORE DATABASE مع 12 ملف سجل المعاملات ... والصلاة لا تخيبك ...

في مكان عملي ، يمكنني استعادة/استعادة قاعدة بيانات 350 جيجا بايت إلى أي نقطة خلال فترة 5 دقائق في الأسبوع الماضي باستخدام DPM. مع واجهة المستخدم الرسومية. يستحق ذلك ، في كتابي.

بالنسبة للبقية ، ابحث بالتأكيد في برنامج فهرس Ola Hallengren ، واضبط المعلمات وفقًا لاحتياجاتك. شخصيًا ، اقترنتها بمهمة مجدولة تجعلها تعمل لمدة ساعة كل ليلة بدون إعادة فحص ، لذا فهي تتعامل مع أسوأ الفهارس في كل مرة ، وتفرض إعادة تفحص كاملة للتجزئة في كل يوم سبت ، أو عندما تكون جميع الفهارس في القائمة تم إلغاء تجزئتها.

أخيرًا ، أضيف صوتي إلى مجموعة "لا تقلص ملفاتك تلقائيًا أبدًا". File Shrink ليست سوى أداة تستخدم بشكل متقطع عند حدوث حدث غير منتظم أدى إلى زيادة حجم السجلات أو ملفات DB (حلقة لا نهائية أو ما شابه). لا يفترض أن تكون أداة صيانة. إذا كان لديك ضغط على مساحة القرص ، فإن الانكماش سيؤخر ما لا مفر منه على أي حال.

3
Philippe