แบ่งปันเลย:
สารบัญ ซ่อน
9. วิธีการคืนค่า SQL Server ฐานข้อมูล
10. SQL Server แนวทางปฏิบัติที่ดีที่สุดในการสำรองข้อมูล

สำรอง SQL Server ฐานข้อมูลพร้อมคู่มือปี 2025 ฉบับสมบูรณ์ของเรา คำแนะนำทีละขั้นตอนและแนวทางปฏิบัติที่ดีที่สุดสำหรับทุกระดับทักษะ

1. บทนำสู่ SQL Server สำรอง

1.1 คืออะไร SQL Server สำรองข้อมูล?

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

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

1.2 ทำไม SQL Server การสำรองข้อมูลเป็นสิ่งสำคัญ

การสำรองข้อมูลฐานข้อมูลถือเป็นแนวป้องกันสุดท้ายของคุณจากการสูญเสียข้อมูล หากไม่มีการสำรองข้อมูลที่เหมาะสม องค์กรของคุณอาจมีความเสี่ยงดังต่อไปนี้:

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

ปกติ SQL Server การสำรองข้อมูลช่วยให้มั่นใจถึงความต่อเนื่องทางธุรกิจและเป็นไปตามข้อกำหนดด้านกฎระเบียบสำหรับการปกป้องข้อมูล

1.3 สถานการณ์การสูญเสียข้อมูลทั่วไป

การเข้าใจเมื่อข้อมูลสูญหายจะช่วยให้คุณพัฒนากลยุทธ์การสำรองข้อมูลที่มีประสิทธิภาพ:

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

2 ความเข้าใจ SQL Server ประเภทการสำรองข้อมูล

SQL Server รองรับประเภทการสำรองข้อมูลหลายประเภท โดยแต่ละประเภทตอบสนองความต้องการการกู้คืนและการจัดเก็บที่แตกต่างกัน

2.1 การสำรองข้อมูลเต็มรูปแบบ

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

2.1.1 เมื่อใดจึงควรใช้การสำรองข้อมูลแบบเต็ม

การสำรองข้อมูลแบบเต็มเหมาะสำหรับ:

  • การกำหนดเส้นฐานสำหรับประเภทการสำรองข้อมูลอื่น ๆ
  • ฐานข้อมูลขนาดเล็กถึงขนาดกลางที่มีเวลาสำรองข้อมูลที่ยอมรับได้
  • กำหนดการสำรองข้อมูลรายสัปดาห์หรือรายเดือน
  • ฐานข้อมูลที่มีการเปลี่ยนแปลงไม่บ่อยนัก

2.1.2 ข้อดีและข้อจำกัดของการสำรองข้อมูลเต็มรูปแบบ

ข้อดี:

  • กระบวนการคืนค่าที่ง่ายที่สุด – ไฟล์เดียวมีทุกอย่าง
  • เป็นอิสระจากการสำรองข้อมูลอื่น ๆ
  • เวลาการกู้คืนที่เร็วที่สุดสำหรับการคืนค่าฐานข้อมูลทั้งหมด

ข้อ จำกัด :

  • ต้องใช้พื้นที่เก็บข้อมูลจำนวนมาก
  • เวลาสำรองข้อมูลนานขึ้นสำหรับฐานข้อมูลขนาดใหญ่
  • การใช้ทรัพยากรที่สูงขึ้นระหว่างการดำเนินการสำรองข้อมูล

2.2 การสำรองข้อมูลแบบดิฟเฟอเรนเชียล

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

2.2.1 การสำรองข้อมูลส่วนต่างทำงานอย่างไร

การสำรองข้อมูลแบบดิฟเฟอเรนเชียลจะติดตามการเปลี่ยนแปลงโดยใช้ขอบเขตที่เปลี่ยนแปลง เมื่อคุณกู้คืน SQL Server ใช้การสำรองข้อมูลเต็มรูปแบบครั้งสุดท้ายก่อน จากนั้นจึงใช้ most การสำรองข้อมูลส่วนต่างล่าสุด

2.2.2 การสำรองแบบเต็มและแบบแยกส่วน

การสำรองข้อมูลแบบเต็มเทียบกับแบบแยกส่วน

แง่มุม การสำรองข้อมูลเต็มรูปแบบ การสำรองข้อมูลต่างกัน
ขนาด ฐานข้อมูลที่สมบูรณ์ มีการเปลี่ยนแปลงเฉพาะตั้งแต่การสำรองข้อมูลเต็มรูปแบบครั้งล่าสุด
เวลาสำรอง ยาวที่สุด เร็วกว่าเต็ม
คืนค่ากระบวนการ การกู้คืนไฟล์เดี่ยว ต้องใช้แบบ Full + Differential
จำเป็นต้องมีการจัดเก็บข้อมูล Most ช่องว่าง พื้นที่น้อยในช่วงแรก แต่จะเพิ่มขึ้นเรื่อยๆ เมื่อเวลาผ่านไป

2.3 การสำรองข้อมูลบันทึกธุรกรรม

การสำรองข้อมูลบันทึกธุรกรรมจะบันทึกธุรกรรมทั้งหมดตั้งแต่การสำรองข้อมูลบันทึกครั้งล่าสุด ช่วยให้สามารถกู้คืนได้ ณ จุดใดจุดหนึ่งในเวลา

2.3.1 การทำความเข้าใจบันทึกธุรกรรม

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

2.3.2 การกู้คืนจุดในเวลา

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

ในการดำเนินการกู้คืน ณ จุดเวลาหนึ่ง คุณต้องมี:

  • การสำรองข้อมูลเต็มรูปแบบครั้งสุดท้าย
  • ม.ost การสำรองข้อมูลส่วนต่างล่าสุด (ทางเลือก)
  • การสำรองข้อมูลบันทึกธุรกรรมทั้งหมดจากการสำรองข้อมูลแบบเต็ม/ส่วนต่างไปยังของคุณ tarได้เวลา

2.4 การสำรองข้อมูล Tail-Log

การสำรองข้อมูลแบบ Tail-log จะบันทึกข้อมูลบันทึกที่ยังไม่ได้สำรองข้อมูล เพื่อป้องกันข้อมูลสูญหายและรักษาห่วงโซ่บันทึกให้สมบูรณ์ ก่อนการกู้คืน SQL Server ฐานข้อมูลไปยังจุดเวลาล่าสุด คุณต้องสำรองข้อมูลส่วนท้ายของบันทึกธุรกรรม การสำรองข้อมูลส่วนท้ายคือการสำรองข้อมูลครั้งสุดท้ายที่น่าสนใจในแผนการกู้คืนฐานข้อมูล

แผนภาพอธิบายการสำรองข้อมูล tail-log ใน SQL Server.

หมายเหตุ: สถานการณ์การคืนค่าไม่จำเป็นต้องมีการสำรองข้อมูลแบบ tail-log เสมอไป คุณไม่จำเป็นต้องมีการสำรองข้อมูลนี้หากจุดกู้คืนอยู่ในการสำรองข้อมูลแบบ tail-log ก่อนหน้า การสำรองข้อมูลแบบ tail-log ก็ไม่จำเป็นเช่นกัน หากคุณกำลังย้ายหรือแทนที่ (เขียนทับ) ฐานข้อมูล และไม่จำเป็นต้องกู้คืนไปยังจุดใดจุดหนึ่งหลังจากลบฐานข้อมูลแล้วost การสำรองข้อมูลล่าสุด

2.4.1 เมื่อจำเป็นต้องมีการสำรองข้อมูล Tail-Log

สถานการณ์ต่อไปนี้จะอธิบายว่าเมื่อใดคุณควรทำการสำรองข้อมูล tail-log:

การคืนค่าฐานข้อมูลออนไลน์: หากฐานข้อมูลออนไลน์อยู่และคุณวางแผนที่จะดำเนินการกู้คืนฐานข้อมูล ให้เริ่มต้นด้วยการสำรองข้อมูลส่วนท้ายของบันทึก เพื่อหลีกเลี่ยงข้อผิดพลาดสำหรับฐานข้อมูลออนไลน์ คุณต้องใช้ตัวเลือก WITH NORECOVERY ในคำสั่ง BACKUP Transact-SQL เมื่อทำการสำรองข้อมูล SQL Server ฐานข้อมูล

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

การสำรองฐานข้อมูลที่เสียหาย: หากฐานข้อมูลเสียหาย ให้ลองสำรองข้อมูล tail-log โดยใช้ตัวเลือก WITH CONTINUE_AFTER_ERROR ของคำสั่ง BACKUP สำหรับฐานข้อมูลที่เสียหาย การสำรองข้อมูล tail-log จะสำเร็จได้ก็ต่อเมื่อไฟล์บันทึกไม่ได้รับความเสียหาย ฐานข้อมูลอยู่ในสถานะที่รองรับการสำรองข้อมูล tail-log และฐานข้อมูลไม่มีการเปลี่ยนแปลงที่บันทึกเป็นกลุ่ม หากไม่สามารถสร้างการสำรองข้อมูล tail-log ได้ ธุรกรรมใดๆ จะถูกคอมมิตหลังจาก MS ล่าสุด SQL Server ฐานข้อมูลสำรองคือลost.

2.4.2 ตัวเลือกหลักสำหรับการสำรองข้อมูล Tail-Log

ด้วย NORECOVERY: ใช้ WITH NORECOVERY หากคุณกำลังสำรองข้อมูลส่วนท้ายของบันทึกของฐานข้อมูลออนไลน์ที่คุณวางแผนจะกู้คืนในภายหลัง NORECOVERY จะทำให้ฐานข้อมูลออฟไลน์ คุณยังสามารถสำรองข้อมูลได้อีกด้วย SQL Server บันทึกท้ายของฐานข้อมูลออฟไลน์ หากต้องการให้ฐานข้อมูลออฟไลน์ ให้ใช้ WITH NORECOVERY โปรดทราบว่าบันทึกจะถูกตัดทอน เว้นแต่คุณจะระบุตัวเลือก COPY_ONLY หรือ NO_TRUNCATE

มีข้อผิดพลาด CONTINUE_AFTER_ERROR: ใช้ CONTINUE_AFTER_ERROR เฉพาะเมื่อคุณกำลังสำรองข้อมูลส่วนท้ายของฐานข้อมูลที่เสียหายเท่านั้น เมื่อคุณสำรองข้อมูลส่วนท้ายของบันทึกในฐานข้อมูลที่เสียหาย เมตาดาต้าบางส่วนที่บันทึกไว้ในการสำรองข้อมูลบันทึกอาจไม่สามารถใช้งานได้

2.5 การสำรองข้อมูลแบบคัดลอกเท่านั้น

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

ใช้การสำรองข้อมูลแบบคัดลอกเท่านั้นสำหรับ:

  • การสร้างสำเนาฐานข้อมูลการทดสอบหรือการพัฒนา
  • การสำรองข้อมูลเฉพาะกิจโดยไม่กระทบต่อการสำรองข้อมูลตามกำหนดเวลา
  • สำรองข้อมูลก่อนการเปลี่ยนแปลงครั้งใหญ่หรือการทดสอบ

2.6 การสำรองไฟล์และกลุ่มไฟล์

การสำรองข้อมูลไฟล์และกลุ่มไฟล์ tarควรใช้ไฟล์ฐานข้อมูลหรือกลุ่มไฟล์เฉพาะ แทนที่จะใช้ฐานข้อมูลทั้งหมด วิธีนี้เหมาะสำหรับฐานข้อมูลขนาดใหญ่มากที่การสำรองข้อมูลทุกอย่างใช้เวลานานเกินไป

ประโยชน์ที่ได้รับรวมถึง:

  • การดำเนินการสำรองข้อมูลที่รวดเร็วยิ่งขึ้นสำหรับฐานข้อมูลขนาดใหญ่
  • การสำรองข้อมูลแบบขนานของกลุ่มไฟล์หลายกลุ่ม
  • ตัวเลือกการกู้คืนแบบละเอียด
  • กำหนดการสำรองข้อมูลที่ปรับให้เหมาะสมสำหรับกลุ่มไฟล์แบบอ่านอย่างเดียว

2.7 การสำรองข้อมูลบางส่วน

การสำรองข้อมูลบางส่วนจะรวมข้อมูลทั้งหมดในกลุ่มไฟล์หลักและกลุ่มไฟล์แบบอ่าน-เขียนทั้งหมด ยกเว้นกลุ่มไฟล์แบบอ่านอย่างเดียว วิธีนี้ช่วยลดขนาดและเวลาในการสำรองข้อมูลสำหรับฐานข้อมูลที่มีข้อมูลประวัติแบบคงที่ที่เก็บไว้ในกลุ่มไฟล์แบบอ่านอย่างเดียว

3. SQL Server โมเดลการกู้คืน

SQL Server โมเดลการกู้คืนจะกำหนดว่าประเภทการสำรองข้อมูลใดที่พร้อมใช้งาน และจะจัดการบันทึกธุรกรรมอย่างไร

3.1 แบบจำลองการกู้คืนแบบง่าย

3.1.1 ลักษณะเฉพาะและกรณีการใช้งาน

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

ดีที่สุดสำหรับ:

  • ฐานข้อมูลการพัฒนาและทดสอบ
  • ฐานข้อมูลที่การสูญเสียข้อมูลระหว่างการสำรองข้อมูลเป็นที่ยอมรับได้
  • คลังข้อมูลที่มีกระบวนการ ETL ที่สามารถเรียกใช้ซ้ำได้
  • ฐานข้อมูลแบบอ่านอย่างเดียวหรือแบบรายงาน

3.1.2 ตัวเลือกการสำรองข้อมูลที่มีอยู่

การกู้คืนแบบง่ายรองรับ:

  • สำรองข้อมูลเต็มรูปแบบ
  • การสำรองข้อมูลที่แตกต่างกัน
  • การสำรองข้อมูลไฟล์และกลุ่มไฟล์
  • การสำรองข้อมูลแบบคัดลอกเท่านั้น

การสำรองข้อมูลบันทึกธุรกรรมคือ ไม่สามารถใช้ได้ ในรูปแบบการกู้คืนแบบง่าย

3.2 แบบจำลองการกู้คืนเต็มรูปแบบ

3.2.1 คุณสมบัติและประโยชน์

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

ประโยชน์ที่สำคัญ:

  • ศักยภาพในการสูญเสียข้อมูลน้อยที่สุด
  • ความสามารถในการคืนค่าจุดในเวลา
  • รองรับการจัดส่งบันทึกและการมิเรอร์ฐานข้อมูล
  • ความยืดหยุ่นในการกู้คืนสูงสุด

3.2.2 การจัดการบันทึกรายการธุรกรรม

ภายใต้การกู้คืนเต็มรูปแบบ คุณต้องดำเนินการสำรองข้อมูลบันทึกธุรกรรมปกติเพื่อ:

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

กำหนดการสำรองข้อมูลทั่วไป: สำรองข้อมูลเต็มรูปแบบทุกสัปดาห์ สำรองข้อมูลส่วนต่างทุกวัน สำรองข้อมูลบันทึกทุก 15-30 นาที

3.3 โมเดลการกู้คืนข้อมูลแบบบันทึกจำนวนมาก

3.3.1 เมื่อใดจึงควรใช้การบันทึกข้อมูลจำนวนมาก

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

ใช้การกู้คืนข้อมูลที่บันทึกจำนวนมากเมื่อ:

  • ดำเนินการนำเข้าสินค้าจำนวนมาก
  • การสร้างดัชนีใหม่บนตารางขนาดใหญ่
  • การดำเนินการที่ได้รับประโยชน์จากการบันทึกข้อมูลขั้นต่ำ
  • จำเป็นต้องลดขนาดบันทึกธุรกรรมระหว่างการดำเนินการเฉพาะ

3.3.2 ข้อจำกัดและข้อควรพิจารณา

ข้อจำกัดที่สำคัญ:

  • การคืนค่าแบบจุดในเวลาไม่สามารถทำได้ระหว่างการดำเนินการเป็นกลุ่ม
  • การสำรองข้อมูลบันทึกจะมีขนาดใหญ่ขึ้นเมื่อมีการดำเนินการจำนวนมาก
  • ต้องสลับระหว่างการบันทึกแบบเต็มและแบบเป็นกลุ่มตามความจำเป็น

3.4 การเลือกโมเดลการกู้คืนที่เหมาะสม

เลือกโมเดลการกู้คืนของคุณตามความต้องการทางธุรกิจ:

แบบจำลองการกู้คืน ความเสี่ยงในการสูญเสียข้อมูล การกู้คืนตามเวลา ที่ดีที่สุดสำหรับ
ง่าย การเปลี่ยนแปลงตั้งแต่การสำรองข้อมูลครั้งล่าสุด ไม่ การพัฒนา/ทดสอบ การสูญเสียข้อมูลที่ยอมรับได้
เต็ม ขั้นต่ำ (โดยทั่วไปคือไม่กี่นาที) มี (ใบกำกับภาษีเต็มรูปแบบ) ฐานข้อมูลการผลิต ข้อมูลสำคัญ
บันทึกข้อมูลจำนวนมาก การเปลี่ยนแปลงตั้งแต่การสำรองข้อมูลบันทึกครั้งล่าสุด จำกัดระหว่างการดำเนินการจำนวนมาก จังหวะrarการใช้งานระหว่างการดำเนินการจำนวนมาก

4 การสำรองข้อมูล SQL Server ฐานข้อมูลโดยใช้ SSMS

4.1 ข้อกำหนดเบื้องต้นและการเตรียมตัว

ก่อนการสำรองข้อมูลของคุณ SQL Server ฐานข้อมูลให้แน่ใจว่า:

  • คุณมีสิทธิ์อนุญาตที่เหมาะสม (db_owner หรือสิทธิ์ BACKUP DATABASE)
  • พื้นที่ดิสก์เพียงพอสำหรับไฟล์สำรองข้อมูล
  • SQL Server ติดตั้ง Management Studio (SSMS) แล้ว
  • เส้นทางเครือข่ายสามารถเข้าถึงได้หากสำรองข้อมูลไปยังตำแหน่งเครือข่าย

4.2 ทีละขั้นตอน: การสำรองข้อมูลเต็มรูปแบบด้วย SSMS

ทำตามขั้นตอนเหล่านี้เพื่อสร้างการสำรองข้อมูลเต็มรูปแบบของคุณ SQL Server ฐานข้อมูลโดยใช้ SSMS

4.2.1 การเปิด SQL Server สตูดิโอการจัดการ

  1. ยิง SQL Server สตูดิโอการจัดการ
  2. กรอกชื่อเซิร์ฟเวอร์ของคุณใน ชื่อเซิร์ฟเวอร์ สนาม
  3. เลือกวิธีการยืนยันตัวตนของคุณ
  4. คลิก ติดตามเราได้ที่

4.2.2 การเลือกฐานข้อมูลและตัวเลือกการสำรองข้อมูล

  1. In นักสำรวจวัตถุขยาย ฐานข้อมูล ปม
  2. คลิกขวาที่ฐานข้อมูลที่คุณต้องการสำรองข้อมูล
  3. เลือก งาน -> Back Up
    Starta งานสำรองข้อมูลสำหรับ SQL Server ฐานข้อมูลใน SQL Server สตูดิโอการจัดการ
  4. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร สำรองฐานข้อมูล หน้าต่างตรวจสอบชื่อฐานข้อมูล
  5. เลือก เต็ม เป็น ประเภทการสำรองข้อมูล
    สร้างการสำรองข้อมูลแบบเต็มของ SQL Server ฐานข้อมูลใน SQL Server สตูดิโอการจัดการ

4.2.3 การกำหนดค่าปลายทางการสำรองข้อมูล

  1. ภายใต้ ปลายทางคลิก ลบรายการออกจากรถเข็น เพื่อล้างเส้นทางเริ่มต้น (ถ้าจำเป็น)
  2. คลิก เพิ่ม เพื่อระบุตำแหน่งสำรองข้อมูลใหม่
  3. ป้อนเส้นทางและชื่อไฟล์ด้วย บาก นามสกุล
  4. คลิก OK เพื่อยืนยันจุดหมายปลายทาง

ตั้งค่าปลายทางการสำรองข้อมูลใน SQL Server สตูดิโอการจัดการ

4.2.4 Advanced Backup การตั้งค่า

  1. คลิก ตัวเลือกสื่อ ในแผงด้านซ้าย
  2. เลือกตัวเลือกการสำรองข้อมูล:
    • เขียนทับชุดข้อมูลสำรองที่มีอยู่ทั้งหมด – แทนที่การสำรองข้อมูลที่มีอยู่
    • ผนวกเข้ากับชุดสำรองข้อมูลที่มีอยู่ – เพิ่มลงในไฟล์สำรองข้อมูลที่มีอยู่

    ตั้งค่าตัวเลือกสื่อสำรองข้อมูลใน SQL Server สตูดิโอการจัดการ

  3. คลิก ตัวสำรอง ในแผงด้านซ้าย
  4. กำหนดค่าการตั้งค่าตัวเลือก:
    • บีบอัดข้อมูลสำรอง – ลดขนาดไฟล์สำรองข้อมูล
    • เข้ารหัสข้อมูลสำรอง – ปกป้องข้อมูลที่ละเอียดอ่อน
    • ตรวจสอบการสำรองข้อมูลเมื่อเสร็จสิ้น – ตรวจสอบความสมบูรณ์ของการสำรองข้อมูล

    ตั้งค่าตัวเลือกการสำรองข้อมูลใน SQL Server สตูดิโอการจัดการ

4.2.5 การดำเนินการสำรองข้อมูล

  1. ตรวจสอบการตั้งค่าทั้งหมดใน สำรองฐานข้อมูล หน้าต่าง
  2. คลิก OK ถึง starกระบวนการสำรองข้อมูล
  3. รอให้การสำรองข้อมูลเสร็จสิ้น
  4. ข้อความแสดงความสำเร็จจะปรากฏขึ้นเมื่อการสำรองข้อมูลเสร็จสิ้น
  5. คลิก OK เพื่อปิดกล่องโต้ตอบการยืนยัน

4.3 การสร้างการสำรองข้อมูลเชิงอนุพันธ์ด้วย SSMS

ในการสร้างการสำรองข้อมูลแบบแยกส่วน ให้ทำตามขั้นตอนเดียวกับการสำรองข้อมูลแบบเต็ม แต่เลือก ดิฟเฟอเรนเชียล เป็นประเภทการสำรองข้อมูลในขั้นตอน 4.2.2 โปรดจำไว้ว่าการสำรองข้อมูลแบบแยกส่วนจำเป็นต้องมีการสำรองข้อมูลแบบเต็มไว้ก่อนหน้าเป็นพื้นฐาน

สร้างการสำรองข้อมูลที่แตกต่างกันของ SQL Server ฐานข้อมูลใน SQL Server สตูดิโอการจัดการ

4.4 การสร้างการสำรองข้อมูลบันทึกธุรกรรมด้วย SSMS

การสำรองข้อมูลบันทึกธุรกรรมมีให้เฉพาะกับฐานข้อมูลที่ใช้รูปแบบการกู้คืนแบบเต็มหรือแบบบันทึกเป็นกลุ่มเท่านั้น

  1. คลิกขวาที่ฐานข้อมูลใน นักสำรวจวัตถุ
  2. เลือก งาน -> Back Up
  3. Choose บันทึกธุรกรรม เป็นประเภทการสำรองข้อมูล
  4. กำหนดค่าจุดหมายปลายทางและตัวเลือกตามต้องการ
  5. คลิก OK เพื่อสร้างการสำรองข้อมูลบันทึก

สร้างการสำรองข้อมูลบันทึกธุรกรรมของ SQL Server ฐานข้อมูลใน SQL Server สตูดิโอการจัดการ

4.5 การสร้างการสำรองข้อมูลแบบคัดลอกเท่านั้นด้วย SSMS

การสำรองข้อมูลแบบคัดลอกเท่านั้นจะไม่รบกวนลำดับการสำรองข้อมูลปกติของคุณ

  1. ทำตามขั้นตอนเพื่อสร้างการสำรองข้อมูลเต็มรูปแบบ
  2. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ตัวสำรอง หน้า
  3. ตรวจสอบ การสำรองข้อมูลแบบคัดลอกเท่านั้น ตัวเลือก
  4. ดำเนินการสำรองข้อมูลตามปกติ

สร้างการสำรองข้อมูลแบบคัดลอกเท่านั้นของ SQL Server ฐานข้อมูลใน SQL Server สตูดิโอการจัดการ

5 การสำรองข้อมูล SQL Server ฐานข้อมูลโดยใช้ T-SQL

5.1 ไวยากรณ์ฐานข้อมูลสำรองพื้นฐาน

คำสั่ง T-SQL BACKUP DATABASE ให้การควบคุมด้วยโปรแกรม SQL Server การสำรองข้อมูล

BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;

5.2 คำสั่งสำรองข้อมูล T-SQL แบบเต็ม

5.2.1 สคริปต์สำรองข้อมูลเต็มรูปแบบแบบง่าย

สร้างการสำรองข้อมูลเต็มรูปแบบขั้นพื้นฐานด้วยตัวเลือกขั้นต่ำ:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO

5.2.2 การสำรองข้อมูลเต็มรูปแบบพร้อมตัวเลือก

เพิ่มข้อมูลเชิงบรรยายและตัวเลือกการจัดรูปแบบ:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH FORMAT,
     INIT,
     NAME = 'AdventureWorks-Full Database Backup',
     DESCRIPTION = 'Full backup of AdventureWorks database',
     STATS = 10
GO

อธิบายตัวเลือก:

  • FORMAT – สร้างชุดสำรองข้อมูลใหม่
  • INIT – เขียนทับไฟล์สำรองที่มีอยู่
  • ชื่อ – กำหนดชื่อชุดการสำรองข้อมูล
  • DESCRIPTION – เพิ่มข้อความบรรยาย
  • สถิติ – แสดงความคืบหน้าทุกๆ 10%

5.3 คำสั่ง T-SQL สำหรับการสำรองข้อมูลแบบแยกส่วน

การสำรองข้อมูลแบบต่างกันใช้ตัวเลือก DIFFERENTIAL:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
     INIT,
     NAME = 'AdventureWorks-Differential Backup',
     STATS = 10
GO

5.4 คำสั่ง T-SQL สำหรับการสำรองข้อมูลบันทึกธุรกรรม

ใช้ BACKUP LOG สำหรับการสำรองข้อมูลบันทึกธุรกรรม:

BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
     NAME = 'AdventureWorks-Transaction Log Backup',
     STATS = 10
GO

5.5 ตัวเลือกการสำรองข้อมูล T-SQL ขั้นสูง

5.5.1 การสำรองข้อมูลไปยังไฟล์หลายไฟล์

กระจายการสำรองข้อมูลไปยังไฟล์หลายไฟล์เพื่อประสิทธิภาพที่รวดเร็วยิ่งขึ้น:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_1.bak',
   DISK = 'D:\Backups\AdventureWorks_2.bak',
   DISK = 'E:\Backups\AdventureWorks_3.bak'
WITH FORMAT, INIT
GO

5.5.2 การสำรองข้อมูลด้วยการบีบอัด

ลดขนาดไฟล์สำรองและแบนด์วิดท์เครือข่าย:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
     INIT,
     STATS = 10
GO

5.5.3 การสำรองข้อมูลด้วยการเข้ารหัส

ปกป้องข้อมูลที่ละเอียดอ่อนด้วยการเข้ารหัส:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
     ENCRYPTION (
         ALGORITHM = AES_256,
         SERVER CERTIFICATE = BackupCertificate
     ),
     STATS = 10
GO

5.5.4 การสำรองข้อมูลด้วยการป้องกันด้วยรหัสผ่าน

เพิ่มการป้องกันด้วยรหัสผ่าน (ไม่สนับสนุนอีกต่อไป ให้ใช้การเข้ารหัสแทน):

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
     INIT
GO

5.5.5 การสำรองข้อมูลแบบมิเรอร์

สร้างสำเนาพร้อมกันไปยังตำแหน่งที่แตกต่างกัน:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO

5.6 ตัวอย่างและสคริปต์การสำรองข้อมูล T-SQL

สคริปต์สำรองข้อมูลที่สมบูรณ์พร้อมการจัดการข้อผิดพลาด:

DECLARE @BackupPath NVARCHAR(500);
DECLARE @DatabaseName NVARCHAR(128) = 'AdventureWorks';
DECLARE @BackupDate NVARCHAR(20);

SET @BackupDate = CONVERT(NVARCHAR(20), GETDATE(), 112);
SET @BackupPath = 'C:\Backups\' + @DatabaseName + '_' + @BackupDate + '.bak';

BEGIN TRY
    BACKUP DATABASE @DatabaseName
    TO DISK = @BackupPath
    WITH COMPRESSION,
         INIT,
         NAME = @DatabaseName + '-Full Backup',
         STATS = 10;
    
    PRINT 'Backup completed successfully: ' + @BackupPath;
END TRY
BEGIN CATCH
    PRINT 'Backup failed: ' + ERROR_MESSAGE();
END CATCH
GO

6 การสำรองข้อมูล SQL Server ฐานข้อมูลโดยใช้ PowerShell

6.1 คำสั่งสำรองข้อมูล PowerShell

SQL Server โมดูล PowerShell มี cmdlets สำหรับการสำรองข้อมูลอัตโนมัติ:

  • การสำรองข้อมูล-SqlDatabase – สร้างการสำรองข้อมูลฐานข้อมูล
  • คืนค่าฐานข้อมูล Sql – คืนค่าการสำรองฐานข้อมูล
  • รับฐานข้อมูล SQL – ดึงข้อมูลฐานข้อมูล

นำเข้า SQL Server โมดูล:

Import-Module SqlServer

6.2 การสร้างสคริปต์สำรองข้อมูลด้วย PowerShell

คำสั่งสำรองข้อมูล PowerShell ขั้นพื้นฐาน:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks.bak" `
                    -BackupAction Database `
                    -CompressionOption On

ตัวอย่างการสำรองข้อมูลแบบต่างกัน:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
                    -BackupAction Database `
                    -Incremental

การสำรองข้อมูลบันทึกธุรกรรม:

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Log.trn" `
                    -BackupAction Log

6.3 การสำรองข้อมูลอัตโนมัติด้วย PowerShell

สร้างสคริปต์สำรองข้อมูลอัตโนมัติสำหรับฐานข้อมูลหลาย ๆ แห่ง:

# Configuration
$ServerInstance = "localhost"
$BackupPath = "C:\Backups"
$Databases = @("AdventureWorks", "TestDB", "ProductionDB")
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"

# Create backup directory if not exists
if (-not (Test-Path $BackupPath)) {
    New-Item -ItemType Directory -Path $BackupPath
}

# Backup each database
foreach ($Database in $Databases) {
    $BackupFile = Join-Path $BackupPath "$Database`_$Timestamp.bak"
    
    try {
        Backup-SqlDatabase -ServerInstance $ServerInstance `
                          -Database $Database `
                          -BackupFile $BackupFile `
                          -BackupAction Database `
                          -CompressionOption On
        
        Write-Host "Successfully backed up $Database to $BackupFile" -ForegroundColor Green
    }
    catch {
        Write-Host "Failed to backup $Database : $_" -ForegroundColor Red
    }
}

7 การสำรองข้อมูล SQL Server ฐานข้อมูลโดยใช้บรรทัดคำสั่ง

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

7.1 การใช้ฐานข้อมูลสำรอง SQLCMD

SQLCMD เป็นยูทิลิตี้บรรทัดคำสั่งที่ทันสมัยสำหรับ SQL Server ที่เข้ามาแทนที่ OSQL มอบฟังก์ชันการทำงานที่ได้รับการปรับปรุง และเป็นเครื่องมือที่แนะนำสำหรับการรันคำสั่ง T-SQL จากพรอมต์คำสั่ง

7.1.1 ไวยากรณ์ SQLCMD ขั้นพื้นฐาน

sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -NS: ระบุไฟล์ SQL Server ชื่ออินสแตนซ์
  • -d: ระบุชื่อฐานข้อมูล
  • -ถาม: ดำเนินการสอบถามและออก
  • -และ: ใช้การตรวจสอบสิทธิ์ของ Windows
  • -ยู: ระบุ SQL Server ชื่อผู้ใช้ในการเข้าสู่ระบบ
  • -NS: ระบุรหัสผ่านสำหรับ SQL Server เข้าสู่ระบบ

7.1.2 การสร้างการสำรองข้อมูลด้วย SQLCMD

เพื่อสำรองข้อมูล SQL Server เมื่อใช้ SQLCMD ให้ทำตามขั้นตอนเหล่านี้:

  1. จุดเปิด พร้อมรับคำสั่ง or PowerShell
  2. ไปที่ SQL Server ไดเร็กทอรีเครื่องมือ (โดยทั่วไปจะเพิ่มลงใน PATH ระหว่างการติดตั้ง)
  3. ดำเนินการคำสั่งสำรองฐานข้อมูล SQLCMD ด้วยพารามิเตอร์ที่เหมาะสม
  4. ตรวจสอบว่าไฟล์สำรองข้อมูลถูกสร้างขึ้นสำเร็จ

ตัวอย่างคำสั่งสำรองข้อมูลทั้งหมดโดยใช้การตรวจสอบสิทธิ์ของ Windows:

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

ตัวอย่างการใช้ SQL Server รับรองความถูกต้อง:

sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

การสร้างการสำรองข้อมูลที่แตกต่างกันด้วย SQLCMD

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"

การสร้างการสำรองข้อมูลบันทึกธุรกรรมด้วย SQLCMD

sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"

7.1.3 การสำรองข้อมูลฐานข้อมูลผู้เผยแพร่ใน SQL Server การทำซ้ำ

เมื่อทำการสำรองข้อมูลฐานข้อมูลผู้เผยแพร่ใน SQL Server สำหรับการจำลองข้อมูล ให้ใช้ตัวเลือก WITH REPLICATION เพื่อรักษาข้อมูลเมตาของการจำลองและตรวจสอบให้แน่ใจว่ามีความสอดคล้องกันของธุรกรรม

-- Backup publisher database with replication support
BACKUP DATABASE PublisherDB 
TO DISK = 'C:\Backup\PublisherDB_Full.bak'
WITH REPLICATION, 
     COMPRESSION,
     CHECKSUM,
     INIT,
     STATS = 10;
GO

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ SQL Server การจำลองแบบ โปรดดูที่เว็บไซต์ของเรา คู่มือฉบับสมบูรณ์.

7.2 ใช้ฐานข้อมูลสำรอง OSQL

OSQL เป็นยูทิลิตี้บรรทัดคำสั่งแบบเก่าสำหรับ SQL Serverแม้ว่า Microsoft จะแนะนำให้ใช้ SQLCMD แทน แต่ OSQL ยังคงสามารถใช้งานได้กับสคริปต์และระบบรุ่นเก่า

7.2.1 ไวยากรณ์ OSQL ขั้นพื้นฐาน

ไวยากรณ์ OSQL คล้ายกับ SQLCMD:

osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -NS: SQL Server ชื่ออินสแตนซ์
  • -d: ชื่อฐานข้อมูล
  • -ถาม: ดำเนินการสอบถามและออก
  • -และ: ใช้การเชื่อมต่อที่เชื่อถือได้ (การตรวจสอบสิทธิ์ Windows)
  • -ยู: ชื่อผู้ใช้เข้าสู่ระบบ
  • -NS: ลงชื่อรหัสผ่าน

7.2.2 การสร้างการสำรองข้อมูลด้วย OSQL

ในการดำเนินการสำรองฐานข้อมูล OSQL:

  1. จุดเปิด พร้อมรับคำสั่ง
  2. ตรวจสอบว่า OSQL พร้อมใช้งานในของคุณ SQL Server การติดตั้ง
  3. ดำเนินการคำสั่งสำรองข้อมูล OSQL

ตัวอย่างการสำรองข้อมูลเต็มรูปแบบ:

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"

ตัวอย่างการสำรองข้อมูลแบบต่างกัน:

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"

8. บุคคลที่สาม SQL Server เครื่องมือสำรองข้อมูล

ในขณะที่ SQL Server มาพร้อมความสามารถในการสำรองข้อมูลแบบเนทีฟ เครื่องมือจากภายนอกมอบฟีเจอร์ขั้นสูง ระบบอัตโนมัติ และการจัดการระดับองค์กรสำหรับองค์กรที่มีความต้องการที่ซับซ้อน โซลูชันเหล่านี้มอบการบีบอัดข้อมูลขั้นสูง การจัดการแบบรวมศูนย์ และเวิร์กโฟลว์ที่คล่องตัวสำหรับการสำรองข้อมูล SQL Server ฐานข้อมูลในหลายสภาพแวดล้อม

8.1 การสำรองข้อมูล Veeam สำหรับ SQL Server

Veeam นำเสนอโซลูชันการปกป้องข้อมูลที่ครอบคลุมซึ่งออกแบบมาโดยเฉพาะเพื่อสำรองข้อมูล SQL Server ฐานข้อมูลที่มีผลกระทบน้อยที่สุดต่อระบบการผลิต

คุณสมบัติเด่น:

  • การประมวลผลที่คำนึงถึงแอปพลิเคชันสำหรับ SQL Server ความสอดคล้องของการสำรองข้อมูล
  • การสำรองข้อมูลและการจัดการบันทึกธุรกรรม
  • การกู้คืนจุดในเวลาพร้อมตัวเลือกการคืนค่าแบบละเอียด
  • การบูรณาการกับ Veeam Backup & Replication เพื่อการปกป้องข้อมูลแบบรวม
  • การตรวจสอบและยืนยันการสำรองข้อมูลอัตโนมัติ
  • การสนับสนุนสำหรับกลุ่มความพร้อมใช้งานแบบเปิดตลอดเวลา
  • ระดับ VM และระดับแอปพลิเคชัน SQL Server ตัวเลือกสำรอง

8.2 Barracuda Backup สำหรับ SQL Server

Barracuda นำเสนอโซลูชันการสำรองข้อมูลแบบบูรณาการบนคลาวด์พร้อมการจัดการที่ง่ายขึ้นสำหรับ MS SQL Server การดำเนินการสำรองฐานข้อมูล

คุณสมบัติเด่น:

  • อัตโนมัติ SQL Server การกำหนดเวลาสำรองข้อมูล
  • การจำลองระบบคลาวด์ในตัวไปยัง Barracuda Cloud Storage
  • การลดความซ้ำซ้อนและการบีบอัดข้อมูลทั่วโลก
  • ความสามารถในการกู้คืนข้อมูลในพื้นที่ทันที
  • คอนโซลการจัดการบนเว็บ
  • รองรับการสำรองข้อมูลแบบเต็ม ต่างกัน และบันทึกธุรกรรม
  • การป้องกันแรนซัมแวร์ด้วยการสำรองข้อมูลที่ไม่เปลี่ยนแปลง

8.3 Veritas NetBackup สำหรับ SQL Server

Veritas NetBackup เป็นแพลตฟอร์มการสำรองข้อมูลระดับองค์กรที่ให้การปกป้องที่ครอบคลุมสำหรับ SQL Server ฐานข้อมูลในสภาพแวดล้อมไอทีที่ซับซ้อน

คุณสมบัติเด่น:

  • การจัดการการสำรองข้อมูลระดับองค์กรสำหรับผู้ใช้งานหลายพันคน SQL Server อินสแตนซ์
  • อัลกอริทึมการลดความซ้ำซ้อนและการบีบอัดขั้นสูง
  • นโยบายการสำรองข้อมูลและการกำหนดเวลาที่ยืดหยุ่น
  • รองรับทุกคน SQL Server แบบจำลองการกู้คืน
  • การบูรณาการกับไลบรารีเทปraries และระบบจัดเก็บข้อมูลบนคลาวด์
  • การกู้คืนฐานข้อมูล ตาราง และวัตถุแบบละเอียด
  • รองรับหลายแพลตฟอร์ม (Windows, Linux SQL Server)
  • การจัดการวงจรชีวิตการสำรองข้อมูลอัตโนมัติ

8.4 การสำรองข้อมูลและกู้คืน Commvault อย่างสมบูรณ์สำหรับ SQL Server

Commvault มอบการจัดการข้อมูลอัจฉริยะพร้อมการสำรองข้อมูลที่ครอบคลุม SQL Server ความสามารถและคุณลักษณะอัตโนมัติขั้นสูง

คุณสมบัติเด่น:

  • การเพิ่มประสิทธิภาพการสำรองข้อมูลและการตรวจจับความผิดปกติที่ขับเคลื่อนด้วย AI
  • แพลตฟอร์มรวมสำหรับการสำรองข้อมูล การกู้คืน และการเก็บถาวร
  • ค้นหาระดับสูง SQL Server การบีบอัดข้อมูลสำรอง (ลดลงถึง 90%)
  • การประสานงานการกู้คืนระบบจากภัยพิบัติแบบอัตโนมัติ
  • Live Sync เพื่อการปกป้อง RPO ที่เกือบเป็นศูนย์
  • การสนับสนุนสำหรับ SQL Server การปรับใช้ภายในสถานที่ คลาวด์ และไฮบริด
  • IntelliSnap สำหรับการสำรองข้อมูลตามสแนปช็อต
  • ความสามารถในการปฏิบัติตามข้อกำหนดและการค้นพบทางอิเล็กทรอนิกส์อย่างครอบคลุม

8.5 Cohesity DataProtect สำหรับ SQL Server

Cohesity มอบการจัดการข้อมูลรุ่นถัดไปด้วยโครงสร้างพื้นฐานไฮเปอร์คอนเวอร์จสำหรับยุคใหม่ SQL Server การดำเนินการสำรองข้อมูล

คุณสมบัติเด่น:

  • สถาปัตยกรรมระดับเว็บเพื่อการจัดการที่เรียบง่าย
  • ความสามารถในการคืนค่ามวลทันทีสำหรับ SQL Server ฐานข้อมูล
  • สแน็ปช็อตที่สอดคล้องกับแอปพลิเคชัน
  • การขจัดข้อมูลซ้ำซ้อนทั่วโลกสำหรับการสำรองข้อมูลทั้งหมด
  • การรวมระบบคลาวด์ดั้งเดิม (AWS, Azure, Google Cloud)
  • แดชบอร์ดการวิเคราะห์และการตรวจสอบในตัว
  • ความสามารถในการโคลนและทดสอบฐานข้อมูล
  • การป้องกัน Ransomware ด้วยสแน็ปช็อตที่ไม่เปลี่ยนแปลง

8.6 Red Gate SQL Backup Pro

Red Gate SQL Backup Pro เป็นเครื่องมือเฉพาะที่มุ่งเน้นการเพิ่มประสิทธิภาพโดยเฉพาะ SQL Server การสำรองข้อมูลและเรียกคืนข้อมูลด้วยการบีบอัดและประสิทธิภาพที่เหนือกว่า

คุณสมบัติเด่น:

  • อัตราส่วนการบีบอัดชั้นนำของอุตสาหกรรม (สูงถึง 95%)
  • ความยืดหยุ่นของเครือข่ายสำหรับการสำรองข้อมูล SQL Server ข้ามการเชื่อมต่อที่ไม่น่าเชื่อถือ
  • การเข้ารหัสการสำรองข้อมูลด้วย AES 256 บิต
  • การตรวจสอบสำเนาสำรองและการตรวจสอบความสมบูรณ์
  • ประวัติการสำรองข้อมูลและการรายงานโดยละเอียด
  • บูรณาการกับ SQL Server สตูดิโอการจัดการ
  • รองรับการสำรองข้อมูลไปยังตำแหน่งเครือข่ายและที่เก็บข้อมูลบนคลาวด์
  • การสำรองข้อมูลและกู้คืนแบบขนานเพื่อการทำงานที่รวดเร็วยิ่งขึ้น

9. วิธีการคืนค่า SQL Server ฐานข้อมูล

9.1 การทำความเข้าใจกระบวนการคืนค่า

การกู้คืน SQL Server ฐานข้อมูลจะสร้างฐานข้อมูลใหม่จากไฟล์สำรองข้อมูล กระบวนการกู้คืนจะอ่านไฟล์สำรองข้อมูลและสร้างฐานข้อมูลใหม่ให้อยู่ในสถานะสำรองข้อมูล

ข้อควรพิจารณาที่สำคัญ:

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

9.2 การคืนค่าการสำรองข้อมูลแบบเต็มโดยใช้ SSMS

ปฏิบัติตามขั้นตอนเหล่านี้เพื่อคืนค่าการสำรองฐานข้อมูลทั้งหมด

9.2.1 กระบวนการคืนค่าทีละขั้นตอน

  1. จุดเปิด SQL Server สตูดิโอการจัดการ และเชื่อมต่อกับเซิร์ฟเวอร์ของคุณ
  2. In นักสำรวจวัตถุ, คลิกขวา ฐานข้อมูล
  3. เลือก กู้คืนฐานข้อมูล
  4. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร แหล่ง เลือก อุปกรณ์
  5. คลิก ... ปุ่มสำหรับเรียกดูไฟล์สำรองข้อมูล
  6. คลิก เพิ่ม และนำทางไปยังไฟล์ .bak ของคุณ
  7. เลือกไฟล์สำรองข้อมูลและคลิก OK
  8. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ปลายทาง ส่วนกรอกชื่อฐานข้อมูล
  9. ตรวจสอบชุดข้อมูลสำรองที่จะคืนค่า
  10. คลิก OK ถึง starการคืนค่า

9.2.2 ตัวเลือกการคืนค่าและการตั้งค่า

คลิก ตัวเลือก ในแผงด้านซ้ายเพื่อกำหนดค่า:

  • เขียนทับฐานข้อมูลที่มีอยู่ (ด้วย REPLACE) – อนุญาตให้คืนค่าทับฐานข้อมูลที่มีอยู่
  • รักษาสถานะการจำลอง (WITH KEEP_REPLICATION) - ดูแล SQL Server การทำซ้ำ รัฐ
  • จำกัดการเข้าถึงฐานข้อมูลที่คืนค่า (WITH RESTRICTED_USER) – ขีดจำกัด post-คืนการเข้าถึง
  • สถานะการฟื้นตัว – เลือกระหว่าง RESTORE WITH RECOVERY หรือ NORECOVERY

9.3 การคืนค่าการสำรองข้อมูลที่แตกต่างกัน

การคืนค่าแบบต่างกันต้องใช้การสำรองข้อมูลทั้งแบบเต็มและแบบต่างกัน:

  1. ขั้นแรกให้คืนค่าการสำรองข้อมูลทั้งหมดด้วย โนรีโคเวรี่ ตัวเลือก
  2. จากนั้นคืนค่าการสำรองข้อมูลที่แตกต่างกันด้วย กู้คืน ตัวเลือก

ตัวอย่าง T-SQL:

-- Restore full backup (NORECOVERY to allow differential)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

-- Restore differential backup (RECOVERY to complete)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH RECOVERY;
GO

9.4 การคืนค่าด้วยการสำรองข้อมูลบันทึกธุรกรรม

สำหรับการกู้คืน ณ จุดเวลา ให้คืนค่าตามลำดับดังนี้:

  1. คืนค่าการสำรองข้อมูลเต็มรูปแบบด้วย NORECOVERY
  2. คืนค่าการสำรองข้อมูลที่แตกต่างกันด้วย NORECOVERY (ถ้ามี)
  3. คืนค่าการสำรองข้อมูลบันทึกธุรกรรมตามลำดับด้วย NORECOVERY
  4. คืนค่าการสำรองข้อมูลบันทึกสุดท้ายด้วย RECOVERY
-- Restore full backup
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

-- Restore first log backup
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;

-- Restore second log backup with recovery
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log2.trn'
WITH RECOVERY;
GO

9.5 การคืนค่าจุดในเวลา

คืนค่าฐานข้อมูลไปยังจุดเวลาที่ระบุโดยใช้ตัวเลือก STOPAT:

-- Restore to specific time: January 15, 2025 at 2:30 PM
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH RECOVERY, STOPAT = '2025-01-15 14:30:00';
GO

9.6 การกู้คืนตาราง

SQL Server ไม่รองรับการกู้คืนระดับตารางโดยตรงจากไฟล์สำรอง อย่างไรก็ตาม ยังมีวิธีแก้ไขอยู่บ้าง

9.6.1 วิธีที่ 1: การสร้างสแนปช็อตของฐานข้อมูล (เหมาะสำหรับการป้องกัน)

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

การสร้างสแนปช็อตของฐานข้อมูล:

-- Create snapshot before making changes
CREATE DATABASE ProductionDB_Snapshot_20250107
ON
( NAME = ProductionDB_Data, 
  FILENAME = 'C:\Snapshots\ProductionDB_Snapshot.ss' )
AS SNAPSHOT OF ProductionDB;
GO

การกู้คืนข้อมูลตารางจากสแนปช็อต:

USE ProductionDB;
GO

-- Replace entire table content
BEGIN TRANSACTION;

-- Disable constraints temporarily
ALTER TABLE dbo.Orders NOCHECK CONSTRAINT ALL;

-- Clear current data
TRUNCATE TABLE dbo.Orders;

-- Restore from snapshot
INSERT INTO dbo.Orders
SELECT * FROM ProductionDB_Snapshot_20250107.dbo.Orders;

-- Re-enable constraints
ALTER TABLE dbo.Orders CHECK CONSTRAINT ALL;

COMMIT TRANSACTION;
GO

ข้อกำหนดเวอร์ชัน: สามารถดูภาพรวมฐานข้อมูลได้ใน SQL Server รุ่น Enterprise Edition (ทุกเวอร์ชัน) และรุ่น Standard Editiontarอยู่กับ SQL Server 2016 เอสพี1.

9.6.2 วิธีที่ 2: ปรับจังหวะให้กลับมาเป็นปกติrarฐานข้อมูล y (Most ทั่วไป)

วิธีนี้ใช้ได้ผลเมื่อคุณต้องการกู้คืนข้อมูลตารางหลังจากเกิดปัญหา และไม่มีสแนปช็อตอยู่:

  1. กู้คืนข้อมูลสำรองตามจังหวะrarฐานข้อมูล y
  2. คัดลอกข้อมูลตารางจากจังหวะrarฐานข้อมูล y ไปยังฐานข้อมูลปัจจุบัน

9.7 การกู้คืนหน้า

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

ในการกู้คืนหน้าข้อมูล ขั้นแรกให้ระบุหน้าข้อมูลที่เสียหาย ทำการสำรองข้อมูล tail-log จากนั้นกู้คืนหน้าข้อมูลที่ต้องการ แล้วจึงใช้ transaction log ทั้งหมด:

-- Identify damaged pages
SELECT * FROM msdb.dbo.suspect_pages
WHERE database_id = DB_ID('AdventureWorks');

-- Take tail-log backup
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH NORECOVERY;

-- Restore damaged pages
RESTORE DATABASE AdventureWorks
PAGE = '1:123, 1:456'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;

-- Apply transaction logs
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH RECOVERY;
GO

หมายเหตุ: การกู้คืนหน้าไม่สามารถใช้งานได้ในโหมดการกู้คืนแบบง่าย คุณไม่สามารถกู้คืนหน้าจากตารางระบบหรือเมตาเดตาของกลุ่มไฟล์หลักได้

9.8 การฟื้นฟูทีละส่วน

การกู้คืนแบบทีละส่วน (การกู้คืนบางส่วน) จะกู้คืนฐานข้อมูลทีละขั้นตอนในระดับกลุ่มไฟล์tarการกู้คืนข้อมูลโดยใช้ไฟล์กรุ๊ปหลัก จะทำให้ข้อมูลสำคัญกลับมาใช้งานได้ทันที ในขณะที่ข้อมูลที่มีความสำคัญน้อยกว่าจะถูกกู้คืนในพื้นหลัง ภายใต้โมเดลการกู้คืนแบบง่าย (Simple recovery model) ไฟล์กรุ๊ปที่อ่านและเขียนได้ทั้งหมดจะต้องถูกกู้คืนพร้อมกับไฟล์กรุ๊ปหลัก ส่วนไฟล์กรุ๊ปที่อ่านอย่างเดียวเท่านั้นที่สามารถกู้คืนแยกต่างหากได้ ภายใต้โมเดลการกู้คืนแบบเต็ม (Full recovery model) หรือแบบบันทึกธุรกรรมจำนวนมาก (Bulk-Logged recovery model) แต่ละไฟล์กรุ๊ปสามารถกลับมาใช้งานได้โดยอิสระหลังจากใช้บันทึกธุรกรรมแล้ว

แบบจำลองการกู้คืน การฟื้นฟูพฤติกรรมทีละเล็กทีละน้อย
ง่าย กู้คืนกลุ่มไฟล์หลักและกลุ่มไฟล์แบบอ่านเขียนทั้งหมดพร้อมกัน กู้คืนกลุ่มไฟล์แบบอ่านอย่างเดียวแยกต่างหาก
บันทึกแบบเต็ม/จำนวนมาก การกู้คืนแต่ละกลุ่มไฟล์จะดำเนินการอย่างอิสระในระดับกลุ่มไฟล์

ตัวอย่างสำหรับโมเดลการกู้คืนแบบเต็ม – กู้คืนไฟล์กรุ๊ปหลักก่อนเพื่อให้ฐานข้อมูลออนไลน์ จากนั้นกู้คืนไฟล์กรุ๊ปสำรองในขณะที่ฐานข้อมูลยังคงใช้งานได้:

-- Stage 1: Restore primary filegroup (database comes online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, NORECOVERY;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO

-- Stage 2: Restore secondary filegroup (database stays online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'HistoricalData'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO

ตัวอย่างสำหรับแบบจำลองการกู้คืนแบบง่าย:

-- Restore primary with all read-write filegroups
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, RECOVERY;

-- Restore read-only filegroup separately
RESTORE DATABASE AdventureWorks
FILEGROUP = 'ReadOnlyArchive'
FROM DISK = 'C:\Backups\AdventureWorks_ReadOnly.bak'
WITH RECOVERY;
GO

9.9 การคืนค่าโดยใช้คำสั่ง T-SQL

สคริปต์การคืนค่าที่สมบูรณ์พร้อมการย้ายไฟล์:

RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'D:\Data\AdventureWorks.mdf',
     MOVE 'AdventureWorks_Log' TO 'E:\Logs\AdventureWorks.ldf',
     REPLACE,
     STATS = 10;
GO

9.10 การตรวจสอบความสมบูรณ์ของการสำรองข้อมูลก่อนการคืนค่า

ตรวจสอบความถูกต้องของการสำรองข้อมูลโดยไม่ต้องคืนค่า:

RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO

คำสั่งนี้จะตรวจสอบว่าชุดการสำรองข้อมูลเสร็จสมบูรณ์และสามารถอ่านได้โดยไม่ต้องคืนค่าฐานข้อมูลจริง

10. SQL Server แนวทางปฏิบัติที่ดีที่สุดในการสำรองข้อมูล

10.1 การพัฒนากลยุทธ์การสำรองข้อมูล

10.1.1 การประเมินความต้องการทางธุรกิจ

ก่อนที่จะทำการสำรองข้อมูล ควรประเมินสิ่งต่อไปนี้:

  • ความสำคัญของข้อมูล: ข้อมูลนี้มีความสำคัญต่อการดำเนินงานมากเพียงใด?
  • ความถี่ในการเปลี่ยนแปลง: ข้อมูลมีการเปลี่ยนแปลงบ่อยเพียงใด?
  • ขนาดฐานข้อมูล: ฐานข้อมูลมีขนาดใหญ่แค่ไหน?
  • ทรัพยากรที่มีอยู่: มีพื้นที่เก็บข้อมูลและแบนด์วิดท์ที่พร้อมใช้งานอะไรบ้าง?
  • ความต้องการการปฏิบัติตาม: คุณจะต้องปฏิบัติตามกฎเกณฑ์อะไรบ้าง?

10.1.2 การกำหนด RTO และ RPO

วัตถุประสงค์เวลาการกู้คืน (RTO): ระยะเวลาหยุดทำงานสูงสุดที่ยอมรับได้ กำหนดว่าคุณต้องกู้คืนการดำเนินงานได้เร็วเพียงใด

จุดเป้าหมายการกู้คืน (RPO): การสูญเสียข้อมูลสูงสุดที่ยอมรับได้ กำหนดความถี่ในการสำรองข้อมูล

ข้อกำหนด RTO/RPO กลยุทธ์การสำรองข้อมูลที่แนะนำ
RPO: ชั่วโมง, RTO: ชั่วโมง บันทึกรายการเต็มรายวัน + บันทึกรายการทุก 1-2 ชั่วโมง
RPO: นาที, RTO: ชั่วโมง สำรองข้อมูลเต็ม + บันทึกทุกวันทุกๆ 15-30 นาที
RPO: ใกล้ศูนย์, RTO: นาที เสมอในกลุ่มความพร้อมใช้งาน + สำรองข้อมูลบันทึกเป็นประจำ
RPO: วัน, RTO: วัน เต็มรายสัปดาห์ + ส่วนต่างรายวัน

10.2 การสร้างกำหนดการสำรองข้อมูล

10.2.1 คำแนะนำเกี่ยวกับความถี่

กำหนดการสำรองข้อมูลทั่วไปสำหรับฐานข้อมูลการผลิต:

  • การสำรองข้อมูลเต็มรูปแบบ: รายสัปดาห์ (คืนวันอาทิตย์ในช่วงที่มีกิจกรรมน้อย)
  • การสำรองข้อมูลแบบต่างกัน: ทุกวัน (ทุกคืน)
  • การสำรองข้อมูลบันทึกธุรกรรม: ทุก 15-30 นาที ในช่วงเวลาทำการ
  • การสำรองข้อมูลแบบคัดลอกเท่านั้น: ตามความจำเป็นสำหรับการทดสอบหรือการพัฒนา

10.2.2 การสร้างสมดุลระหว่างประสิทธิภาพและการป้องกัน

พิจารณาปัจจัยเหล่านี้เมื่อกำหนดตารางเวลา:

  • ชั่วโมงนอกช่วงเร่งด่วน: เรียกใช้การสำรองข้อมูลเต็มรูปแบบในช่วงที่มีกิจกรรมน้อย
  • ผลกระทบต่อทรัพยากร: การบีบอัดจะลด I/O แต่จะเพิ่มการใช้งาน CPU
  • แบนด์วิดท์เครือข่าย: กำหนดเวลาสำรองข้อมูลเครือข่ายเมื่อปริมาณการรับส่งข้อมูลต่ำ
  • หน้าต่างสำรองข้อมูล: ตรวจสอบให้แน่ใจว่าการสำรองข้อมูลเสร็จสิ้นก่อนเวลาทำการ

10.3 แนวทางปฏิบัติที่ดีที่สุดในการจัดเก็บข้อมูลสำรอง

10.3.1 การจัดเก็บข้อมูลในสถานที่เทียบกับนอกสถานที่

การสำรองข้อมูลภายในสถานที่:

  • เวลาในการสำรองและกู้คืนข้อมูลเร็วขึ้น
  • ซีตัวล่างost สำหรับการเข้าถึงความถี่สูง
  • เสี่ยงต่อภัยพิบัติในพื้นที่
  • ดีที่สุดสำหรับสถานการณ์การฟื้นตัวอย่างรวดเร็ว

การสำรองข้อมูลนอกสถานที่:

  • การป้องกันภัยพิบัติเฉพาะพื้นที่
  • การปฏิบัติตามข้อกำหนดความซ้ำซ้อนทางภูมิศาสตร์
  • เวลาในการคืนค่าช้าลง
  • สิ่งสำคัญสำหรับการฟื้นฟูหลังภัยพิบัติ

10.3.2 ตัวเลือกการสำรองข้อมูลบนคลาวด์

ข้อดีของการจัดเก็บข้อมูลบนคลาวด์:

  • พื้นที่เก็บข้อมูล Azure Blob: พื้นเมือง SQL Server การอินทิเกรต, ซีost-มีประสิทธิภาพสำหรับการเข้าถึงไม่บ่อยครั้ง
  • อเมซอน S3: ชั้นเก็บของที่มีความยืดหยุ่นและทนทานสูง
  • ที่เก็บข้อมูลคลาวด์ของ Google: ราคาที่แข่งขันได้ มีจำหน่ายทั่วโลก

10.3.3 นโยบายการเก็บรักษาข้อมูลสำรอง

ตัวอย่างนโยบายการเก็บรักษา:

  • สำรองข้อมูลรายวันเป็นเวลา 7 วัน
  • สำรองข้อมูลรายสัปดาห์เป็นเวลา 4 สัปดาห์
  • สำรองข้อมูลรายเดือนเป็นเวลา 12 เดือน
  • สำรองข้อมูลรายปีเป็นเวลา 7 ปี (เป็นไปตามข้อกำหนด)

10.4 การบีบอัดข้อมูลสำรองและการเข้ารหัส

ประโยชน์ของการบีบอัด:

  • ลดขนาดไฟล์สำรองข้อมูลลง 50-70%
  • ลดเวลาการสำรองข้อมูล
  • ลดพื้นที่จัดเก็บosts
  • ลดแบนด์วิดท์เครือข่ายสำหรับการสำรองข้อมูลระยะไกล

แนวทางปฏิบัติที่ดีที่สุดในการเข้ารหัส:

  • เข้ารหัสการสำรองข้อมูลที่มีข้อมูลละเอียดอ่อนเสมอ
  • ใช้การเข้ารหัส AES 256 บิต
  • การจัดการใบรับรองหรือคีย์ที่ปลอดภัย
  • คีย์การเข้ารหัสเอกสารและจัดเก็บแยกกัน

10.5 การทดสอบและการยืนยันการสำรองข้อมูล

10.5.1 การทดสอบการคืนค่าปกติ

ทดสอบขั้นตอนการกู้คืนรายไตรมาสหรือรายเดือน:

  1. คืนค่าการสำรองข้อมูลไปยังสภาพแวดล้อมการทดสอบ
  2. ตรวจสอบความสมบูรณ์และความสมบูรณ์ของข้อมูล
  3. ตรวจสอบการทำงานของแอปพลิเคชัน
  4. เวลาการกู้คืนเอกสาร (ตรวจสอบ RTO)
  5. ระบุและแก้ไขปัญหาใดๆ

10.5.2 การใช้ RESTORE VERIFYONLY

การตรวจสอบการสำรองข้อมูลอัตโนมัติ:

-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

ดำเนินการตรวจสอบทันทีหลังจากการสำรองข้อมูลเสร็จสิ้นหรือเป็นส่วนหนึ่งของการบำรุงรักษาตามกำหนดเวลา

10.6 การสำรองข้อมูลอัตโนมัติและการตรวจสอบ

10.6.1 SQL Server งานตัวแทน

สร้างงานสำรองข้อมูลอัตโนมัติ:

  1. แสดง SQL Server ตัวแทนลิ้งค์ภายนอก ใน SSMS
  2. คลิกขวาที่ งาน และเลือก งานใหม่
  3. ตั้งชื่องาน (เช่น “สำรองข้อมูลเต็มรายวัน”)
  4. เพิ่ม ขั้นตอน ด้วยคำสั่งสำรองข้อมูล T-SQL
  5. สร้าง ตารางเวลา สำหรับระยะเวลาการดำเนินการ
  6. กำหนดค่า การแจ้งเตือน เพื่อความสำเร็จ/ความล้มเหลว

10.6.2 แผนการบำรุงรักษา

SQL Server แผนการบำรุงรักษาจัดให้มีอินเทอร์เฟซทางภาพสำหรับการสำรองข้อมูลอัตโนมัติ:

  1. นำทางไปยัง การจัดการ -> แผนการบำรุงรักษา
  2. คลิกขวาและเลือก ตัวช่วยสร้างแผนการบำรุงรักษา
  3. เลือกงานสำรองข้อมูลที่จะทำการอัตโนมัติ
  4. กำหนดค่ากำหนดการสำรองข้อมูลและตัวเลือก
  5. ตั้งค่าการรายงานและการบันทึก

10.6.3 การแจ้งเตือนและการแจ้งเตือนการสำรองข้อมูล

กำหนดค่าการแจ้งเตือนอีเมล์:

  • ตั้งค่าฐานข้อมูลเมลใน SQL Server
  • สร้างการแจ้งเตือนสำหรับความล้มเหลวในการสำรองข้อมูล
  • ตรวจสอบประวัติงานสำรองข้อมูล
  • ส่งรายงานสรุปไปยังผู้ดูแลระบบ

10.7 การจัดทำเอกสารและการวางแผนการกู้คืนจากภัยพิบัติ

ดูแลรักษาเอกสารที่ครอบคลุม:

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

11. ขั้นสูง SQL Server สถานการณ์การสำรองข้อมูล

11.1 การสำรองฐานข้อมูลขนาดใหญ่มาก (VLDB)

11.1.1 กลยุทธ์ไฟล์และกลุ่มไฟล์

สำหรับฐานข้อมูลเกินหลายร้อยกิกะไบต์:

  • แยกข้อมูลแบบอ่านอย่างเดียวและแบบอ่าน-เขียนเป็นกลุ่มไฟล์ที่แตกต่างกัน
  • สำรองไฟล์กลุ่มแบบอ่านอย่างเดียวไม่บ่อยนัก
  • มุ่งเน้นการสำรองข้อมูลบ่อยครั้งบนกลุ่มไฟล์ที่ใช้งานอยู่
  • ใช้การสำรองข้อมูลระดับไฟล์เพื่อการควบคุมแบบละเอียด

ตัวอย่างการสำรองไฟล์:

-- Back up specific file
BACKUP DATABASE LargeDB 
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO

11.1.2 การเพิ่มประสิทธิภาพการสำรองข้อมูล

ปรับปรุงประสิทธิภาพการสำรองข้อมูล VLDB:

  • การสำรองข้อมูลแบบลายทาง: เขียนไปยังไฟล์หลายไฟล์พร้อมกัน
  • การบีบอัด: ลดความต้องการ I/O และการจัดเก็บ
  • อุปกรณ์สำรองข้อมูลหลายตัว: การดำเนินการสำรองข้อมูลแบบขนาน
  • การจัดเก็บที่รวดเร็ว: ใช้ SSD สำหรับการจัดเตรียมการสำรองข้อมูล
  • จำนวนบัฟเฟอร์: เพิ่มตัวเลือก BUFFERCOUNT
  • ขนาดการถ่ายโอนสูงสุด: เพิ่มประสิทธิภาพการตั้งค่า MAXTRANSFERSIZE
-- Optimized VLDB backup
BACKUP DATABASE LargeDB
TO DISK = 'C:\Backups\LargeDB_1.bak',
   DISK = 'D:\Backups\LargeDB_2.bak',
   DISK = 'E:\Backups\LargeDB_3.bak'
WITH COMPRESSION,
     BUFFERCOUNT = 100,
     MAXTRANSFERSIZE = 4194304;
GO

11.2 การสำรองข้อมูลในกลุ่มความพร้อมใช้งานแบบเปิดตลอดเวลา

กลุ่มความพร้อมใช้งานแบบเปิดตลอดเวลาจะกระจายภาระการสำรองข้อมูลระหว่างแบบจำลอง:

  • กำหนดค่าการตั้งค่าการสำรองข้อมูล (หลัก รอง หรือแบบจำลองใดๆ)
  • โอนข้อมูลสำรองไปยังแบบจำลองรองเพื่อลดภาระงานหลัก
  • ใช้การสำรองข้อมูล COPY_ONLY บนแบบจำลองรอง
  • ตรวจสอบการตั้งค่าลำดับความสำคัญของการสำรองข้อมูล
-- Check backup preferences
SELECT 
    ag.name AS AvailabilityGroup,
    ar.replica_server_name,
    ar.backup_priority
FROM sys.availability_replicas ar
INNER JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
GO

11.3 การสำรองข้อมูลสำหรับการมิเรอร์ฐานข้อมูล

ในสถานการณ์การมิเรอร์ฐานข้อมูล:

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

11.4 การสำรองข้อมูลไปยังที่เก็บข้อมูล Azure Blob

SQL Server สามารถสำรองข้อมูลโดยตรงไปยัง Azure Blob Storage ได้:

  1. สร้างบัญชี Azure Storage
  2. สร้างบัญชีตัวแทน SQL Server ข้อมูลประจำตัวสำหรับการตรวจสอบสิทธิ์ Azure
  3. ใช้รูปแบบ URL สำหรับปลายทางการสำรองข้อมูล
-- Create credential for Azure
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'your_SAS_token';
GO

-- Backup to Azure
BACKUP DATABASE AdventureWorks
TO URL = 'https://mystorageaccount.blob.core.windows.net/backups/AdventureWorks.bak'
WITH COMPRESSION,
     STATS = 10;
GO

11.5 การสำรองข้อมูลไปยัง URL

ประโยชน์ของการสำรองข้อมูลไปยัง URL:

  • ความจุการจัดเก็บข้อมูลบนคลาวด์ไม่จำกัด
  • จัดการความซ้ำซ้อนทางภูมิศาสตร์โดยอัตโนมัติ
  • รูปแบบการกำหนดราคาแบบจ่ายตามการใช้งาน
  • ไม่จำเป็นต้องมีพื้นที่ดิสก์ภายในเครื่อง
  • รองรับ URL สูงสุด 64 รายการต่อการสำรองข้อมูล (การแบ่งข้อมูล)

11.6 การสำรองข้อมูลแบบ Striped เพื่อประสิทธิภาพ

การสำรองข้อมูลแบบแยกส่วนจะแบ่งข้อมูลออกเป็นหลายไฟล์เพื่อให้ I/O เร็วขึ้น:

-- Striped backup to 4 files
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AW_Stripe1.bak',
   DISK = 'D:\Backups\AW_Stripe2.bak',
   DISK = 'E:\Backups\AW_Stripe3.bak',
   DISK = 'F:\Backups\AW_Stripe4.bak'
WITH COMPRESSION, FORMAT;
GO

หมายเหตุ: จำเป็นต้องใช้ไฟล์ Stripe ทั้งหมดสำหรับการกู้คืน หากไฟล์ใดหายไป การสำรองข้อมูลจะไม่สามารถใช้งานได้

12 การแก้ไขปัญหา SQL Server ปัญหาการสำรองข้อมูล

12.1 ข้อผิดพลาดและวิธีแก้ไขการสำรองข้อมูลทั่วไป

ข้อผิดพลาด: “ข้อผิดพลาดระบบปฏิบัติการ 5: การเข้าถึงถูกปฏิเสธ”

  • สาเหตุ: SQL Server บัญชีบริการขาดการอนุญาต
  • วิธีการแก้: อนุญาติให้เขียนสิทธิ์ SQL Server บัญชีบริการในโฟลเดอร์สำรองข้อมูล

ข้อผิดพลาด: “ไม่สามารถเปิดอุปกรณ์สำรองข้อมูลได้… ข้อผิดพลาดของอุปกรณ์หรืออุปกรณ์ออฟไลน์”

  • สาเหตุ: เส้นทางไม่ถูกต้องหรือการแชร์เครือข่ายที่ไม่พร้อมใช้งาน
  • วิธีการแก้: ตรวจสอบว่าเส้นทางมีอยู่ ตรวจสอบการเชื่อมต่อเครือข่าย และตรวจสอบให้แน่ใจว่ามีพื้นที่ดิสก์เพียงพอ

ข้อผิดพลาด: “พื้นที่บนดิสก์ไม่เพียงพอ”

  • สาเหตุ: พื้นที่ดิสก์ไม่เพียงพอสำหรับการสำรองข้อมูล
  • วิธีการแก้: เพิ่มพื้นที่ว่างในดิสก์ ใช้การบีบอัด สำรองข้อมูลไปยังตำแหน่งอื่น

ข้อผิดพลาด: “ฐานข้อมูลกำลังใช้งานอยู่ ฐานข้อมูลกำลังถูกใช้งานโดยผู้ใช้รายอื่น”

  • สาเหตุ: การเชื่อมต่อที่ใช้งานอยู่ระหว่างการคืนค่า
  • วิธีการแก้: ใช้ตัวเลือก WITH REPLACE หรือตัดการเชื่อมต่อผู้ใช้ก่อน

12.2 ปัญหาประสิทธิภาพการสำรองข้อมูล

วินิจฉัยการสำรองข้อมูลช้า:

  • ตรวจสอบประสิทธิภาพ I/O ของดิสก์โดยใช้ การตรวจสอบประสิทธิภาพ
  • ติดตามความคืบหน้าการสำรองข้อมูลด้วยตัวเลือก STATS
  • รีวิว SQL Server บันทึกข้อผิดพลาดสำหรับคอขวด
  • พิจารณาการบีบอัดเพื่อลด I/O
  • ใช้การสำรองข้อมูลแบบสไตรป์บนดิสก์หลายตัว

สอบถามข้อมูลเพื่อติดตามความคืบหน้าการสำรองข้อมูล:

SELECT 
    session_id,
    command,
    percent_complete,
    CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
    + CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
    + CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
    CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
    + CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
    + CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
    dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests 
WHERE command LIKE 'BACKUP%';
GO

12.3 ปัญหาพื้นที่และการจัดเก็บ

ป้องกันปัญหาการจัดเก็บข้อมูล:

  • ดำเนินการตามนโยบายการเก็บรักษาข้อมูล: ลบข้อมูลสำรองเก่าโดยอัตโนมัติ
  • ใช้การบีบอัด: ลดขนาดไฟล์สำรองข้อมูลลง 50-70%
  • เก็บถาวรเพื่อจัดเก็บในราคาที่ถูกกว่า: ย้ายข้อมูลสำรองเก่าไปยังที่เก็บข้อมูลถาวร
  • พื้นที่ดิสก์มอนิเตอร์: ตั้งค่าการแจ้งเตือนเมื่อพื้นที่ดิสก์เหลือน้อย
  • ประมาณขนาดการสำรองข้อมูล: คำนวณขนาดที่คาดหวังก่อนการสำรองข้อมูล

ประมาณขนาดการสำรองข้อมูล:

-- Estimate full backup size
EXEC sp_spaceused;
GO

12.4 ปัญหาการอนุญาตและการเข้าถึง

การอนุญาตที่จำเป็นสำหรับการสำรองข้อมูล:

  • ฐานข้อมูลสำรอง การอนุญาต
  • db_backupoperator การเป็นสมาชิกบทบาท
  • ดูแลระบบ บทบาทของเซิร์ฟเวอร์ (สำหรับการดำเนินการสำรองข้อมูลทั้งหมด)

ให้สิทธิ์การสำรองข้อมูล:

-- Grant backup permission to user
GRANT BACKUP DATABASE TO [BackupUser];
GRANT BACKUP LOG TO [BackupUser];
GO

-- Add user to backup operator role
ALTER ROLE db_backupoperator ADD MEMBER [BackupUser];
GO

12.5 ไฟล์สำรองข้อมูลเสียหาย

ตรวจจับและจัดการการสำรองข้อมูลที่เสียหาย:

ตรวจสอบความสมบูรณ์ของการสำรองข้อมูล:

RESTORE VERIFYONLY 
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

เปิดใช้งาน CHECKSUM สำหรับการสำรองข้อมูลในอนาคต:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO

กลยุทธ์การป้องกัน:

  • ใช้ตัวเลือก CHECKSUM เสมอในระหว่างการสำรองข้อมูล
  • ตรวจสอบการสำรองข้อมูลทันทีหลังจากการสร้าง
  • ทดสอบการคืนค่าเป็นประจำ
  • สำรองข้อมูลไว้บนระบบจัดเก็บข้อมูลที่เชื่อถือได้
  • รักษาสำเนาสำรองไว้หลายชุด

12.6 กู้คืนข้อมูลจากไฟล์สำรองข้อมูลที่เสียหาย

หากไฟล์สำรองของคุณเสียหายและคุณยังต้องการกู้คืนข้อมูลจากไฟล์เหล่านั้น คุณสามารถใช้เครื่องมือของบริษัทอื่น เช่น DataNumen SQL Recovery, ดังต่อไปนี้:

  1. Start DataNumen SQL Recovery.
  2. เลือกไฟล์สำรองที่เสียหายเป็นไฟล์ต้นฉบับโดยเปลี่ยนตัวกรองเป็น “ไฟล์ทั้งหมด (*.*)”
    เลือกไฟล์สำรองที่เสียหาย (*.bak) เป็นไฟล์ต้นฉบับที่จะกู้คืน
  3. ตั้งค่าไฟล์เอาท์พุตเป็น .MDF หากจำเป็น
  4. คลิก“ Star“การกู้คืน” และปฏิบัติตามคำแนะนำเพื่อกู้คืนฐานข้อมูล
  5. หลังจากกระบวนการกู้คืนฐานข้อมูลการกู้คืนใหม่จะปรากฏขึ้นใน SQL Server ซึ่งมีข้อมูลที่กู้คืนมาทั้งหมด

ใช้ DataNumen SQL Recovery เพื่อกู้ข้อมูลจากความเสียหาย SQL Server ไฟล์สำรอง (*.bak)

13. SQL Server ความปลอดภัยในการสำรองข้อมูล

13.1 การรักษาความปลอดภัยไฟล์สำรองข้อมูล

ป้องกันไฟล์สำรองข้อมูลจากการเข้าถึงโดยไม่ได้รับอนุญาต:

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

13.2 ตัวเลือกการเข้ารหัส

SQL Server รองรับการเข้ารหัสการสำรองข้อมูลแบบโปร่งใส:

สร้างใบรับรองสำหรับการเข้ารหัส:

-- Create master key
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongP@ssw0rd!';
GO

-- Create certificate
CREATE CERTIFICATE BackupCertificate
WITH SUBJECT = 'Database Backup Certificate',
EXPIRY_DATE = '2026-12-31';
GO

การสำรองข้อมูลแบบเข้ารหัส:

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
     ENCRYPTION (
         ALGORITHM = AES_256,
         SERVER CERTIFICATE = BackupCertificate
     );
GO

สำคัญ: สำรองข้อมูลใบรับรองและคีย์ส่วนตัวแยกกัน หากไม่มีข้อมูลเหล่านี้ จะไม่สามารถกู้คืนข้อมูลสำรองที่เข้ารหัสได้

-- Backup certificate
BACKUP CERTIFICATE BackupCertificate
TO FILE = 'C:\Certificates\BackupCertificate.cer'
WITH PRIVATE KEY (
    FILE = 'C:\Certificates\BackupCertificate.key',
    ENCRYPTION BY PASSWORD = 'C3rt!f!c@t3P@ss'
);
GO

13.3 การควบคุมการเข้าถึงและการอนุญาต

ปฏิบัติตามหลักการสิทธิ์ขั้นต่ำ:

  • ให้สิทธิ์การสำรองข้อมูลเฉพาะบัญชีที่จำเป็นเท่านั้น
  • ใช้บัญชีแยกต่างหากสำหรับการสำรองข้อมูลและการกู้คืน
  • หลีกเลี่ยงการใช้บัญชี SA สำหรับการสำรองข้อมูล
  • ตรวจสอบสิทธิ์การสำรองข้อมูลเป็นประจำ
  • ลบสิทธิ์เมื่อไม่จำเป็นอีกต่อไป

13.4 ข้อพิจารณาการปฏิบัติตามข้อกำหนด

ที่อยู่ตามข้อกำหนดด้านกฎระเบียบ:

  • GDPR: เข้ารหัสการสำรองข้อมูลที่มีข้อมูลส่วนบุคคล ปฏิบัติตามนโยบายการเก็บรักษาข้อมูล
  • ฮิปาเอ: เข้ารหัส PHI ในการสำรองข้อมูล ควบคุมการเข้าถึง รักษาบันทึกการตรวจสอบ
  • PCIDSS: เข้ารหัสข้อมูลสำรองของผู้ถือบัตร จัดเก็บข้อมูลสำรองที่ปลอดภัย
  • ซ็อกซ์: รักษาความสมบูรณ์ของการสำรองข้อมูล นโยบายการเก็บรักษาเอกสาร

14. การติดตามและบำรุงรักษาการดำเนินการสำรองข้อมูล

14.1 การติดตามประวัติการสำรองข้อมูล

SQL Server เก็บประวัติการสำรองข้อมูลไว้ในฐานข้อมูล msdb:

-- View recent backup history
SELECT 
    bks.database_name,
    bks.backup_start_date,
    bks.backup_finish_date,
    CASE bks.type
        WHEN 'D' THEN 'Full'
        WHEN 'I' THEN 'Differential'
        WHEN 'L' THEN 'Log'
        ELSE 'Other'
    END AS backup_type,
    bks.backup_size / 1024 / 1024 AS backup_size_mb,
    bkmf.physical_device_name
FROM msdb.dbo.backupset bks
INNER JOIN msdb.dbo.backupmediafamily bkmf ON bks.media_set_id = bkmf.media_set_id
WHERE bks.backup_start_date >= DATEADD(DAY, -7, GETDATE())
ORDER BY bks.backup_start_date DESC;
GO

ค้นหาฐานข้อมูลที่ไม่มีการสำรองข้อมูลล่าสุด:

SELECT 
    d.name AS database_name,
    MAX(bs.backup_finish_date) AS last_backup_date,
    DATEDIFF(DAY, MAX(bs.backup_finish_date), GETDATE()) AS days_since_last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON d.name = bs.database_name
WHERE d.database_id > 4  -- Exclude system databases
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE())
    OR MAX(bs.backup_finish_date) IS NULL
ORDER BY last_backup_date;
GO

14.2 การใช้ SQL Server รายงาน

SQL Server Management Studio มีรายงานการสำรองข้อมูลในตัว:

  1. คลิกขวาที่ฐานข้อมูลใน Object Explorer
  2. เลือก รายงาน -> รายงานมาตรฐาน
  3. เลือกจากรายงานที่มีให้เลือก:
    • เหตุการณ์การสำรองและกู้คืน
    • การสำรองข้อมูลทั้งหมด
    • บันทึกธุรกรรมสถานะการจัดส่ง

14.3 เครื่องมือตรวจสอบบุคคลที่สาม

โซลูชันการตรวจสอบเชิงพาณิชย์:

  • SQL เซนทรี่: การตรวจสอบและแจ้งเตือนอย่างครอบคลุม
  • การตรวจสอบ SQL ของ Redgate: การตรวจสอบและวินิจฉัยแบบเรียลไทม์ostของวงจรรวม
  • เครื่องวิเคราะห์ประสิทธิภาพฐานข้อมูล SolarWinds: การตรวจสอบประสิทธิภาพและการสำรองข้อมูล
  • การวินิจฉัย SQL ของ Ideraostผู้จัดการ ic: การตรวจสอบและแจ้งเตือนการสำรองข้อมูล

14.4 การตรวจสอบสุขภาพการสำรองข้อมูล

สร้างขั้นตอนการตรวจสอบสุขภาพ:

-- Backup health check procedure
CREATE PROCEDURE sp_BackupHealthCheck
AS
BEGIN
    -- Check for databases without recent full backup
    SELECT 
        'Missing Recent Full Backup' AS issue,
        d.name AS database_name,
        ISNULL(CAST(MAX(bs.backup_finish_date) AS VARCHAR), 'Never') AS last_backup
    FROM sys.databases d
    LEFT JOIN msdb.dbo.backupset bs 
        ON d.name = bs.database_name AND bs.type = 'D'
    WHERE d.database_id > 4
    GROUP BY d.name
    HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE()) OR MAX(bs.backup_finish_date) IS NULL; -- Check for failed backup jobs SELECT 'Failed Backup Job' AS issue, j.name AS job_name, jh.run_date, jh.run_time, jh.message FROM msdb.dbo.sysjobs j INNER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id WHERE jh.run_status = 0 -- Failed AND jh.step_id = 0 AND jh.run_date >= CONVERT(INT, CONVERT(VARCHAR, GETDATE()-7, 112))
        AND j.name LIKE '%backup%';
END
GO

15. SQL Server คำถามที่พบบ่อยเกี่ยวกับการสำรองข้อมูล

15.1 ฉันควรสำรองข้อมูลบ่อยแค่ไหน SQL Server?

ความถี่ในการสำรองข้อมูลขึ้นอยู่กับจุดวัตถุประสงค์การกู้คืน (RPO) ของคุณ:

  • ฐานข้อมูลการผลิตที่สำคัญ: เต็มสัปดาห์ รายวันต่างกัน บันทึกทุก 15-30 นาที
  • ฐานข้อมูลการผลิตมาตรฐาน: เต็มสัปดาห์, รายวันต่างกัน, บันทึกทุก 1-2 ชั่วโมง
  • ฐานข้อมูลการพัฒนา: เต็มวันหรือรายสัปดาห์
  • ฐานข้อมูลแบบอ่านอย่างเดียว: เต็มหลังการเปลี่ยนแปลงข้อมูลแต่ละครั้ง

15.2 ความแตกต่างระหว่างการสำรองข้อมูลแบบเต็มและแบบต่างกันคืออะไร?

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

15.3 ฉันสามารถสำรองข้อมูลได้หรือไม่ SQL Server ขณะที่มันกำลังทำงานอยู่?

ใช่ SQL Server รองรับการสำรองข้อมูลออนไลน์ ผู้ใช้สามารถทำงานต่อได้ระหว่างการสำรองข้อมูล SQL Server ใช้บันทึกธุรกรรมเพื่อรักษาความสม่ำเสมอ เพื่อให้แน่ใจว่าการสำรองข้อมูลนั้นถูกต้องแม้จะมีการปรับเปลี่ยนพร้อมกัน

15.4 นานแค่ไหน SQL Server สำรองข้อมูลใช่ไหม?

ระยะเวลาการสำรองข้อมูลจะแตกต่างกันขึ้นอยู่กับ:

  • ขนาดฐานข้อมูล: ฐานข้อมูลขนาดใหญ่ใช้เวลานานกว่า
  • ประเภทการสำรองข้อมูล: การสำรองข้อมูลแบบเต็มใช้เวลานานที่สุด
  • การบีบอัด: สามารถเพิ่มเวลา CPU ได้แต่ลดระยะเวลาโดยรวมลง
  • ความเร็วในการเก็บข้อมูล: SSD เร็วกว่า HDD อย่างเห็นได้ชัด
  • โหลดเซิร์ฟเวอร์: กิจกรรมที่มากขึ้นทำให้การสำรองข้อมูลช้าลง

ช่วงทั่วไป: ฐานข้อมูลขนาด 10GB อาจใช้เวลา 5-15 นาทีในการสำรองข้อมูลเต็มรูปแบบด้วยการบีบอัดบนฮาร์ดแวร์สมัยใหม่

15.5 ฉันควรเก็บไว้ที่ไหน SQL Server สำรองข้อมูล?

แนวทางปฏิบัติที่ดีที่สุด: ปฏิบัติตามกฎ 3-2-1:

  • 3 สำเนาข้อมูลของคุณ
  • 2 ประเภทการจัดเก็บข้อมูลที่แตกต่างกัน (เช่น ดิสก์และเทป/คลาวด์)
  • 1 คัดลอกนอกสถานที่

สถานที่แนะนำ:

  • ดิสก์ภายในเครื่องเพื่อการกู้คืนอย่างรวดเร็ว
  • การจัดเก็บข้อมูลเครือข่ายสำหรับการจัดการแบบรวมศูนย์
  • การจัดเก็บข้อมูลบนคลาวด์ (Azure, AWS) สำหรับการกู้คืนระบบจากภัยพิบัติ

15.6 นามสกุลไฟล์ .bak คืออะไร?

นามสกุลไฟล์ .bak เป็นนามสกุลไฟล์เริ่มต้นสำหรับ SQL Server ไฟล์สำรอง มันเป็นธรรมเนียม ไม่ใช่ข้อกำหนด – SQL Server การสำรองข้อมูลสามารถใช้งานได้กับไฟล์นามสกุลใดก็ได้ อย่างไรก็ตาม การใช้ .bak ช่วยให้ระบุไฟล์สำรองข้อมูลได้ง่าย และถือเป็นมาตรฐานอุตสาหกรรม

15.7 วิธีการสำรองข้อมูล SQL Server ไปที่ Network Drive ใช่ไหม?

ในการสำรองข้อมูลไปยังไดรฟ์เครือข่าย:

  1. ทำให้มั่นใจ SQL Server บัญชีบริการมีสิทธิ์เขียนบนการแชร์เครือข่าย
  2. ใช้เส้นทาง UNC ในคำสั่งสำรองข้อมูล: \\ServerName\ShareName\BackupFile.bak
  3. ทดสอบการเชื่อมต่อก่อนกำหนดการสำรองข้อมูลอัตโนมัติ
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO

15.8 ฉันสามารถบีบอัดได้ไหม SQL Server สำรองข้อมูล?

ใช่ SQL Server รองรับการบีบอัดข้อมูลสำรองดั้งเดิม (Enterprise Edition หรือ Standard Edition)tarทิ้ง SQL Server 2016 SP1) การบีบอัดมักจะช่วยลดขนาดการสำรองข้อมูลลง 50-70% และมักจะลดเวลาการสำรองข้อมูลโดยการลด I/O แม้ว่าจะเพิ่มการใช้งาน CPU ก็ตาม

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO

16 ข้อสรุป

16.1 ประเด็นสำคัญ

มีประสิทธิภาพ SQL Server กลยุทธ์การสำรองข้อมูลจะช่วยปกป้องข้อมูลของคุณและสร้างความต่อเนื่องทางธุรกิจ โปรดจำประเด็นสำคัญเหล่านี้ไว้:

  • ทำความเข้าใจประเภทของการสำรองข้อมูล: เลือกประเภทการสำรองข้อมูลที่เหมาะสม (แบบเต็ม, ต่างกัน, บันทึกธุรกรรม) ตามความต้องการในการกู้คืนของคุณ
  • เลือกโมเดลการกู้คืนที่เหมาะสม: การกู้คืนข้อมูลที่สำคัญอย่างสมบูรณ์ ง่ายสำหรับฐานข้อมูลการพัฒนา
  • การดำเนินการกำหนดการสำรองข้อมูล: การสำรองข้อมูลเต็มรูปแบบปกติรวมกับการสำรองข้อมูลแบบแยกส่วนและแบบบันทึกช่วยลดการสูญเสียข้อมูล
  • ขั้นตอนการกู้คืนการทดสอบ: การสำรองข้อมูลจะมีค่าก็ต่อเมื่อสามารถกู้คืนได้สำเร็จ
  • อัตโนมัติและตรวจสอบ: ใช้ SQL Server ตัวแทน แผนการบำรุงรักษา และเครื่องมือตรวจสอบ
  • การสำรองข้อมูลที่ปลอดภัย: เข้ารหัสข้อมูลที่ละเอียดอ่อนและควบคุมการเข้าถึงไฟล์สำรอง
  • จัดเก็บสำเนาไว้นอกสถานที่: ป้องกันภัยพิบัติทั่วทั้งไซต์ด้วยระบบคลาวด์หรือระบบจัดเก็บข้อมูลระยะไกล
  • เอกสารทุกอย่าง: รักษาเอกสารที่ชัดเจนของขั้นตอนการสำรองข้อมูลและการกู้คืน

16.2 ขั้นตอนต่อไปและทรัพยากร

เพื่อปรับปรุงของคุณ SQL Server การดำเนินการสำรองข้อมูล:

  • ประเมินกลยุทธ์การสำรองข้อมูลปัจจุบันของคุณเทียบกับแนวทางปฏิบัติที่ดีที่สุด
  • คำนวณข้อกำหนด RTO และ RPO ของคุณ
  • ทดสอบขั้นตอนการกู้คืนบนระบบที่ไม่ใช่ระบบการผลิต
  • ตรวจสอบและอัปเดตกำหนดการสำรองข้อมูลเป็นประจำ
  • ดำเนินการตรวจสอบและแจ้งเตือนอัตโนมัติ
  • ฝึกอบรมสมาชิกทีมเกี่ยวกับขั้นตอนการกู้คืน

แหล่งข้อมูลเพิ่มเติม:

  • ไมโครซอฟท์ SQL Server เอกสารประกอบ: คำแนะนำการสำรองและกู้คืนอย่างเป็นทางการ
  • SQL Server ฟอรัมชุมชนการสำรองข้อมูล: แบ่งปันประสบการณ์และวิธีแก้ปัญหา
  • การรับรองระดับมืออาชีพ: ได้รับการรับรองจาก Microsoft: ผู้ช่วยผู้ดูแลระบบฐานข้อมูล Azure

16.3 เครื่องมือและโซลูชันที่แนะนำ

ขึ้นอยู่กับสถานการณ์ที่แตกต่างกัน:

ธุรกิจขนาดเล็ก:

  • พื้นเมือง SQL Server สำรองข้อมูลพร้อมกำหนดเวลา SQL Server งานตัวแทน
  • SQLBackupAndFTP สำหรับการรวมระบบคลาวด์
  • การสำรองข้อมูล Azure สำหรับ SQL Server

วิสาหกิจขนาดกลาง:

  • SQL Server แผนการบำรุงรักษา
  • เครื่องมือของบุคคลที่สามเช่น Redgate SQL Backup Pro
  • การสำรองข้อมูล Veeam สำหรับ SQL Server

วิสาหกิจขนาดใหญ่:

  • Quest LiteSpeed ​​เพื่อการบีบอัดสูงสุด
  • Commvault หรือ Veritas NetBackup สำหรับการจัดการการสำรองข้อมูลขององค์กร
  • กลุ่มความพร้อมใช้งานแบบเปิดตลอดเวลาสำหรับ พร้อมใช้งานสูง

SQL Server การสำรองข้อมูลถือเป็นพื้นฐานสำคัญของการบริหารฐานข้อมูล ด้วยการวางแผน การใช้งาน และการทดสอบที่เหมาะสม คุณสามารถมั่นใจได้ว่าข้อมูลของคุณจะได้รับการปกป้องและสามารถกู้คืนได้เมื่อจำเป็นtarการนำแนวทางปฏิบัติที่ดีที่สุดเหล่านี้มาใช้ในปัจจุบันเพื่อรักษาความปลอดภัยของคุณ SQL Server ฐานข้อมูล


เกี่ยวกับผู้เขียน

หยวน เซิง เป็นผู้ดูแลฐานข้อมูลอาวุโส (DBA) ที่มีประสบการณ์มากกว่า 10 ปีใน SQL Server สภาพแวดล้อมและการจัดการฐานข้อมูลองค์กร เขาประสบความสำเร็จในการแก้ไขปัญหาการกู้คืนฐานข้อมูลหลายร้อยกรณีในองค์กรด้านบริการทางการเงิน การดูแลสุขภาพ และการผลิต

หยวนมีความเชี่ยวชาญด้าน SQL Server การกู้คืนฐานข้อมูล โซลูชันความพร้อมใช้งานสูง และการเพิ่มประสิทธิภาพการทำงาน ประสบการณ์ภาคปฏิบัติอันกว้างขวางของเขาครอบคลุมการจัดการฐานข้อมูลหลายเทราไบต์ การนำ Always On Availability Groups มาใช้ และการพัฒนากลยุทธ์การสำรองและกู้คืนข้อมูลอัตโนมัติสำหรับระบบธุรกิจที่สำคัญต่อภารกิจ

ด้วยความเชี่ยวชาญทางเทคนิคและแนวทางปฏิบัติ Yuan มุ่งเน้นที่การสร้างคู่มือที่ครอบคลุมซึ่งจะช่วยให้ผู้ดูแลระบบฐานข้อมูลและผู้เชี่ยวชาญด้านไอทีแก้ไขปัญหาที่ซับซ้อน SQL Server ท้าทายอย่างมีประสิทธิภาพ เขาคอยติดตามข่าวสารล่าสุดอยู่เสมอ SQL Server การเปิดตัวและเทคโนโลยีฐานข้อมูลที่พัฒนาอย่างต่อเนื่องของ Microsoft ทดสอบสถานการณ์การกู้คืนเป็นประจำเพื่อให้แน่ใจว่าคำแนะนำของเขาสะท้อนถึงแนวทางปฏิบัติที่ดีที่สุดในโลกแห่งความเป็นจริง

มีคำถามเกี่ยวกับ SQL Server การกู้คืนหรือต้องการคำแนะนำในการแก้ไขปัญหาฐานข้อมูลเพิ่มเติมหรือไม่? หยวนยินดีต้อนรับ ข้อเสนอแนะและข้อเสนอแนะ เพื่อปรับปรุงทรัพยากรทางเทคนิคเหล่านี้

แบ่งปันเลย: