مقدمة في Microsoft SQL Server 2005، يمكنك تقليص ملفات سجل المعاملات في قاعدة بيانات لإزالة الصفحات غير المستخدمة. سيقوم مشغل قاعدة البيانات بإعادة استخدام المساحة بكفاءة. ومع ذلك، عند زيادة حجم ملف سجل المعاملات بشكل غير متوقع، قد يكون من الضروري تقليص ملف سجل المعاملات يدويًا.
توضح هذه المقالة كيفية استخدام عبارة DBCC SHRINKFILE لتقليص ملفات سجل المعاملات يدويًا في قاعدة بيانات SQL Server 2005 في نموذج الاسترداد الكامل. قد تختلف الطريقة التي تستخدمها لتقليص ملف سجل المعاملات في SQL Server 2005 عن الطريقة التي تستخدمها لتقليص ملف سجل المعاملات في SQL Server 2000. لمزيد من المعلومات حول كيفية تقليص ملفات سجل المعاملات في SQL Server 2000، انقر فوق رقم المقالة أدناه لعرض المقالة المقابلة في قاعدة معارف Microsoft:
272318 ( http://support.microsoft.com/kb/272318/ ) INF: تقليص سجلات المعاملات في SQL Server 2000 باستخدام DBCC SHRINKFILE
عودة إلى الأعلى
مزيد من المعلومات في SQL Server 2005، تحاول عملية التقليص (DBCC SHRINKFILE) على الفور تقليص ملف سجل المعاملات المحدد إلى الحجم المطلوب. لتقليص ملفات سجل المعاملات يدويًا في نموذج الاسترداد الكامل، قم أولاً بعمل نسخة احتياطية من ملفات سجل المعاملات. ثم استخدم عبارة DBCC SHRINKFILE لتقليص ملف سجل المعاملات.
بشكل عام، يعد تقليص ملفات سجل المعاملات في SQL Server 2005 أسرع من تقليص ملفات سجل المعاملات في SQL Server 2000. والسبب هو أن SQL Server 2005 Log Manager يقوم بإنشاء أو إعادة استخدام ملفات السجل الظاهري غير النشطة بناءً على ترتيب تخزين القرص الفعلي. ولذلك، عادةً ما يوجد الجزء غير النشط من ملف سجل المعاملات في نهاية الملف.
على سبيل المثال، قد يحتوي ملف سجل المعاملات على 100 ملف سجل ظاهري، ولكنه يستخدم ملفين سجل ظاهري فقط. يقوم SQL Server 2000 بتخزين ملف السجل الظاهري الأول المستخدم في بداية ملف سجل المعاملات وملف السجل الظاهري الثاني المستخدم في منتصف ملف سجل المعاملات. لتقليص ملف سجل المعاملات إلى ملفين سجل ظاهري فقط، سيقوم SQL Server بملء الجزء المتبقي من ملف السجل الظاهري الثاني بإدخالات السجل الظاهري. ينقل SQL Server بداية السجل المنطقي إلى ملف السجل الظاهري التالي المحدد بواسطة مدير السجل. قد يقوم مدير السجل بإنشاء ملف سجل ظاهري في منتصف ملف سجل المعاملات، قبل آخر ملف سجل ظاهري نشط. في هذه الحالة، يجب استخدام عمليات النسخ الاحتياطي للسجل المتعددة وعمليات التقليص المتعددة لتقليص ملف سجل المعاملات بنجاح إلى ملفي سجل ظاهريين. أسوأ سيناريو، قد تضطر إلى استخدام 50 عملية نسخ احتياطي للسجل و50 عملية تقليص لتقليص ملف سجل المعاملات بنجاح إلى ملفي سجل ظاهريين.
ومع ذلك، في SQL Server 2005، يمكنك على الفور تقليص ملف سجل المعاملات إلى ملفين سجل ظاهري عن طريق تنفيذ عبارة DBCC SHRINKFILE. وذلك لأن SQL Server 2005 Log Manager يقوم بإنشاء ملفي سجل ظاهريين بالترتيب الذي تم تخزينهما به على القرص الفعلي. يوجد كلا ملفي السجل الظاهري في بداية ملف سجل المعاملات.
عند محاولة تقليص ملف سجل المعاملات الذي يحتوي على مساحة حرة صغيرة جدًا في SQL Server 2005، يجب إجراء عملية نسخ احتياطي للسجل أخرى. تقوم عملية النسخ الاحتياطي للسجل الإضافية هذه باقتطاع ملف سجل المعاملات إلى حجم أصغر. عند تقليص ملفات سجل المعاملات في SQL Server 2000، بالإضافة إلى تنفيذ الخطوات الثلاث المذكورة أعلاه، يجب عليك أيضًا إجراء عملية النسخ الاحتياطي للسجل. لمزيد من المعلومات، راجع مقالة قاعدة معارف Microsoft المذكورة في قسم "المقدمة". لتقليص ملف سجل المعاملات بمساحة حرة صغيرة جدًا في SQL Server 2005، اتبع الخطوات التالية: 1. قم بعمل نسخة احتياطية من ملفات سجل المعاملات بحيث تكون معظم ملفات السجل الظاهري النشطة غير نشطة. ولذلك، يمكن حذف ملفات السجل الظاهري غير النشطة في خطوة لاحقة. للقيام بذلك، قم بتشغيل عبارة Transact-SQL مشابهة لعبارة Transact-SQL التالية. سجل النسخ الاحتياطي <DatabaseName> إلى القرص = '<BackupFile>'
ملاحظة: في هذا البيان، <DatabaseName> هو عنصر نائب لاسم قاعدة البيانات المراد نسخها احتياطيًا. في هذا البيان، يعد <BackupFile> عنصرًا نائبًا للمسار الكامل لملف النسخة الاحتياطية.
على سبيل المثال، قم بتشغيل عبارة Transact-SQL التالية. سجل النسخ الاحتياطي TestDB إلى القرص='C:TestDB1.bak'
2. تقليص ملف سجل المعاملات. للقيام بذلك، قم بتشغيل عبارة Transact-SQL مشابهة لعبارة Transact-SQL التالية. ملف تقليص DBCC (<اسم الملف>، <TargetSize>) مع NO_INFOMSGS
ملاحظة: في هذا البيان، <FileName> هو عنصر نائب لاسم ملف سجل المعاملات. في هذا البيان، يعد <TargetSize> عنصرًا نائبًا للحجم المستهدف لملف سجل المعاملات. يجب أن يكون حجم الهدف معقولاً. على سبيل المثال، لا يمكنك تقليص ملف سجل المعاملات إلى أقل من ملفي سجل ظاهري.
3. إذا لم تعمل عبارة DBCC SHRINKFILE على تقليص ملف سجل المعاملات إلى الحجم المستهدف، فقم بتشغيل عبارة سجل النسخ الاحتياطي المذكورة في الخطوة 1 لجعل المزيد من ملفات السجل الظاهري غير نشطة.
4. قم بتشغيل عبارة DBCC SHRINKFILE المذكورة في الخطوة 2. بعد القيام بذلك، يجب أن يكون ملف سجل المعاملات قريبًا من الحجم المستهدف.
باختصار، لقد تغيرت الخوارزمية التي يستخدمها مدير السجل لتحديد ملف السجل الظاهري التالي في SQL Server 2005. لذلك، يختلف تقليص ملفات سجل المعاملات في SQL Server 2005 عن تقليص ملفات سجل المعاملات في SQL Server 2000 بالطرق التالية: إذا كان ملف السجل يحتوي على مساحة كبيرة من المساحة الحرة، فإن تقليص ملف سجل المعاملات في SQL Server 2005 يكون أسرع من تقليص ملفات سجل المعاملات في SQL Server 2005. تقليص ملف سجل المعاملات في SQL Server 2000 تقليص ملفات سجل المعاملات أسرع.
• تقليص ملف سجل المعاملات في SQL Server 2005 هو نفس تقليص ملف سجل المعاملات في SQL Server 2000 إذا لم يكن لملف السجل مساحة حرة.
• يتطلب تقليص ملف سجل المعاملات في SQL Server 2005 إجراء عملية نسخ احتياطي للسجل أكثر من إجراء هذه العملية في SQL Server 2000 إذا كان ملف السجل يحتوي على مساحة حرة صغيرة جدًا.