إنشاء خطة صيانة SQL Server

مكتمل

تتضمن الأنشطة النموذجية التي يمكنك جدولتها لصيانة SQL Server العادية ما يلي:

  • النسخ الاحتياطي لسجل قاعدة البيانات والمعاملات
  • عمليات التحقق من تناسق قاعدة البيانات
  • العمل على صيانة الفهرس
  • تحديثات الإحصائيات

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

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

أفضل الممارسات لخطط الصيانة

لا تساعدك خطط الصيانة على إجراء صيانة قاعدة البيانات فحسب، بل توفر أيضا خيارات لتقليم البيانات من قاعدة بيانات msdb، والتي تعمل كمخزن بيانات ل SQL Server Agent. كما تسمح لك خطط الصيانة بتحديد إزالة النسخ الاحتياطية القديمة لقاعدة البيانات من القرص. تؤدي إزالة ملفات النسخ الاحتياطي القديمة إلى تقليل حجم وحدة تخزين النسخ الاحتياطي وتساعد على إدارة حجم قاعدة البيانات msdb.

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

إنشاء خطة صيانة

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

لقطة شاشة تعرض شاشة معالج خطة الصيانة.

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

ما هو حساب الوكيل؟

حساب الوكيل هو حساب يحتوي على بيانات اعتماد مخزنة يمكن ل SQL Server Agent استخدامها لتنفيذ خطوات مهمة معينة كمستخدم معين. يتم تخزين معلومات تسجيل الدخول لهذا المستخدم كبيانات اعتماد في مثيل SQL Server. تستخدم حسابات الوكيل عادة عندما تتطلب خطوات مهمة محددة حقوق أمان دقيقة جدا.

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

جداول الوظائف

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

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

لقطة شاشة تعرض جدول الوظائف في SQL Agent.

الخطوة التالية هي تحديد مهام الصيانة لإضافتها إلى الخطة. يوضح المثال التالي العمليات المتاحة لتنفيذها بواسطة خطة الصيانة الخاصة بك.

لقطة شاشة تعرض توفر مهام الصيانة على معالج خطة الصيانة.

التحقق من تكامل قاعدة البيانات - تقوم هذه المهمة بتشغيل الأمر DBCC CHECKDB للتحقق من صحة التناسق المنطقي والمادي لكل صفحة قاعدة بيانات. يجب تنفيذ هذه المهمة بانتظام ومحاذاتها مع نافذة الاحتفاظ بالنسخ الاحتياطي. تأكد من إكمال فحص التناسق قبل تجاهل أي نسخ احتياطية سابقة لمنع نقل التلف.

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

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

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

محفوظات التنظيف - تحذف هذه المهمة محفوظات عمليات النسخ الاحتياطي والاستعادة من قاعدة بيانات msdb، بالإضافة إلى محفوظات مهام عامل SQL Server. يساعد على إدارة حجم قاعدة بيانات msdb.

تنفيذ مهمة عامل SQL Server - تقوم هذه المهمة بتشغيل مهمة SQL Server Agent المعرفة من قبل المستخدم.

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

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

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

يمكن تحديد نطاق كل مهمة لقواعد بيانات المستخدم أو قواعد بيانات النظام أو مجموعة مخصصة من قواعد البيانات، ولكل منها خيارات تكوين محددة.

خطة صيانة كاملة في SSMS

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

بيئة متعددة الخوادم

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