เป็นไปได้หรือไม่ที่จะกู้คืน sql-server bak และลดขนาดไฟล์ล็อกในเวลาเดียวกัน?


26

เรามีไฟล์บั๊กจากลูกค้าที่เราถ่ายโอนไปยังสำนักงานนักพัฒนาของเราเพื่อตรวจสอบปัญหา ขณะนี้การสำรองข้อมูลปัจจุบันมีขนาด 25GB และฐานข้อมูลที่เรียกคืนมีขนาดใกล้เคียงกัน แต่จะต้องมีการกู้คืน 100GB ฉันเชื่อว่าเป็นเช่นนี้เพราะมีการตั้งค่าฐานข้อมูลให้มีขนาดบันทึกธุรกรรม 75GB หลังจากกู้คืนฐานข้อมูลเราสามารถลดขนาดไฟล์บันทึกได้ แต่มีวิธีการในการกู้คืนหรือไม่?


3
ฉันรู้ว่าคุณไม่สามารถเปลี่ยนแปลงฐานข้อมูลจนกว่าจะเสร็จสิ้นการคืนค่า
Shawn Melton

3
ฉันอยู่ในสถานการณ์เดียวกันและฉันหวังว่าจะได้คำตอบ เพียงเพื่อแสดงความคิดเห็นมีผลิตภัณฑ์: การคืนค่าเสมือน SQL ของ red-gate ฉันไม่เคยใช้สิ่งนี้ แต่ตามเว็บไซต์: 'ฐานข้อมูลที่เมาท์ต้องใช้พื้นที่เก็บข้อมูลเพิ่มเติมใกล้เป็นศูนย์มากกว่าไฟล์สำรองข้อมูล'
StanleyJohns

คำตอบ:


16

ไม่มีวิธีที่จะลดขนาดการสำรองข้อมูลซึ่งเป็นส่วนหนึ่งของกระบวนการกู้คืน ฐานข้อมูลที่เรียกคืนต้องมีลักษณะเหมือนกับฐานข้อมูลต้นทางโดยมีข้อยกเว้นเพียงอย่างเดียวคือคุณสามารถเปลี่ยนอักษรไดรฟ์และโฟลเดอร์ได้


34

มีแฮ็คที่ไม่ต้องทำอย่างนี้ในสภาพแวดล้อมแบบสดๆที่คุณสามารถใช้ในที่ที่มีพื้นที่ จำกัด โดยการกู้คืนล็อกไฟล์ไปยังโฟลเดอร์ที่บีบอัด ลองใช้วิธีนี้โดยบีบอัดโฟลเดอร์ที่มีอยู่แล้วเรียกคืนมันจะทำให้เกิดข้อผิดพลาดดังนั้นคุณต้องโกงด้วยลิงก์สัญลักษณ์

  1. สร้างโฟลเดอร์ที่บีบอัด D:\LogCompressed\
  2. สร้างลิงก์สัญลักษณ์ไปยังโฟลเดอร์ที่บีบอัด mklink /D /J D:\Log\ D:\LogCompressed\

  3. กู้คืนฐานข้อมูลของคุณด้วยไฟล์ ldf ที่ชี้ไปที่ D:\Log\

  4. ลดขนาดไฟล์บันทึกให้มีขนาดที่เหมาะสม

  5. แยกฐานข้อมูลย้ายไฟล์บันทึกไปยังโฟลเดอร์ที่ไม่มีการบีบอัดแนบ

มันสกปรกมันเป็นการโกงไม่เคยทำมันในชีวิตแต่มันใช้งานได้ การทดสอบอย่างรวดเร็วของฐานข้อมูลที่สร้างขึ้นใหม่ด้วยไฟล์บันทึก 32MB แสดงว่ามันมีขนาด 330kb บนดิสก์เมื่อถูกบีบอัดขยายขนาดโฟลเดอร์และขนาดดิสก์กลับเป็น 32MB


2
@ Mark: แฮ็คนี้ใช้งานได้ แต่ไม่สมบูรณ์แบบ แม้ว่าไฟล์บันทึกจะใช้พื้นที่น้อยกว่าขนาดจริงคุณไม่สามารถกู้คืนฐานข้อมูลได้เว้นแต่ว่าดิสก์มีพื้นที่ว่างจริงเท่ากับขนาดจริงของฐานข้อมูล เมื่อทำการกู้คืนขนาดของไฟล์บันทึกจะลดลงอย่างช้า ๆ จากขนาดจริงซึ่งเป็นขนาดที่เจ็บปวด อย่างไรก็ตามมันยังคงเป็นแฮ็คที่ดีมาก ขอบคุณ
chenwq

9

ฉันเชื่อว่าเหตุผลที่การสำรองข้อมูลของคุณคือ 25 GB และฐานข้อมูลที่คืนค่าเป็น 100 GB ไม่ใช่เพราะบันทึกธุรกรรมของคุณ สิ่งที่ฉันเดาก็คือไฟล์ฐานข้อมูลของคุณมีพื้นที่จัดสรร 100 GB และมีข้อมูลจริง 25 GB ในฐานข้อมูล

มีความแตกต่างระหว่างการเป็นพื้นที่จัดสรรแฟ้มฐานข้อมูลและข้อมูลพื้นที่ใช้ ในกรณีนี้อดีตคือ 100 GB และหลังคือ 25 GB


1
ลูกค้าจัดสรร 75GB ให้กับบันทึกธุรกรรมของพวกเขา หลังจากกู้คืนฉันเปลี่ยนการจัดสรรบันทึกเป็น 1GB ในปัจจุบัน ถ้าเป็นไปได้ฉันต้องการกู้คืนฐานข้อมูลนี้ไปยังเซิร์ฟเวอร์ที่มีพื้นที่ว่างน้อยกว่า 100GB โดยไม่ต้องกู้คืนไปยังเซิร์ฟเวอร์อื่นตัดทอนสำรองข้อมูลและกู้คืนอีกครั้ง
Adam Butler

@ อดัมบัตเลอร์เป็นไปได้ไหมที่จะกู้คืนไปยังเซิร์ฟเวอร์เครื่องแรกชั่วคราวเพื่อให้คุณสามารถลดขนาดไฟล์จากนั้นทำการสำรองข้อมูลสำเนาและเรียกคืนบนเซิร์ฟเวอร์ปลายทางได้หรือไม่
DForck42
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.