it-swarm.asia

كيف يؤثر تقليص ملف سجل SQL Server على الأداء؟

لدي قاعدة بيانات SQL Server 2008 التي تحتوي على ملف بيانات بحجم 2 غيغابايت ، ولكن ملف السجل يتجاوز 8 غيغابايت. باستخدام قواعد بيانات ما قبل 2008 ، يمكنني استخدام "سجل النسخ الاحتياطي" و TRUNCATE_ONLY الخيار ولكن هذا لم يعد متاحًا مع 2008 وقواعد البيانات الأحدث.

لديّ نص برمجي يقتطع ملف السجل:

USE [MyDatabase]
GO
ALTER DATABASE [MyDatabase] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC shrinkfile('MyDatabase_log', 1)
ALTER DATABASE [MyDatabase] SET RECOVERY FULL WITH NO_WAIT
GO

يؤدي هذا إلى اقتطاع ملف السجل بالكامل ، ولكن سؤالي هو: هل يؤثر ذلك على الأداء؟

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

19
MartinHT

أوصي حقًا بقراءة أهمية إدارة حجم سجل المعاملات بواسطة Paul S. Randal.

الجوهر هو أن هناك طريقتان جيدتان حقًا للقيام بمعالجة سجل المعاملات :

  1. إما أن تذهب مع النسخ الاحتياطية لملف LOG المنتظم وسوف يقوم ملف LOG بإعادة استخدام مساحته بعد كل نسخة احتياطية من LOG ولن ينمو إلى ما لا نهاية ، أو

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

ما يهم اقتطاع ملف LOG وأداءه هو أنك ستحصل دائمًا على نتيجة أداء عند زيادة ملف LOG (اقتباس من أعلاه - مشاركة مدونة مرتبطة):

إذا قمت بتقليص السجل ، فسوف ينمو مرة أخرى - ربما يتسبب في VLF التجزئة ، ويتسبب بالتأكيد في توقف عبء عملك أثناء نمو السجل ، حيث لا يمكن للسجل استخدام التهيئة الفورية [. ..]

التحديث: لا تخطئ في اقتطاع ملف LOG لتقليص ملف البيانات. تقلص ملف البيانات سيء حقًا. انظر لماذا لا يجب تقليص ملفات البيانات الخاصة بك للحصول على التفاصيل.

26
MicSim

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

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

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

6
HLGEM

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

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

4
Gregory A Beamer