Việc có bản sao lưu (backup) là bắt buộc để khôi phục database khi bị hỏng hoặc mất mát vì bất kỳ lý do nào. Backup tạo bản sao dữ liệu và thông tin database lưu ở server dự phòng. Nhật ký giao dịch (transaction logs) cũng phải backup cùng lúc, nếu không dữ liệu sẽ vô nghĩa.
Nguyên nhân gây hỏng Database
- Lỗi người dùng (User Error): Nguyên nhân lớn nhất gây hỏng/mất dữ liệu. Cần khôi phục đến thời điểm trước khi lỗi xảy ra.
- Lỗi phần cứng (Hardware Failure): Ổ cứng chứa database có thể hỏng. Cần thay thế định kỳ.
- Sự kiện thảm họa (Catastrophic Event): Thiên tai (lũ lụt, động đất) hoặc tấn công cố ý (hack). Dữ liệu có thể bị hỏng, cần backup.
Phương pháp Backup
- Full Backup: Sao chép toàn bộ database (dữ liệu + transaction log). Tốn nhiều thời gian.
- Transaction Log Backup: Chỉ lưu nhật ký giao dịch. Xóa log cũ khi backup mới để giảm dung lượng.
- Differential Backup: Lưu dữ liệu và log đã thay đổi kể từ lần Full Backup gần nhất. File nhỏ hơn Full Backup.
Khôi phục Database (Recovery)
- Khôi phục dựa trên log (Log-based recovery): Lưu log mọi giao dịch ở vùng an toàn. Khi lỗi, dùng log để khôi phục. Thông tin log (thời gian, dữ liệu...) phải ghi trước khi thực thi giao dịch.
- Shadow Paging: Sau khi giao dịch hoàn tất, dữ liệu tự động lưu an toàn. Nếu hệ thống sập giữa chừng, thay đổi của giao dịch đó không phản ánh vào database.