SQL Server (2005/2008): ทำการสำรองข้อมูลแบบเต็มตัดปลายบันทึกในโหมดการกู้คืนแบบเต็ม


41

ฉันเพิ่งอ่านเอกสาร MSDN จำนวนมากและฉันคิดว่าฉันเข้าใจรูปแบบการกู้คืนที่แตกต่างกันและแนวคิดของการสำรองข้อมูล ฉันยังมีคำถามหนึ่งคำถาม:

การสำรองฐานข้อมูลเต็มรูปแบบตัดทอนบันทึกธุรกรรม (โดยใช้โหมดการกู้คืนแบบเต็ม) หรือไม่

  • ถ้าใช่: สิ่งนี้ถูกกล่าวถึงใน MSDN ที่ไหน? ทั้งหมดที่ฉันหาได้ก็คือมีเพียงข้อมูลสำรองเท่านั้นที่ตัดทอนบันทึก

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

คำตอบ:


43

Nope - ไม่แน่นอน เพียงสิ่งที่ช่วยให้เข้าสู่ระบบเพื่อ / ตัดชัดเจนในเต็มหรือ BULK_LOGGED รุ่นกู้คืนคือการสำรองข้อมูลเข้าสู่ระบบ - ไม่มีข้อยกเว้น ผมมีเรื่องนี้ในขณะที่กลับและโพสต์โพสต์บล็อกยาวและรายละเอียดที่มีคำอธิบายและสคริปต์ที่คุณสามารถใช้เพื่อพิสูจน์ให้ตัวเองที่เข้าใจผิดรอบล็อกและเข้าสู่ระบบการสำรองข้อมูล: วิธีการโน้มน้าวตัวเอง

ติดตามคำถามเพิ่มเติมได้ฟรี Btw - นอกจากนี้ยังดูบทความยาวผมเขียนนิตยสาร TechNet ในการบันทึกความเข้าใจและการกู้คืนใน SQL Server

ขอบคุณ


ขอบคุณมากครับสำหรับคำตอบยอดเยี่ยมของคุณและบทความนี้ได้ตอบคำถามเป็นล้านคำถามในใจของฉัน
M.Ali

13

การสำรองข้อมูลเต็มรูปแบบไม่ตัดทอนบันทึกคุณต้องดำเนินการบันทึกข้อมูลสำรอง การสำรองข้อมูลเต็มรูปแบบไม่ได้ตั้งค่าห่วงโซ่การบันทึกใหม่ - ซึ่งจะทำให้การส่งแบบจำลอง / บันทึกการจัดส่งโดยสิ้นเชิงเป็นต้น

คุณต้องมองอย่างใกล้ชิดว่า SQL Server ทำข้อมูลสำรองอย่างไร แต่รู้ว่าธุรกรรมที่ดำเนินอยู่ในเที่ยวบิน / ระยะยาวนั้นไม่รวมอยู่ในข้อมูลสำรอง (ไม่เช่นนั้นข้อมูลสำรองอาจไม่สมบูรณ์) ดังนั้นจึงค่อนข้างแม่นยำ ฐานข้อมูลออนไลน์รับประกันว่าจะทำให้การสำรองข้อมูลบันทึกต่อไปล้าสมัย

http://msdn.microsoft.com/en-us/library/ms175477.aspx


8

จากความเข้าใจของฉันสิ่งเดียวที่ตัดทอนล็อกธุรกรรมคือการสำรองข้อมูลเข้าสู่ระบบ

การสำรองข้อมูลเต็มรูปแบบคัดลอกบันทึกเพียงพอเพื่อให้สอดคล้องกับธุรกรรมเนื่องจากใช้เวลาสักครู่เพื่อให้การสำรองข้อมูลเสร็จสมบูรณ์ & ในเวลานั้นหน้าเว็บที่คัดลอกอาจมีการเปลี่ยนแปลง

คุณยังต้องการสำรองข้อมูลบันทึกของคุณเพื่อการกู้คืนเวลา

ฉันไม่มี MSDN ที่จะเชื่อมโยง แต่ฉันสามารถเชื่อมโยงคุณกับบล็อกของ Paul Randalซึ่งเป็นผู้พัฒนาทีม SQL Server เขียน DBCC CHECKDB และส่วนต่างๆของ Books Online

เขายังตอบคำถามในฟอรัมนี้เพื่อที่จะเป็นอำนาจที่ดียิ่งขึ้นแล้วข้อมูลมือที่ 2/3 จากฉัน :)


5

คนมักจะมีความเข้าใจผิดเกี่ยวกับการสำรองข้อมูลเต็มรูปแบบและการสำรองข้อมูลเข้าสู่ระบบ เพื่อให้การสำรองข้อมูลสามารถทำงานในFULLรูปแบบการกู้คืนข้อมูลสำรองได้จะต้องใช้ t-log เนื่องจากในระหว่างการสำรองข้อมูลอาจยังมีธุรกรรมที่เกิดขึ้นในฐานข้อมูล (เว้นแต่คุณจะทำการCOLDสำรองข้อมูลที่เรียกว่าเมื่อคุณปิดฐานข้อมูล) Oracle ใช้แนวคิดเดียวกันเมื่อคุณมีฐานข้อมูลในARCHIVELOGโหมด ลำดับของการสำรองข้อมูลลดลงมาเป็น:

  1. เริ่มการสำรองข้อมูล - หยุดการกระทำทั้งหมดในไฟล์จริงและเขียนลงในบันทึก t
  2. ทำการสำรองข้อมูล - ธุรกรรมทั้งหมดดำเนินการต่อ แต่ไม่ได้เขียนลงในไฟล์จริงจะถูกเขียนลงใน t-log
  3. สิ้นสุดการสำรองข้อมูล - ดำเนินการเขียนธุรกรรมฐานข้อมูลไปยังไฟล์จริง
  4. หากจำเป็นให้ล้างสิ่งที่อยู่ในบันทึก T เข้าไปในไฟล์จริง

นั่นคือเหตุผลที่ t-log ไม่ได้ถูกตัดทอนหรือหดตัวโดยปริยายเนื่องจากเป็นส่วนสำคัญของการทำธุรกรรมอย่างต่อเนื่องในระหว่างขั้นตอนการสำรองข้อมูล


1

อย่าสับสนการตัดทอนบันทึกด้วยการลดขนาดบันทึก

  • TRUNCATE คือการลบทรานแซคชันในบันทึกที่อยู่ก่อนหน้าด่านสุดท้าย (จุดตรวจที่เป็นเมื่อธุรกรรมถูกลบทิ้งไปยังฐานข้อมูลเอง) สิ่งนี้ทำได้โดยใช้คำสั่ง BACKUP

  • หากต้องการ SHRINK บันทึกคือการลดขนาดไฟล์บันทึกจริง สิ่งนี้ทำได้โดยใช้คำสั่ง DBCC


1

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

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