สำรอง 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 เสมอไป คุณไม่จำเป็นต้องมีการสำรองข้อมูลนี้หากจุดกู้คืนอยู่ในการสำรองข้อมูลแบบ 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 สตูดิโอการจัดการ
- ยิง SQL Server สตูดิโอการจัดการ
- กรอกชื่อเซิร์ฟเวอร์ของคุณใน ชื่อเซิร์ฟเวอร์ สนาม
- เลือกวิธีการยืนยันตัวตนของคุณ
- คลิก ติดตามเราได้ที่
4.2.2 การเลือกฐานข้อมูลและตัวเลือกการสำรองข้อมูล
- In นักสำรวจวัตถุขยาย ฐานข้อมูล ปม
- คลิกขวาที่ฐานข้อมูลที่คุณต้องการสำรองข้อมูล
- เลือก งาน -> Back Up
- ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร สำรองฐานข้อมูล หน้าต่างตรวจสอบชื่อฐานข้อมูล
- เลือก เต็ม เป็น ประเภทการสำรองข้อมูล
4.2.3 การกำหนดค่าปลายทางการสำรองข้อมูล
- ภายใต้ ปลายทางคลิก ลบรายการออกจากรถเข็น เพื่อล้างเส้นทางเริ่มต้น (ถ้าจำเป็น)
- คลิก เพิ่ม เพื่อระบุตำแหน่งสำรองข้อมูลใหม่
- ป้อนเส้นทางและชื่อไฟล์ด้วย บาก นามสกุล
- คลิก OK เพื่อยืนยันจุดหมายปลายทาง
4.2.4 Advanced Backup การตั้งค่า
- คลิก ตัวเลือกสื่อ ในแผงด้านซ้าย
- เลือกตัวเลือกการสำรองข้อมูล:
- เขียนทับชุดข้อมูลสำรองที่มีอยู่ทั้งหมด – แทนที่การสำรองข้อมูลที่มีอยู่
- ผนวกเข้ากับชุดสำรองข้อมูลที่มีอยู่ – เพิ่มลงในไฟล์สำรองข้อมูลที่มีอยู่
- คลิก ตัวสำรอง ในแผงด้านซ้าย
- กำหนดค่าการตั้งค่าตัวเลือก:
- บีบอัดข้อมูลสำรอง – ลดขนาดไฟล์สำรองข้อมูล
- เข้ารหัสข้อมูลสำรอง – ปกป้องข้อมูลที่ละเอียดอ่อน
- ตรวจสอบการสำรองข้อมูลเมื่อเสร็จสิ้น – ตรวจสอบความสมบูรณ์ของการสำรองข้อมูล
4.2.5 การดำเนินการสำรองข้อมูล
- ตรวจสอบการตั้งค่าทั้งหมดใน สำรองฐานข้อมูล หน้าต่าง
- คลิก OK ถึง starกระบวนการสำรองข้อมูล
- รอให้การสำรองข้อมูลเสร็จสิ้น
- ข้อความแสดงความสำเร็จจะปรากฏขึ้นเมื่อการสำรองข้อมูลเสร็จสิ้น
- คลิก OK เพื่อปิดกล่องโต้ตอบการยืนยัน
4.3 การสร้างการสำรองข้อมูลเชิงอนุพันธ์ด้วย SSMS
ในการสร้างการสำรองข้อมูลแบบแยกส่วน ให้ทำตามขั้นตอนเดียวกับการสำรองข้อมูลแบบเต็ม แต่เลือก ดิฟเฟอเรนเชียล เป็นประเภทการสำรองข้อมูลในขั้นตอน 4.2.2 โปรดจำไว้ว่าการสำรองข้อมูลแบบแยกส่วนจำเป็นต้องมีการสำรองข้อมูลแบบเต็มไว้ก่อนหน้าเป็นพื้นฐาน
4.4 การสร้างการสำรองข้อมูลบันทึกธุรกรรมด้วย SSMS
การสำรองข้อมูลบันทึกธุรกรรมมีให้เฉพาะกับฐานข้อมูลที่ใช้รูปแบบการกู้คืนแบบเต็มหรือแบบบันทึกเป็นกลุ่มเท่านั้น
- คลิกขวาที่ฐานข้อมูลใน นักสำรวจวัตถุ
- เลือก งาน -> Back Up
- Choose บันทึกธุรกรรม เป็นประเภทการสำรองข้อมูล
- กำหนดค่าจุดหมายปลายทางและตัวเลือกตามต้องการ
- คลิก OK เพื่อสร้างการสำรองข้อมูลบันทึก
4.5 การสร้างการสำรองข้อมูลแบบคัดลอกเท่านั้นด้วย SSMS
การสำรองข้อมูลแบบคัดลอกเท่านั้นจะไม่รบกวนลำดับการสำรองข้อมูลปกติของคุณ
- ทำตามขั้นตอนเพื่อสร้างการสำรองข้อมูลเต็มรูปแบบ
- ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ตัวสำรอง หน้า
- ตรวจสอบ การสำรองข้อมูลแบบคัดลอกเท่านั้น ตัวเลือก
- ดำเนินการสำรองข้อมูลตามปกติ
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 ให้ทำตามขั้นตอนเหล่านี้:
- จุดเปิด พร้อมรับคำสั่ง or PowerShell
- ไปที่ SQL Server ไดเร็กทอรีเครื่องมือ (โดยทั่วไปจะเพิ่มลงใน PATH ระหว่างการติดตั้ง)
- ดำเนินการคำสั่งสำรองฐานข้อมูล SQLCMD ด้วยพารามิเตอร์ที่เหมาะสม
- ตรวจสอบว่าไฟล์สำรองข้อมูลถูกสร้างขึ้นสำเร็จ
ตัวอย่างคำสั่งสำรองข้อมูลทั้งหมดโดยใช้การตรวจสอบสิทธิ์ของ 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:
- จุดเปิด พร้อมรับคำสั่ง
- ตรวจสอบว่า OSQL พร้อมใช้งานในของคุณ SQL Server การติดตั้ง
- ดำเนินการคำสั่งสำรองข้อมูล 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 กระบวนการคืนค่าทีละขั้นตอน
- จุดเปิด SQL Server สตูดิโอการจัดการ และเชื่อมต่อกับเซิร์ฟเวอร์ของคุณ
- In นักสำรวจวัตถุ, คลิกขวา ฐานข้อมูล
- เลือก กู้คืนฐานข้อมูล
- ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร แหล่ง เลือก อุปกรณ์
- คลิก ... ปุ่มสำหรับเรียกดูไฟล์สำรองข้อมูล
- คลิก เพิ่ม และนำทางไปยังไฟล์ .bak ของคุณ
- เลือกไฟล์สำรองข้อมูลและคลิก OK
- ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ปลายทาง ส่วนกรอกชื่อฐานข้อมูล
- ตรวจสอบชุดข้อมูลสำรองที่จะคืนค่า
- คลิก OK ถึง starการคืนค่า
9.2.2 ตัวเลือกการคืนค่าและการตั้งค่า
คลิก ตัวเลือก ในแผงด้านซ้ายเพื่อกำหนดค่า:
- เขียนทับฐานข้อมูลที่มีอยู่ (ด้วย REPLACE) – อนุญาตให้คืนค่าทับฐานข้อมูลที่มีอยู่
- รักษาสถานะการจำลอง (WITH KEEP_REPLICATION) - ดูแล SQL Server การทำซ้ำ รัฐ
- จำกัดการเข้าถึงฐานข้อมูลที่คืนค่า (WITH RESTRICTED_USER) – ขีดจำกัด post-คืนการเข้าถึง
- สถานะการฟื้นตัว – เลือกระหว่าง RESTORE WITH RECOVERY หรือ NORECOVERY
9.3 การคืนค่าการสำรองข้อมูลที่แตกต่างกัน
การคืนค่าแบบต่างกันต้องใช้การสำรองข้อมูลทั้งแบบเต็มและแบบต่างกัน:
- ขั้นแรกให้คืนค่าการสำรองข้อมูลทั้งหมดด้วย โนรีโคเวรี่ ตัวเลือก
- จากนั้นคืนค่าการสำรองข้อมูลที่แตกต่างกันด้วย กู้คืน ตัวเลือก
ตัวอย่าง 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 การคืนค่าด้วยการสำรองข้อมูลบันทึกธุรกรรม
สำหรับการกู้คืน ณ จุดเวลา ให้คืนค่าตามลำดับดังนี้:
- คืนค่าการสำรองข้อมูลเต็มรูปแบบด้วย NORECOVERY
- คืนค่าการสำรองข้อมูลที่แตกต่างกันด้วย NORECOVERY (ถ้ามี)
- คืนค่าการสำรองข้อมูลบันทึกธุรกรรมตามลำดับด้วย NORECOVERY
- คืนค่าการสำรองข้อมูลบันทึกสุดท้ายด้วย 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 ทั่วไป)
วิธีนี้ใช้ได้ผลเมื่อคุณต้องการกู้คืนข้อมูลตารางหลังจากเกิดปัญหา และไม่มีสแนปช็อตอยู่:
- กู้คืนข้อมูลสำรองตามจังหวะrarฐานข้อมูล y
- คัดลอกข้อมูลตารางจากจังหวะ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 การทดสอบการคืนค่าปกติ
ทดสอบขั้นตอนการกู้คืนรายไตรมาสหรือรายเดือน:
- คืนค่าการสำรองข้อมูลไปยังสภาพแวดล้อมการทดสอบ
- ตรวจสอบความสมบูรณ์และความสมบูรณ์ของข้อมูล
- ตรวจสอบการทำงานของแอปพลิเคชัน
- เวลาการกู้คืนเอกสาร (ตรวจสอบ RTO)
- ระบุและแก้ไขปัญหาใดๆ
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 งานตัวแทน
สร้างงานสำรองข้อมูลอัตโนมัติ:
- แสดง SQL Server ตัวแทน
ใน SSMS
- คลิกขวาที่ งาน และเลือก งานใหม่
- ตั้งชื่องาน (เช่น “สำรองข้อมูลเต็มรายวัน”)
- เพิ่ม ขั้นตอน ด้วยคำสั่งสำรองข้อมูล T-SQL
- สร้าง ตารางเวลา สำหรับระยะเวลาการดำเนินการ
- กำหนดค่า การแจ้งเตือน เพื่อความสำเร็จ/ความล้มเหลว
10.6.2 แผนการบำรุงรักษา
SQL Server แผนการบำรุงรักษาจัดให้มีอินเทอร์เฟซทางภาพสำหรับการสำรองข้อมูลอัตโนมัติ:
- นำทางไปยัง การจัดการ -> แผนการบำรุงรักษา
- คลิกขวาและเลือก ตัวช่วยสร้างแผนการบำรุงรักษา
- เลือกงานสำรองข้อมูลที่จะทำการอัตโนมัติ
- กำหนดค่ากำหนดการสำรองข้อมูลและตัวเลือก
- ตั้งค่าการรายงานและการบันทึก
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 ได้:
- สร้างบัญชี Azure Storage
- สร้างบัญชีตัวแทน SQL Server ข้อมูลประจำตัวสำหรับการตรวจสอบสิทธิ์ Azure
- ใช้รูปแบบ 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, ดังต่อไปนี้:
- Start DataNumen SQL Recovery.
- เลือกไฟล์สำรองที่เสียหายเป็นไฟล์ต้นฉบับโดยเปลี่ยนตัวกรองเป็น “ไฟล์ทั้งหมด (*.*)”
- ตั้งค่าไฟล์เอาท์พุตเป็น .MDF หากจำเป็น
- คลิก“ Star“การกู้คืน” และปฏิบัติตามคำแนะนำเพื่อกู้คืนฐานข้อมูล
- หลังจากกระบวนการกู้คืนฐานข้อมูลการกู้คืนใหม่จะปรากฏขึ้นใน SQL Server ซึ่งมีข้อมูลที่กู้คืนมาทั้งหมด
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 มีรายงานการสำรองข้อมูลในตัว:
- คลิกขวาที่ฐานข้อมูลใน Object Explorer
- เลือก รายงาน -> รายงานมาตรฐาน
- เลือกจากรายงานที่มีให้เลือก:
- เหตุการณ์การสำรองและกู้คืน
- การสำรองข้อมูลทั้งหมด
- บันทึกธุรกรรมสถานะการจัดส่ง
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 ใช่ไหม?
ในการสำรองข้อมูลไปยังไดรฟ์เครือข่าย:
- ทำให้มั่นใจ SQL Server บัญชีบริการมีสิทธิ์เขียนบนการแชร์เครือข่าย
- ใช้เส้นทาง UNC ในคำสั่งสำรองข้อมูล:
\\ServerName\ShareName\BackupFile.bak - ทดสอบการเชื่อมต่อก่อนกำหนดการสำรองข้อมูลอัตโนมัติ
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 การกู้คืนหรือต้องการคำแนะนำในการแก้ไขปัญหาฐานข้อมูลเพิ่มเติมหรือไม่? หยวนยินดีต้อนรับ ข้อเสนอแนะและข้อเสนอแนะ เพื่อปรับปรุงทรัพยากรทางเทคนิคเหล่านี้











