الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تخفيض حجم ملف log

بدأه mkyh86 في 5 نوفمبر 2013 · 8 رد · 4,031 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عند انشاء قاعدة بيانات يتم انشاء ملفين الملف الاول ذات امتداد log.ldf

 

والاخر .mdf

البيانات تخزن في ملف .mdf

ولكن ما فائدة ملف log

واني لم اخزن معلومات كبيرة في قاعدة البيانات ولكن ملف log وصل حجمه الى 4g فما هي قضية الملف log ارجو توضيح لي الامر ....مع الشكر والتقدير

#2

السلام عليكم ...

  1. السجلات في سيكوال سيرفر تخزن في مجموعات تسمى page  أي كل Page  تحوي مجموعة من الــ Records  . و الــ Page  هي الوحدة الأصفر لكتابة و قراءة البيانات من القرص إلى الذاكرة , (هذه الــ Pages  مرقمة بشكل متسليل) .
  2. الـــ Log  يسجل العمليات التي حصلت على البيانات مع نسخ من البيانات  (عمليا  نسخ من الــ Pages).
  3. مثلا   افرض لدينا جدول فيه مليون سجل لدينا الاستعلام : 
    Update Employee Set Salary = salary * 3

     و بدأ الاستعلام بالعمل حيث قام بتحديث مئة سجل مثلا و حصل مشكلة مثل (انقطاع التيار الكهربائي مثلا) أي ان الــ Transaction  لم تتم بشكل كامل , هنا يجب التراجع عن العملية بإعادة السجلات المئة غلى قيمها السابقة ؟لكن أين تكون هذه القيم مخزنة , الجواب في الــ Log  .

  4. يستخدم في عملية الاصلاح Recovery  طالما انه يحوي نسخ من البيانات .
  5. مع الوقت يزداد حجمه , بسبب وجود فراغات في وسط الملف .. للتخلص من الفراغات يجب عمل Shrink  له .
  6. من الــ Sql Server Management Studio  ثم نقرة يمينية على القاعدة ثم Tasks  ثم shrink  ثم نختار Files ثم نحدد نوع الملف log  و نختار (reOrganize pages before releasing unused space)
  7. هذا يقابل الأمر  : 
    DBCC SHRINKFILE (AdventureWorks2012_Log, 1);
  8. Microsoft-SQL-Server-2008-Shrink-Set-Siz
2

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

مشكور اخي على الرد وجزاك الله خيرا

نفذت ما هو مطلوب ولكن لم ارى تغير في حجم الملف ؟؟؟

#4
mkyh86 كتب:

مشكور اخي على الرد وجزاك الله خيرا

نفذت ما هو مطلوب ولكن لم ارى تغير في حجم الملف ؟؟؟

بارك الله بك اخي ...

  1. يرجى أخذ نسخة احتياطية من قاعدة البيانات حتى لا يحصل أي فقدان لأي شئ مهم ..
  2. من sql server management stdio  نقرة يمينية على قاعدة البيانات ثم Properties  ثم من التبويب Options  نختار Rcovery model  بالقيمة Simple  ..
  3. نقوم بعمل Shrink  للــ Log  كما هو مذكور في مشاركتي السابقة و نتاكد من وضع القيمة 1 أو 0 للحجم بالــ MB , نرى هل تغير الحجم ..
  4. يفضل إعادة القيمة السابقة للــ Recovery Model  بالقيمة Full  الافتراضية) .
  5. من الضروري العودة للـــ Sql Server Logs  لمعرفة إن كان هناك مشاكل أخرى , الملفات موجودة في المسار : 
    C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\LOG

    على جهاز السيرفر طبعا و ليس على الاجهزة الاخرى ,  أو حسب مكان التثبيت و الاصدار .

     

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

جزاك الله خير

اللهم لاتجعل له حاجة الا قضيتها

اشكرك استاذ لقد انقذتني صارت الطريقة

#6
mkyh86 كتب:

جزاك الله خير

اللهم لاتجعل له حاجة الا قضيتها

اشكرك استاذ لقد انقذتني صارت الطريقة

جزاك الله خيرا أيضا ... و قضى الله حاجاتكم و حاجات جميع المسلمين ..آمين .

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7

بارك الله فيك استاذ حسام

 

وجعله فى ميزان حسناتك 

 

تحياتى 

#8

السلام عليكم

لمن اراد نفس الطريقة لكن باستخدام السكريبت

USE [master]
GO
ALTER DATABASE [TestDb] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC SHRINKFILE(TestDb_Log, 1)
ALTER DATABASE [TestDb] SET RECOVERY FULL WITH NO_WAIT
GO

مع تغيير قاعدة البيانات من testDB الى اسم القاعدة المطلوبة

#9
houssam11350_11350 كتب:

جزاكم الله خيرا
صبطت معايا

ربنا يجعله فى ميزان حسناتكوا

 

تم تعديل هذه المشاركة بواسطة abotoqa في 26 نوفمبر 2017 في 12:32

مواضيع مشابهة