กู้คืนไฟล์ bak ไปยังไฟล์ฐานข้อมูล mdf และ ldf ที่เล็กกว่า


11

ฉันมีฐานข้อมูลดั้งเดิมที่ขาดการออกแบบที่น่ากลัวฉันจะไม่เข้าไปที่นี่ แต่ไฟล์บนเซิร์ฟเวอร์นั้นมีขนาดใหญ่มาก ฉันมี:

MyDatabase.mdf: 24.8GB
MyDatabase.ldf: 114.6GB

ฐานข้อมูลนี้ถูกสำรองข้อมูลเป็นไฟล์. bak ทุกคืนและส่งไปยังเซิร์ฟเวอร์รายงานของเราซึ่งมีการกู้คืน ไฟล์. bak มีขนาดเล็กกว่ามากเพียง 1.8GB

อย่างไรก็ตามเมื่อฉันพยายามกู้คืนบนเซิร์ฟเวอร์การรายงานมันล้มเหลวเนื่องจากมีพื้นที่ไม่เพียงพอ เซิร์ฟเวอร์มีพื้นที่ว่างประมาณ 100GB และพยายามทำลายไฟล์ทั้งหมดที่ใช้งานบนเซิร์ฟเวอร์ดั้งเดิม 139.4GB เว้นแต่ว่าฉันรู้ว่าการบีบอัดผิดอย่างน่ากลัวฉันค่อนข้างมั่นใจว่าไฟล์ 1.8GB นั้นไม่ได้เพิ่มขึ้น 7400%

คำถามของฉัน: มีวิธีใดที่จะบอกให้ SQL Server กู้คืนไฟล์ข้อมูลสำรองนี้โดยไม่ต้องจองพื้นที่ล่วงหน้า ฉันไม่สนใจเกี่ยวกับบันทึกใด ๆ ฉันแค่ต้องการข้อมูลเพื่ออยู่ที่นั่น ฉันเข้าใจฐานข้อมูลจากมุมมองการพัฒนาและสคีมา แต่ฉันไม่เคยใช้ DBA ประเภทใดเลย

นี่คือบน SQL Server 2008 R2 ขอบคุณสำหรับความช่วยเหลือหรือคำแนะนำ

คำตอบ:


11

การสำรองข้อมูลประกอบด้วยข้อมูลสองส่วน:

  • เลย์เอาต์ของไฟล์ฐานข้อมูลและข้อมูลเมตาคือ RESTORE FILELISTONLY ...
  • ข้อมูลจริง

ข้อมูลจริงในการสำรองข้อมูลคือ 1.8 GB แต่ข้อมูลเมตาอธิบายโครงร่างของไฟล์เหมือนกับบนเซิร์ฟเวอร์ที่ใช้งานจริง ในขณะที่ดูเหมือนว่าการบีบอัดไม่ใช่การบีบอัดจริง เป็นเพียงข้อมูลเมตากับเนื้อหา ปัญหาคือในระหว่างการเรียกคืนเครื่องรายงานสร้างเลย์เอาต์ตามที่อธิบายไว้ในข้อมูลเมตาดังนั้น 114.6GB + 24.8GB ตอนนี้สำหรับคำถามจริง: คุณสามารถกู้คืนได้โดยไม่ต้องสร้างเลย์เอาต์ไฟล์ต้นฉบับ DB ใหม่หรือไม่? ไม่ได้ แต่มีวิธีแก้ไขปัญหาของคุณอีกประการหนึ่งคือนำ DB เดิมกลับมาตรวจสอบ การลดขนาดบันทึกธุรกรรมครอบคลุมขั้นตอนที่คุณต้องทำเนื่องจากบันทึกเป็นจุดปวดหลักของคุณ ต่อไปฉันจะปรับใช้การจัดส่งบันทึกแทนการสำรองข้อมูล / เรียกคืน


ขอขอบคุณ; การลดขนาดบันทึกธุรกรรมทำเคล็ดลับได้อย่างสมบูรณ์แบบ
eouw0o83hf

1
บันทึกการจัดส่งแทนการสำรองข้อมูลบันทึก
Thomas Stringer

4
@Shark: บันทึกการจัดส่งแทนการสำรองข้อมูลเต็มรูปแบบเพื่อส่งฐานข้อมูลไปยังเครื่องรายงาน
Remus Rusanu

โอเคฉันพลาดคำถามนั้นไปหมดแล้ว ขอขอบคุณสำหรับการชี้แจง!!
Thomas Stringer

0

SQL Server 2012 ช่วยให้การใช้เพียงไฟล์ MDF ฐานข้อมูลและจะแนบไปกับ SQL Server: http://msdn.microsoft.com/en-us/library/ms174385.aspx SQL Server สร้างไฟล์ ldf ใหม่ที่คุณสามารถระบุขนาดได้ แล้ว:

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