·2 phút đọc
Backup chưa từng thử khôi phục thì chưa phải là backup
Có file backup mỗi đêm chưa đủ. Điều quan trọng là khi sự cố xảy ra, bạn có khôi phục được không, mất bao lâu, và mất bao nhiêu dữ liệu.
Hỏi người vận hành một hệ thống có backup không, câu trả lời thường là "có". Một cron job chạy lúc 2 giờ sáng, nén database rồi đẩy lên đâu đó. Câu hỏi khó hơn là: lần gần nhất có ai thử khôi phục từ file đó là khi nào?
Nếu câu trả lời là "chưa bao giờ", thì thứ bạn có chỉ là một giả định.
Những kiểu backup hỏng mà không ai hay
Backup hiếm khi hỏng một cách ồn ào. Thường gặp hơn là:
- Job vẫn chạy nhưng file rỗng hoặc bị cắt ngang vì hết dung lượng đĩa, hết thời gian chờ, hoặc mật khẩu database đã đổi.
- Chỉ backup database, quên file người dùng tải lên, tức là hóa đơn, ảnh, hợp đồng trong thư mục
uploads/không có trong bản backup. - Backup nằm cùng server với dữ liệu gốc. Server hỏng ổ cứng hoặc bị mã độc tống tiền (ransomware) khóa dữ liệu thì mất cả hai.
- Không ai biết quy trình khôi phục. Người viết script đã nghỉ việc, lệnh khôi phục chưa từng được ghi lại.
- Phiên bản không khớp. File dump từ MySQL bản cũ không nạp được vào bản mới mà không chỉnh sửa.
Hai con số nên biết trước khi có sự cố
RPO (Recovery Point Objective): được phép mất bao nhiêu dữ liệu? Backup mỗi đêm nghĩa là có thể mất gần một ngày đơn hàng. Với nhiều doanh nghiệp, như vậy là chấp nhận được; với một số khác thì không.
RTO (Recovery Time Objective): được phép ngừng hoạt động bao lâu? Khôi phục một database vài chục GB, cấu hình lại ứng dụng, kiểm tra dữ liệu, việc nào cũng tốn thời gian. Chỉ thử mới biết là 30 phút hay một ngày.
Hai con số này do doanh nghiệp quyết định, không phải do kỹ sư. Việc của kỹ sư là đo xem hệ thống hiện tại thực sự đáp ứng được đến đâu, để người quyết định có cơ sở.
Một bài kiểm tra khôi phục tối thiểu
Không cần phức tạp. Mỗi tháng hoặc mỗi quý:
- Lấy bản backup mới nhất từ nơi lưu trữ thật (không phải bản trên máy ai đó).
- Khôi phục vào một môi trường tách biệt, ví dụ một VPS tạm hoặc một container.
- Chạy ứng dụng trỏ vào dữ liệu đó, đăng nhập, mở vài màn hình quan trọng.
- Ghi lại mất bao lâu và dữ liệu mới nhất là lúc nào.
- Cập nhật tài liệu khôi phục nếu có bước nào phải đoán.
Nếu làm được 5 bước này mà không cần gọi người viết script ban đầu, bạn có một bản backup thật.
Khi nào nên nhờ người ngoài
Nếu bạn không chắc backup có đang chạy không, nằm ở đâu, hay khôi phục thế nào, thì nên kiểm tra ngay, trước khi có sự cố. Khi làm Health Check, backup và khả năng khôi phục là một trong những thứ tôi xem đầu tiên.
Hệ thống của bạn cũng đang như vậy?
2–4 ngày Health Check sẽ cho bạn biết nên sửa gì trước, sửa gì sau.