จากสิ่งที่ฉันสามารถบอกได้มีสามวิธีที่เป็นไปได้ในการสำรองฐานข้อมูล SQL Server ของคุณ
- สำรองข้อมูลทั้งหมด
- สำรองข้อมูลต่างกัน
- บันทึกการจัดส่ง
อะไรคือข้อดีข้อเสียของแต่ละกลยุทธ์และในสถานการณ์ใดที่พวกเขาควรได้รับการว่าจ้าง?
จากสิ่งที่ฉันสามารถบอกได้มีสามวิธีที่เป็นไปได้ในการสำรองฐานข้อมูล SQL Server ของคุณ
อะไรคือข้อดีข้อเสียของแต่ละกลยุทธ์และในสถานการณ์ใดที่พวกเขาควรได้รับการว่าจ้าง?
คำตอบ:
การจัดส่งบันทึกไม่ใช่สถานการณ์จำลองการสำรองข้อมูล มันเป็นสถานการณ์ที่มีประโยชน์กึ่งสูง
สำหรับการสำรองข้อมูลจะมีการสำรองข้อมูลเต็มรูปแบบและบันทึกธุรกรรม พวกเขาควรจะใช้ร่วมกัน SLA ของคุณกำหนดวิธีการใช้งาน สถานการณ์ทั่วไปส่วนใหญ่เป็นการสำรองข้อมูลเต็มรูปแบบบอกเวลาเที่ยงคืนสำรองข้อมูลต่างกันตอนเที่ยงและสำรองข้อมูลบันทึกธุรกรรมทุก 30 หรือ 15 นาที
และจำไว้ว่า: คุณไม่มีการสำรองข้อมูลที่ถูกต้องจนกว่าคุณจะกู้คืนจากมันเพื่อทดสอบว่ามันใช้ได้หรือไม่
อาจไม่มีแนวคิดดังกล่าวเป็นกลยุทธ์การสำรองข้อมูล: คุณมีกลยุทธ์การกู้คืนเนื่องจากสิ่งนี้จะกำหนดระยะเวลาจนกว่าคุณจะกลับมาทำงาน *
กลยุทธ์ทั้งหมดต้องการการสำรองข้อมูลเต็มรูปแบบเพื่อยึดตามการเรียกคืนส่วนต่างและ / หรือการสำรองข้อมูลบันทึกตามมา
ในทางปฏิบัติคุณสามารถมีการสำรองข้อมูลเต็มรูปแบบจาก 6 เดือนที่ผ่านมากับการสำรองข้อมูลบันทึก 15 นาที: อย่างไรก็ตามคุณจะต้องใช้การสำรองข้อมูลทุกครั้งจากบันทึกล่าสุด
เป็นตัวอย่างแบบสุ่มสถานการณ์หนึ่งอาจเป็นรายสัปดาห์ส่วนต่างรายวันล็อก 15 นาที
ช่วงเวลาการสำรองข้อมูลกำหนดจำนวนข้อมูลที่คุณสูญเสียในกรณีที่เลวร้ายที่สุด: การสำรองข้อมูลบันทึก 15 นาทีจะทำให้คุณสูญเสียข้อมูลระหว่าง 1 วินาทีถึง 14 นาที 59 วินาทีเฉลี่ย 7.5 นาที เป็นที่ยอมรับหรือไม่?
บันทึกการจัดส่งเป็นโหมดเตรียมพร้อมพร้อมระบบหยุดทำงานแบบแมนนวล: ไม่ได้ทำการสำรองข้อมูล แต่เป็นตัวเลือกความพร้อมใช้งานสูง
ไม่มีกลยุทธ์ใดที่เหมาะกับทุกสถานการณ์ แต่สิ่งสำคัญคือต้องเข้าใจสิ่งที่คุณมีให้คุณ การสำรองข้อมูลเต็มรูปแบบเป็นสิ่งที่พวกเขาต้องการ: การสำรองข้อมูลเต็มรูปแบบของฐานข้อมูลของคุณลบบันทึกการทำธุรกรรม การสำรองข้อมูลส่วนต่างเป็นการสำรองข้อมูลการเปลี่ยนแปลงในไฟล์ข้อมูลตั้งแต่การสำรองข้อมูลเต็มรูปแบบครั้งล่าสุด การสำรองข้อมูลบันทึกธุรกรรมจะสำรองข้อมูลธุรกรรมทั้งหมดที่เก็บไว้ในบันทึกธุรกรรมตั้งแต่สำรองข้อมูลบันทึกธุรกรรมล่าสุด การสำรองข้อมูลบันทึกธุรกรรมจะช่วยให้คุณกู้คืนสู่ช่วงเวลาหนึ่ง หากนี่เป็นข้อกำหนดคุณจะต้องตั้งค่าโหมดการกู้คืนเป็น "เต็ม" และคุณจะต้องสำรองข้อมูลบันทึกธุรกรรมเป็นประจำโดยขึ้นอยู่กับจำนวนข้อมูลที่คุณยินดีเสียในกรณีที่เกิดสถานการณ์กู้คืน
เมื่อจัดการกับการสำรองข้อมูล Transaction Log สิ่งสำคัญคือต้องเข้าใจว่าบันทึกการเชื่อมโยงคืออะไร ในคำพูดของฉันห่วงโซ่การบันทึกคือชุดของการสำรองข้อมูลที่จำเป็นต้องกู้คืนเพื่อกู้คืนฐานข้อมูลของคุณไปยังจุดที่กำหนดในเวลา ในการเริ่มกู้คืนบันทึกธุรกรรมคุณต้องคืนค่าการสำรองข้อมูลเต็มรูปแบบโดยใช้ตัวเลือก WITH NORECOVERY หากคุณทำการสำรองข้อมูลต่างด้วยคุณจะต้องกู้คืนข้อมูลสำรองล่าสุดก่อนเวลาที่คุณต้องการคืนค่าโดยใช้ตัวเลือก WITH NORECOVERY ณ จุดนี้คุณจะต้องกู้คืนการสำรองข้อมูลบันทึกธุรกรรมตามลำดับโดยใช้ตัวเลือก WITH NORECOVERY ในการสำรองข้อมูลทั้งหมดยกเว้นการสำรองข้อมูลขั้นสุดท้าย สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการคืนเวลาให้ตรวจสอบลิงค์นี้ http://msdn.microsoft.com/en-us/library/ms175093.aspx
ดังที่ได้กล่าวไว้แล้ว Log Shipping ไม่ใช่กลยุทธ์การสำรองข้อมูล แต่สามารถลดเวลาการเรียกคืนลงอย่างมากในกรณีที่เกิดสถานการณ์กู้คืนจากความเสียหาย Gotcha อย่างหนึ่งที่ต้องระวังคือการเผยแพร่การจำลองแบบใด ๆ จะต้องถูกสคริปต์ไปยังเซิร์ฟเวอร์ Log Shipping และเริ่มต้นเพื่อให้การจำลองแบบทำงานได้เหมือนก่อนเกิดภัยพิบัติ ด้วยสิ่งพิมพ์ขนาดใหญ่สิ่งนี้อาจทำให้เพิ่มขึ้นอย่างมากในเวลาที่ใช้ในการเรียกคืนกลับสู่ระดับการผลิต
หวังว่าจะช่วยได้
ด้าน
ฉันสอง Mladen Prajdic บทความนี้จะช่วยให้คุณเลือกกลยุทธ์การสำรองข้อมูลที่ถูกต้องโดยขึ้นอยู่กับรูปแบบการค้นคืนของฐานข้อมูล
สิ่งเหล่านี้ไม่ใช่กลยุทธ์การสำรองข้อมูลสำหรับ SQL Server การสำรองข้อมูลเต็มรูปแบบและส่วนต่างเป็นประเภทของการสำรองข้อมูลที่คุณสามารถทำได้กับฐานข้อมูล SQL Server ในขณะที่การจัดส่งบันทึกเป็นกลยุทธ์ความพร้อมใช้งานสูง (โดยการย้ายการสำรองข้อมูลบันทึกตามเวลาที่กำหนดจากเซิร์ฟเวอร์หนึ่งไปยังอีก จำกัด การสำรองข้อมูลของคุณ)
ข้อมูลที่ดีเกี่ยวกับ Disaster Recovery (การสำรองข้อมูลและเรียกคืน :-)) คุณสามารถหาได้ใน MSDN: ที่นี่และที่นี่ ในระยะสั้นคุณต้องเลือกจำนวนข้อมูลที่คุณสามารถกู้คืนจากข้อมูลสำรองในกรณีที่เกิดความล้มเหลว ตัวอย่างกลยุทธ์การสำรองข้อมูลที่ชาญฉลาดจะเป็นการสำรองข้อมูลเต็มรูปแบบทุกวันและบันทึกการสำรองข้อมูลทุกชั่วโมง (ขึ้นอยู่กับความต้องการของคุณ) ดังนั้นในกรณีนี้คุณจะสามารถกู้คืนฐานข้อมูลจากการสำรองข้อมูลเต็มรูปแบบ + สำรองข้อมูลบันทึกรายวันทั้งหมด
การอ้างอิงที่ดีอีกประการหนึ่งเกี่ยวกับ DR คุณสามารถค้นหาบนSimple_Talk
แน่นอนไม่เพียง แต่คุณจำเป็นต้องกู้คืนฐานข้อมูลของคุณเท่านั้นยังมีการกู้คืนในบริบทของเซิร์ฟเวอร์และแอปพลิเคชันที่ฐานข้อมูลเป็นส่วนหนึ่งของ ฉันยังไม่ได้ใช้ด้วยตนเอง แต่Data Protection Managerดูเหมือนจะทำงานที่ครอบคลุมมากขึ้นถ้าคุณต้องการ
วิธีที่ดีที่สุดคือใช้การสำรองข้อมูลทั้งสามประเภทโดยสิ้นเชิง แน่นอนคุณสามารถละเว้นการสำรองข้อมูลส่วนต่างของการสำรองข้อมูลบันทึกธุรกรรม ทุกอย่างขึ้นอยู่กับฐานข้อมูลของคุณเติบโตเร็วเพียงใดคุณเปลี่ยนแปลงฐานข้อมูลและอื่น ๆ บ่อยเพียงใด ก่อนที่จะเลือกแผนสำรองข้อมูลให้พิจารณาว่าคุณยินดีที่จะเปิดเผยข้อมูลจำนวนเท่าใด คุณพร้อมที่จะใช้เวลาเท่าไหร่ในการกู้คืนฐานข้อมูลของคุณ?
ตัวอย่างเช่นหากฐานข้อมูลของคุณเติบโตอย่างรวดเร็วคุณสามารถใช้กลยุทธ์การสำรองข้อมูลของ SQL Server ดังต่อไปนี้: การสำรองข้อมูลเต็มรูปแบบ - วันละครั้ง, การสำรองข้อมูลต่างกัน - ทุกสองชั่วโมงและการสำรองข้อมูลบันทึกธุรกรรม - ทุก 20 นาที ในกรณีนี้หากความล้มเหลวเกิดขึ้นคุณจะสูญเสียงานของคุณไม่เกิน 19 นาที อีกตัวอย่างหนึ่งถ้าฐานข้อมูลของคุณเติบโตช้าคุณสามารถทำการสำรองข้อมูลเต็มรูปแบบวันละครั้งสำรองข้อมูลต่างกันทุกหกชั่วโมงและทุก ๆ ชั่วโมงทำสำรองข้อมูลบันทึกธุรกรรม
อีกหนึ่งเคล็ดลับ - เพื่อให้แน่ใจว่าฐานข้อมูลของคุณปลอดภัยเป็นครั้งคราวคืนค่าการสำรองข้อมูลของคุณบนเซิร์ฟเวอร์ทดสอบ