• 0
mkyh86

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

سؤال

السلام عليكم

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

 

والاخر .mdf

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

8 إجابة على هذا السؤال .

  • 0

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

  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

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

  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

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

     

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله خير

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله خير

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

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

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

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

 

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

 

تحياتى 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

USE [master]GOALTER DATABASE [TestDb] SET RECOVERY SIMPLE WITH NO_WAITDBCC SHRINKFILE(TestDb_Log, 1)ALTER DATABASE [TestDb] SET RECOVERY FULL WITH NO_WAITGO

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
On 11/8/2013 at 11:10 AM, houssam11350_11350 said:

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

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

 

 

تم تعديل بواسطه abotoqa
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .