Backup và restore có kiểm chứng
Có file backup không đồng nghĩa có khả năng khôi phục.
Nắm bản chất
Volume persistence bảo vệ khỏi việc thay container, nhưng không bảo vệ đủ trước
xóa nhầm, corruption, ransomware hoặc mất ổ đĩa. Với PostgreSQL, một phương án
học tập là pg_dump -Fc tạo custom-format dump và
pg_restore vào database kiểm thử riêng.
Production còn cần lịch sao lưu, retention, offsite copy, encryption, restore drills và mục tiêu RPO/RTO. Backup phải được thử phục hồi định kỳ; chỉ kiểm tra file tồn tại là chưa đủ.
Luồng hoạt động
Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?
Lệnh & cấu hình mẫu
docker compose exec -T db pg_dump -U app -d appdb -Fc > backup.dump
# Tạo database lab phục hồi, không ghi đè database gốc:
docker compose exec -T db createdb -U app restore_check
docker compose exec -T db pg_restore -U app -d restore_check --no-owner < backup.dump
Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.
Bài tập 10–20 phút
Tạo dữ liệu mẫu, backup, restore sang restore_check, so sánh số
bản ghi và xác minh một vài truy vấn nghiệp vụ. Ghi lại backup timestamp và
kết quả.
Lỗi dễ mắc
Không chạy restore vào production database đang hoạt động chỉ để “thử”. Cần môi trường cô lập và kế hoạch tránh mất dữ liệu.
Tự kiểm tra
Vì sao restore verification quan trọng hơn chỉ kiểm tra file `.dump` tồn tại?Xem đáp án ↗
Vì file có thể không chứa đủ dữ liệu, không đọc được hoặc không tương thích khi khôi phục.
Học thêm qua lab
Bài học nền tảng có thể thực hiện trực tiếp bằng các lệnh trên; bảng tra cứu nhanh giúp ôn tập.
→ Mở bảng lệnh tra cứu nhanhĐối chiếu tài liệu gốc
Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.
Mở tài liệu chính thức ↗