it-swarm.asia

هل من الممكن استعادة باك خادم SQL وتقليص السجل في نفس الوقت؟

لدينا ملف باك من عميل قمنا بتحويله إلى مكاتب المطورين لدينا للتحقيق في المشكلة. النسخة الاحتياطية حاليًا 25 غيغابايت وقاعدة البيانات المستعادة هي بنفس الحجم تقريبًا ولكنها تحتاج إلى استعادة 100 غيغابايت. أعتقد أن هذا بسبب وجود قاعدة بيانات تم إعدادها بحيث يكون لها حجم سجل المعاملات 75 جيجابايت. بعد استعادة قاعدة البيانات يمكننا تقليص ملف السجل ولكن هل هناك طريقة للقيام بذلك في الاستعادة؟

26
Adam Butler

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

16
mrdenny

هناك do-not-ever-do-this-in-a-live-environment اختراق يمكنك استخدامه حيث تكون المساحة محدودة ، عن طريق استعادة ملف السجل إلى مجلد مضغوط. محاولة ذلك عن طريق ضغط مجلد موجود واستعادته سيؤدي إلى حدوث خطأ ، لذلك عليك أن تغش برابط رمزي.

  1. إنشاء مجلد مضغوط D:\LogCompressed\
  2. إنشاء ارتباط رمزي للمجلد المضغوط mklink /D /J D:\Log\ D:\LogCompressed\

  3. استعادة قاعدة البيانات الخاصة بك مع ملف ldf مشيرا إلى D:\Log\

  4. تقليص ملف السجل إلى الحجم المناسب

  5. فصل قاعدة البيانات ، انقل ملف السجل إلى مجلد غير مضغوط ، إرفاق

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

34
Mark Storey-Smith

أعتقد أن سبب الاحتفاظ بنسخة احتياطية هو 25 غيغابايت وقاعدة البيانات المستعادة هي 100 غيغابايت ليست بسبب سجل المعاملات الخاص بك. ما أعتقده هو أن ملفات قاعدة البيانات الخاصة بك تحتوي على 100 جيجابايت من المساحة المخصصة وهناك 25 جيجابايت من البيانات الفعلية في قاعدة البيانات.

هناك اختلاف بين مساحة ملف قاعدة البيانات المخصصة و مساحة البيانات المستخدمة. في هذه الحالة ، الأول هو 100 جيجابايت والأخير 25 جيجابايت.

9
Thomas Stringer