
Trả lời nhanh: Chu kỳ backup quyết định bạn chấp nhận mất tối đa bao nhiêu dữ liệu khi có sự cố. Backup hàng tuần nghĩa là xấu nhất mất bảy ngày dữ liệu, hàng ngày là mất một ngày, còn hệ thống nhiều giao dịch cần thêm bản sao nhật ký để mất tối thiểu. Ba nguyên tắc bắt buộc: bản sao phải nằm trên hệ thống tách rời khỏi máy chủ chạy dịch vụ, phải giữ nhiều bản chứ không chỉ bản mới nhất, và phải thử khôi phục định kỳ vì backup chưa từng thử khôi phục thì chưa gọi là backup.
Ai cũng biết cần backup. Nhưng hỏi cụ thể bao lâu chạy một lần, cất ở đâu, lần cuối thử khôi phục là khi nào thì phần lớn câu trả lời trở nên lúng túng.
- Chu kỳ backup chính là mức dữ liệu bạn chấp nhận mất khi có sự cố.
- Bản sao nằm cùng máy chủ đang chạy dịch vụ gần như vô nghĩa khi máy đó gặp sự cố.
- Giữ nhiều bản theo thời gian, vì có lỗi vài ngày sau mới bị phát hiện.
- Backup chưa từng thử khôi phục thì chưa chắc dùng được.
Hai con số cần thống nhất trước
Mất tối đa bao nhiêu dữ liệu là chấp nhận được. Con số này quyết định chu kỳ backup. Blog thì mất một tuần cũng không sao. Sàn thương mại điện tử mất một ngày đơn hàng là vấn đề lớn.
Chờ tối đa bao lâu để hệ thống chạy lại. Con số này quyết định cách bạn lưu bản sao và mức độ tự động. Chấp nhận chờ nửa ngày thì khác hẳn với yêu cầu chạy lại trong một giờ.
Trả lời hai câu này trước, rồi mới chọn giải pháp. Làm ngược lại thường dẫn tới mua thứ không cần hoặc thiếu thứ cần.
Chọn chu kỳ theo loại hệ thống
| Loại hệ thống | Chu kỳ hợp lý | Mất tối đa |
|---|---|---|
| Blog, trang giới thiệu | Hàng tuần | 7 ngày |
| Website doanh nghiệp | Hàng tuần hoặc vài ngày | 2 tới 7 ngày |
| Thương mại điện tử | Hàng ngày | 1 ngày |
| Ứng dụng nhiều giao dịch | Hàng ngày kèm sao lưu nhật ký | vài phút |
Chu kỳ dày hơn tốn dung lượng và chi phí hơn, nên chọn theo giá trị dữ liệu chứ không chọn theo cảm giác an tâm.
Ba nguyên tắc không được vi phạm
- Bản sao phải nằm ở nơi khác. Để cùng máy chủ đang chạy dịch vụ thì khi máy đó hỏng nặng, bạn mất cả bản gốc lẫn bản sao.
- Giữ nhiều bản theo thời gian. Chỉ giữ bản mới nhất là bẫy: nếu dữ liệu bị hỏng từ ba ngày trước mà hôm nay mới phát hiện, bản mới nhất đã chứa dữ liệu hỏng rồi.
- Thử khôi phục định kỳ. Đây là bước bị bỏ qua nhiều nhất. Backup chạy đều mỗi tuần nhưng file rỗng hoặc thiếu database là chuyện đã xảy ra với rất nhiều người.
RAID không phải backup
Nhắc lại vì đây là hiểu lầm tốn kém nhất. RAID chỉ cứu bạn khi ổ cứng hỏng về mặt vật lý. Xoá nhầm, mã độc mã hoá file hay một bản cập nhật làm hỏng dữ liệu đều được ghi đồng thời lên cả ổ gương, không có gì để khôi phục.
Cấu hình an toàn cần cả hai lớp: RAID lo phần cứng, bản sao định kỳ ở hệ thống khác lo phần con người và phần mềm. Khi hỏi nhà cung cấp, hãy hỏi cả hai chứ đừng hài lòng với câu trả lời có RAID rồi.
Bảng chu kỳ sao lưu theo từng hệ thống
| Hệ thống | Chu kỳ | Số bản giữ lại | Mất tối đa |
|---|---|---|---|
| Trang giới thiệu, ít thay đổi | Hằng tuần, cộng một bản trước mỗi lần thay đổi lớn | 4 bản tuần, 3 bản tháng | Một tuần nội dung |
| Trang tin tức, blog | Hằng ngày | 7 bản ngày, 4 bản tuần, 3 bản tháng | Một ngày bài viết |
| Cửa hàng trực tuyến | Hằng ngày cho tệp, kèm bản sao nhật ký cơ sở dữ liệu mỗi giờ | 7 ngày, 4 tuần, 6 tháng | Một giờ đơn hàng |
| Hệ thống nội bộ nhiều giao dịch | Hằng ngày, cộng nhật ký liên tục | 14 ngày, 8 tuần, 12 tháng | Vài phút |
Cách nhớ: chu kỳ sao lưu chính là mức dữ liệu bạn chấp nhận mất. Câu hỏi đúng không phải "bao lâu một lần là đủ" mà là "mất bao nhiêu công việc thì công ty chịu được".
Kịch bản sao lưu cho một máy chủ ảo
#!/bin/bash # /usr/local/bin/backup.sh set -euo pipefail NGAY=$(date +%F) DICH=/backup mkdir -p $DICH # 1. Co so du lieu docker compose -f /home/app/docker-compose.yml exec -T db \ pg_dump -U postgres tendb | gzip > $DICH/db-$NGAY.sql.gz # 2. Tep nguoi dung tai len tar czf $DICH/uploads-$NGAY.tar.gz -C /home/app uploads # 3. Day sang noi khac, day la buoc quan trong nhat rclone copy $DICH remote:backup-vps/ --max-age 2d # 4. Don ban cu tren may find $DICH -name "*.gz" -mtime +7 -delete echo "Xong $NGAY" >> /var/log/backup.log
# Dat lich chay 2 gio sang sudo crontab -e 0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup-cron.log 2>&1
Bước ba là bước quyết định. Bản sao nằm trên chính máy chủ đó gần như vô nghĩa: máy hỏng, bị xóa, hoặc bị mã hóa thì mất cả gốc lẫn bản sao.
Kiểm tra khôi phục, quy trình 20 phút mỗi quý
- Dựng một máy chủ ảo tạm, cấu hình nhỏ nhất cũng được.
- Kéo bản sao mới nhất về, giải nén.
- Khôi phục cơ sở dữ liệu và tệp, bật ứng dụng lên.
- Đăng nhập, mở vài trang, kiểm dữ liệu có đủ tới thời điểm sao lưu không.
- Ghi lại thời gian từ lúc bắt đầu tới lúc hệ thống chạy được. Đó là thời gian ngừng hoạt động thật của bạn.
- Xóa máy chủ tạm.
Ba thứ hay lộ ra ở lần thử đầu tiên: tệp sao lưu thiếu một thư mục quan trọng, mật khẩu cơ sở dữ liệu không được ghi ở đâu cả, và không ai nhớ trình tự dựng lại. Cả ba đều rẻ để sửa lúc này và rất đắt để phát hiện lúc có sự cố.
Ba điều kiện để bản sao có giá trị
- Bản sao phải ở nơi tách rời. Khác máy chủ, và tốt nhất là khác nhà cung cấp.
- Giữ nhiều bản theo thời gian. Dữ liệu hỏng có khi vài ngày sau mới phát hiện, lúc đó bản mới nhất đã chứa cả phần hỏng.
- Bản sao phải được kiểm. Sao lưu chưa từng khôi phục thử không phải là sao lưu, mà là một thư mục tệp bạn hy vọng dùng được.
Về ổ đĩa dự phòng theo cơ chế gương: nó chống ổ hỏng, không chống xóa nhầm, không chống mã độc, không chống lỗi phần mềm. Xóa một tệp là nó biến mất khỏi cả hai ổ ngay lập tức. Đây là hai việc khác nhau và cần cả hai.
Câu hỏi thường gặp
Backup hàng tuần có đủ không?
Đủ với blog và website ít thay đổi. Không đủ với hệ thống có đơn hàng hoặc giao dịch, vì mất bảy ngày dữ liệu là thiệt hại thật.
Bản sao nên giữ bao nhiêu bản?
Tối thiểu bốn bản gần nhất, tốt hơn thì giữ thêm bản theo tháng. Lý do là nhiều lỗi dữ liệu vài ngày sau mới bị phát hiện.
Có RAID rồi còn cần backup không?
Vẫn cần. RAID chỉ xử lý tình huống hỏng ổ cứng, không cứu được xoá nhầm, mã độc hay lỗi ứng dụng.
Bao lâu nên thử khôi phục một lần?
Ít nhất mỗi quý một lần, khôi phục ra môi trường thử rồi kiểm tra dữ liệu có đầy đủ không. Đây là cách duy nhất biết chắc backup dùng được.
Bài viết liên quan
- Google Workspace cho team dev nhỏ: email tên miền + Gemini + cộng tác
- Tối ưu và giảm tải máy chủ cho Xenforo
- Hermes AI Agent: cài đặt trên VPS + gắn proxy chạy automation ổn định
- Cài Docker trên VPS Ubuntu 24.04: chuẩn từng lệnh
- Top 7 VPS Việt Nam giá rẻ 2026: so sánh thực tế từ user dev
- n8n + Claude API trên VPS: build AI automation toàn team startup



