الاسترداد من سجل معاملات كامل داخل قاعدة البيانات الخاصة بخادم SQL Server

مقدمة

يصف هذا المقال الخطوات التي يجب عليك اتباعها عندما يزداد حجم سجل المعاملات الكامل بدرجة كبيرة. يمكن لسجلات المعاملات الكامل أن يجعل قاعدة بيانات Microsoft SQL Server غير قابلة للاستخدام. يصف هذا المقال كيفية اقتطاع سجلات المعاملات وتقليص حجمها، وكيفية منع حجم سجلات المعاملات من الزيادة بصورة غير متوقعة.

معلومات أخرى

تقليص حجم سجلات المعاملات

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

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


لمزيد من المعلومات حول كيفية تقليص حجم سجلات المعاملات، يرجى زيارة موقع الويب التالي والخاص بشركة Microsoft:

اقتطاع المعاملات غير النشطة داخل سجل المعاملات لديك

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

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

هام بعد أن تقوم باقتطاع ملفات سجلات المعاملات يدويًا، لابد أن تنشئ نسخة احتياطية من قاعدة البيانات بالكامل قبل قبل أن تقوم بالنسخ الاحتياطي لسجلات المعاملات.

للحصول على معلومات إضافية حول المشكلات التي قد تحدث عند اقتطاع ملفات سجلات المعاملات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft" (قد تحتوي هذه المقالة على ارتباطات إلى محتوى باللغة الإنجليزية (محتوى لم تتم ترجمته بعد)):

62866 الأسباب وراء عدم استجابة سجلات معاملات SQL للاقتطاع

تقليص ملف سجل المعاملات

عملية النسخ الاحتياطي أو طريقة الاقتطاع لا تقلل من حجم ملف السجل. لتقليص حجم ملف سجل المعاملات، لابد من تقليص ملف سجل المعاملات ذاته. لتقليص ملف سجل معاملات للحجم المطلوب وإزالة الصفحات غير المستخدمة، يتحتم عليك استخدام عملية DBCC SHRINKFILE. يمكن للعبارة "DBCC SHRINKFILE Transact-SQL" تقليص الجزء غير النشط داخل ملف السجل.

ملاحظة لا يمكن لعبارة "DBCC SHRINKFILE Transact-SQL" اقتطاع السجل وتقليص حجم المساحة المستخدمة داخل ملف السجل من تلقاء نفسها.

لمزيد من المعلومات حول تقليص ملفات سجلات المعاملات، رجاء الاطلاع على الموضوعات المضمنة في SQL Server Books Online.
  • تقليص حجم سجل المعاملات
  • DBCC SHRINKFILE
للحصول على معلومات إضافية حول كيفية تقليص ملفات سجلات المعاملات داخل خادم SQL Server 2000، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft" (قد تحتوي هذه المقالة على ارتباطات إلى محتوى باللغة الإنجليزية (محتوى لم تتم ترجمته بعد)):

272318 تقليص سجل المعاملات داخل خادم SQL Server 2000 باستخدام عملية DBCC SHRINKFILE

للحصول على معلومات إضافية حول المشكلات التي قد تحدث عند تقليص حجم ملفات سجلات المعاملات، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف لـ Microsoft" (قد تحتوي هذه المقالة على ارتباطات إلى محتوى باللغة الإنجليزية (محتوى لم تتم ترجمته بعد)):

814574 المشكلة: رسالة الخطأ: "يتعذر تقليص ملف السجل..." تظهر هذه الرسالة أثناء قيامك بتقليص حجم ملف سجل المعاملات

324432 المشكلة: قد يتعذر عمل الأمر "DBCC SHRINKFILE" والأمر "SHRINKDATABASE" بسبب النصوص المعممة أو نص ntext أو أعمدة الصور


منع الملفات الخاصة بسجلات المعاملات من النمو بشكل غير متوقع

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

    للحصول على معلومات إضافية حول الاعتبارات الخاصة بتهيئة خيارات النمو التلقائي، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft" (محتوى لم تتم ترجمته بعد)):

    315512 الاعتبارات الخاصة بالنمو التلقائي وتهيئة التقليص التلقائي

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

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

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

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

المزيد من المعلومات حول ملفات سجلات المعاملات

في خادم SQL Server 2000 وخادم SQL Server 2005، تحتوى كل قاعدة بيانات على الأقل على ملف بيانات واحد وملف سجل معاملات واحد. يقوم SQL Server بتسجيل البيانات فعلياً داخل ملف البيانات. يقوم ملف سجل المعاملات بتخزين تفاصيل كل التعديلات التي تجريها على قاعدة بيانات SQL Server والتفاصيل الخاصة بالمعاملات التي أجرت كل تعديل. نظرا لأن تكامل المعاملات يعد خاصية أساسية ومضمنة في SQL Server، فلا يمكن إيقاف تسجيل تفاصيل المعاملات في SQL Server.

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

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

للحصول على معلومات إضافية حول السيناريوهات التي قد تسبب نمو ملفات سجلات المعاملات بشكل غير متوقع، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft" (قد تحتوي هذه المقالة على ارتباطات إلى محتوى باللغة الإنجليزية (محتوى لم تتم ترجمته بعد)):

317375 يكبر حجم سجلات المعاملات بشكل غير متوقع أو تمتلئ على SQL Server


مراجع

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

خصائص

رقم الموضوع: 873235 - آخر مراجعة: 29‏/02‏/2012 - المراجعة: 1

تعليقات