---
title: "Sao lưu website đúng cách: quy tắc 3-2-1 và thử khôi phục định kỳ"
url: https://phatdev.net/vi/blog/website-backup-3-2-1
lang: vi
updated: 2026-10-21
alternate:
  en: https://phatdev.net/en/blog/website-backup-3-2-1
markdown: https://phatdev.net/vi/blog/website-backup-3-2-1.md
---

# Sao lưu website đúng cách: quy tắc 3-2-1 và thử khôi phục định kỳ

> Sao lưu những gì, bao lâu một lần, quy tắc 3-2-1 và vì sao phải thử khôi phục định kỳ, giải thích cho người không rành kỹ thuật.

Chuyên mục: Bảo mật | Đăng: 2026-10-21 | Cấp độ: Cơ bản | 7 phút đọc

Tags: backup, 3-2-1, restore, wordpress, sl-migrations

Hình dung một chủ shop có lịch sao lưu chạy mỗi đêm suốt hai năm. Đến ngày máy chủ hỏng, anh mở thư mục sao lưu ra và thấy toàn file rỗng. Hai năm đó việc sao lưu vẫn chạy đều, mà không cứu được gì. Chuyện này có thể xảy ra với bất kỳ ai chưa từng thử khôi phục.

Bài học nằm ở đây: có sao lưu chưa đủ, phải chắc chắn khôi phục được. Bài này giải thích cách sao lưu web đủ an toàn, bằng ngôn ngữ ai cũng hiểu.

![Ba bản sao trên hai loại nơi lưu, một bản để ở nơi xa](https://phatdev.net/uploads/blog/website-backup-3-2-1/copies-1920.webp)

## Sao lưu để làm gì

Hãy nghĩ đến cuốn sổ ghi chép quan trọng. Nếu chỉ có một cuốn và bạn làm đổ nước vào đó thì mất hết. Nếu bạn photo thêm một bản cất cùng ngăn kéo, cháy nhà là mất cả hai. Cách chắc ăn là có nhiều bản, ở nhiều nơi khác nhau.

Web cũng vậy. Nó có thể mất vì máy chủ hỏng, bị hack, bị xoá nhầm, cập nhật lỗi, hoặc nhà cung cấp hosting gặp sự cố. Sao lưu là cách duy nhất đưa mọi thứ về như cũ trong những lúc đó. Nếu web bị tấn công, bản sao lưu sạch còn là con đường nhanh nhất, như mình đã nói trong bài [Web bị hack: nhận biết sớm và việc cần làm trong 24 giờ đầu](https://phatdev.net/vi/blog/website-hacked-what-to-do).

## Quy tắc 3-2-1

Đây là quy tắc đơn giản mà người trong nghề hay dùng, nghe qua là nhớ được.

3 bản dữ liệu: bản đang chạy cộng thêm hai bản sao lưu. 2 loại nơi lưu khác nhau, ví dụ ổ cứng trên máy chủ và một dịch vụ lưu trữ khác, vì một loại có thể hỏng cùng lúc. 1 bản để ở xa, tức khác địa điểm với máy chủ chính, để khi cả trung tâm dữ liệu gặp sự cố hoặc tài khoản hosting bị khoá thì bạn vẫn còn bản.

Lý do cần bản ở xa rất thực tế: nếu kẻ xấu vào được máy chủ và xoá hết, bản sao lưu nằm ngay trên máy đó cũng bị xoá theo. Chỉ có bản ở nơi khác mới an toàn. Trung tâm an ninh mạng của Anh (NCSC) cũng định nghĩa bản sao lưu là bản sao dữ liệu cất ở một nơi riêng, an toàn, tách khỏi bản gốc.

## Sao lưu những gì

Một web thường có hai phần, và bạn cần cả hai.

Phần thứ nhất là các file: mã nguồn, giao diện, ảnh bạn tải lên, file cấu hình. Phần thứ hai là cơ sở dữ liệu, nơi chứa bài viết, sản phẩm, đơn hàng, tài khoản khách. Với WordPress, nếu chỉ sao lưu file thì bạn mất sạch nội dung, còn chỉ sao lưu cơ sở dữ liệu thì mất ảnh và giao diện. Tài liệu chính thức của WordPress cũng nhấn mạnh phải sao lưu cả hai.

Đừng quên những thứ nằm ngoài: file cấu hình máy chủ, chứng chỉ bảo mật, và ghi chú về cách dựng lại (đặt tên miền ở đâu, mail dùng dịch vụ gì). Những thứ này hay bị quên cho đến khi cần.

## Bao lâu sao lưu một lần

Hãy tự hỏi: nếu mất dữ liệu của hôm nay, mình chấp nhận mất tối đa bao nhiêu? Câu trả lời quyết định tần suất.

Web giới thiệu ít đổi: mỗi tuần một lần là đủ. Blog đăng bài vài lần một tuần: mỗi ngày. Shop có đơn hàng liên tục: sao lưu cơ sở dữ liệu nhiều lần trong ngày, hoặc dùng cách ghi lại từng thay đổi. Nên sao lưu thêm ngay trước mỗi lần cập nhật lớn, vì cập nhật hay là lúc xảy ra sự cố.

Giữ nhiều phiên bản, không chỉ bản mới nhất. Nếu mã độc nằm trong web 10 ngày rồi mới bị phát hiện, bản sao lưu của hôm qua cũng đã nhiễm. Giữ một chuỗi bản theo ngày, theo tuần và theo tháng giúp bạn quay về đúng thời điểm còn sạch.

## Thử khôi phục: phần quan trọng nhất

Bản sao lưu chưa từng khôi phục thử thì chưa thể gọi là bản sao lưu, chỉ là hy vọng. Ví dụ ở đầu bài là một minh hoạ: file có đó, nhưng chưa ai kiểm.

![Lấy bản sao lưu ra, dựng lên một chỗ thử và xác nhận web chạy được](https://phatdev.net/uploads/blog/website-backup-3-2-1/restore-1920.webp)

Cách làm đơn giản: mỗi quý, hoặc ít nhất mỗi nửa năm, lấy bản sao lưu mới nhất và dựng thành một web thử ở nơi khác (một địa chỉ phụ, không phải web thật). Mở lên, kiểm tra các việc quan trọng: trang chủ vào được không, đăng nhập quản trị được không, ảnh có hiện không, đặt thử một đơn hàng. Bấm giờ xem mất bao lâu. Con số đó cho bạn biết khi có sự cố, web sẽ ngừng bao lâu.

Ghi lại các bước khôi phục thành tài liệu ngắn, để ai cũng làm theo được, kể cả lúc bạn không có mặt. Lúc cần nhất thường là lúc bạn đang hoảng.

## Plugin sao lưu: chọn gì cho đúng

Với WordPress, có nhiều plugin sao lưu. Khi chọn, hãy xem nó làm được những việc sau: sao lưu cả file và cơ sở dữ liệu, đặt lịch tự động, gửi bản sang nơi khác ngoài máy chủ, giữ nhiều phiên bản, và có cách khôi phục rõ ràng.

Mình cũng làm một plugin sao lưu và di chuyển web riêng, SL Migrations. Nó đóng gói file và cơ sở dữ liệu thành một gói, đặt lịch chạy định kỳ, lưu gói trên máy chủ và đẩy sang máy khác qua FTP hoặc SFTP. Nó chưa có kết nối thẳng tới các dịch vụ lưu trữ đám mây như S3, nên nếu bạn cần cách đó thì nên chọn công cụ khác. Mình nhắc đến để bạn thấy một kiểu làm cụ thể, không phải để bạn dùng bằng được.

Dù dùng plugin nào, đừng chỉ tin vào dòng chữ "sao lưu thành công". Hãy thử khôi phục như phần trên.

## Cho bạn nào viết code

Nếu bạn tự dựng sao lưu cho máy chủ riêng, ý tưởng cơ bản chỉ gồm vài bước: xuất cơ sở dữ liệu ra file, nén cùng thư mục web, kiểm tra file nén còn nguyên, rồi chép sang nơi khác.

```bash
mysqldump --single-transaction ten_csdl | gzip > csdl-$(date +%F).sql.gz
tar -czf web-$(date +%F).tar.gz /duong/dan/web
gzip -t csdl-$(date +%F).sql.gz && tar -tzf web-$(date +%F).tar.gz > /dev/null && echo OK
```

Bước kiểm tra cuối chỉ chứng minh file nén đọc được, chưa chứng minh dữ liệu đúng. Vẫn cần thử khôi phục thật. Mật khẩu cơ sở dữ liệu đặt trong file cấu hình riêng, đừng gõ thẳng vào lệnh.

## Lỗi hay gặp

Lỗi phổ biến nhất là lưu bản sao lưu cùng chỗ với web. Máy chủ hỏng là mất cả hai. Lỗi thứ hai là sao lưu chạy đều nhưng đầy ổ đĩa, nên vài tháng sau không còn chạy được nữa mà không ai hay, vì thế nên bật thông báo khi sao lưu thất bại. Lỗi thứ ba là chỉ giữ bản mới nhất, ghi đè lên bản cũ mỗi đêm.

## Nên làm gì tiếp theo

Tuần này, hãy mở chỗ lưu sao lưu của bạn và trả lời ba câu: bản mới nhất là khi nào, nó nằm ở đâu ngoài máy chủ, và lần cuối bạn thử khôi phục là bao giờ. Nếu một trong ba câu khiến bạn ngập ngừng thì đó là việc đầu tiên cần làm. Nếu cần người dựng hệ thống sao lưu và kiểm tra khôi phục cho web của bạn, bạn cứ nhắn mình.

## Nguồn tham khảo

- [WordPress Developer Resources - Backups](https://developer.wordpress.org/advanced-administration/security/backup/)
- [NCSC - Backing up your data](https://www.ncsc.gov.uk/collection/top-tips-for-staying-secure-online/always-back-up-your-most-important-data)
- [WordPress.org - Hardening WordPress](https://wordpress.org/documentation/article/hardening-wordpress/)
- [WordPress Developer Resources - Migrating WordPress](https://developer.wordpress.org/advanced-administration/upgrade/migrating/)

## Bài liên quan

- [Web bị hack: nhận biết sớm và việc cần làm trong 24 giờ đầu](https://phatdev.net/vi/blog/website-hacked-what-to-do.md)
- [Truy vấn chậm? Cách đọc EXPLAIN và đặt index đúng chỗ](https://phatdev.net/vi/blog/mysql-index-explain.md)
- [Làm website chạy Nginx an toàn hơn, từng bước](https://phatdev.net/vi/blog/nginx-web-hardening.md)
