การมีสำเนาสำรอง (Backup) จำเป็นเพื่อกู้คืนข้อมูลเมื่อฐานข้อมูลต้นฉบับเสียหายหรือสูญหาย การสำรองหมายถึงการสร้างสำเนาข้อมูลและ transaction logs ไว้ที่เซิร์ฟเวอร์สำรอง เพราะไม่มี logs ข้อมูลจะใช้ไม่ได้
สาเหตุของความล้มเหลว
- User Error: สาเหตุหลัก ข้อมูลเสียหายจากการใช้งานผิด ต้องกู้คืนไปยังจุดก่อนเกิดข้อผิดพลาด
- Hardware Failure: ฮาร์ดดิสก์เสียหาย ควรเปลี่ยนเป็นระยะ
- Catastrophic Event: เหตุการณ์รุนแรง เช่น น้ำท่วม แผ่นดินไหว หรือการโจมตี (Hacking)
วิธีการสำรอง (Backup Methods)
- Full Backup: คัดลอกทั้งฐานข้อมูลและ transaction logs ใช้เวลานาน ไฟล์ใหญ่
- Transaction Log Backup: สำรองเฉพาะ logs ลบ logs เก่าเมื่อมี backup ใหม่ เพื่อให้ไฟล์เล็ก
- Differential Backup: สำรองข้อมูลและ logs ที่เปลี่ยนแปลงหลัง Full Backup ล่าสุด ไฟล์เล็กกว่า Full
การกู้คืนฐานข้อมูล (Database Recovery)
- Log-based Recovery: เก็บ logs ทุก transaction ไว้ที่ปลอดภัย ก่อน execute transaction จะกู้คืนได้
- Shadow Paging: หลัง transaction เสร็จ ข้อมูลจะถูกเก็บอัตโนมัติ หากระบบ crash ระหว่าง transaction การเปลี่ยนแปลงจะไม่สะท้อนในฐานข้อมูล