Bỏ qua, đến nội dung

Câu hỏi thường gặp (FAQ) — Backups

Cài đặt và cấu hình

Backup lưu ở đâu?

Mặc định lưu tại ./storage/backups trên server. Khuyến nghị mạnh cấu hình thêm S3 destination:

Lưu ở đâuƯu điểmNhược điểm
LocalNhanh, không cần cấu hìnhMất nếu server hỏng
S3An toàn, durable (99.999999999%)Cần cấu hình, chi phí lưu trữ
Cả haiAn toàn nhấtChi phí cao hơn

Backup bao gồm những gì?

LoạiDatabaseUsersCấu hìnhUploadsAttachments
Full
Database only

Khác gì với plugin-backup-restore?

Tiêu chíplugin-backup-restoreplugin-backups
Backup thủ công
Backup tự động (cron)
Multi-destination✅ (Local + S3 + nhiều hơn)
Mã hoá✅ (AES-256)
Retention policy✅ (tự xoá backup cũ)
DashboardCơ bảnĐầy đủ (last backup, next scheduled)

plugin-backups là phiên bản nâng cao với tự động hoá, mã hoá, và quản lý chuyên nghiệp.

Cấu hình S3-compatible storage (MinIO, R2, Spaces)?

Sử dụng cùng cấu hình S3 nhưng thay đổi endpoint:

typescript
// MinIO
{
  bucket: 'backups',
  region: 'us-east-1',
  accessKeyId: 'minioadmin',
  secretAccessKey: 'minioadmin',
  endpoint: 'http://localhost:9000',
  forcePathStyle: true,
}

// Cloudflare R2
{
  bucket: 'backups',
  region: 'auto',
  accessKeyId: '...',
  secretAccessKey: '...',
  endpoint: 'https://xxx.r2.cloudflarestorage.com',
}

Sử dụng

Làm sao restore backup?

  1. Vào Settings → Backups
  2. Chọn backup cần restore
  3. Nhấn Restore → xác nhận
  4. Đợi quá trình hoàn tất — server tự động restart

DANGER

Restore ghi đè toàn bộ dữ liệu. Luôn tạo backup mới trước khi restore.

Có thể restore lên server khác không?

Có. Quy trình:

  1. Download file backup từ server gốc (hoặc lấy từ S3)
  2. Upload lên server mới qua giao diện
  3. Nhấn Restore — dữ liệu được chuyển sang

Yêu cầu: cùng loại database (PostgreSQL), phiên bản Digiforce tương thích.

Backup tự động chạy lúc nào?

Theo cấu hình schedule (cron expression):

Ví dụÝ nghĩa
0 2 * * *2h sáng mỗi ngày
0 3 * * 03h sáng mỗi Chủ Nhật
0 */12 * * *Mỗi 12 giờ
0 1 1 * *1h sáng ngày 1 mỗi tháng

Nên chọn thời điểm ít traffic nhất.

Retention policy hoạt động thế nào?

Sau mỗi backup thành công, plugin kiểm tra:

  1. Backup nào cũ hơn retention days → xoá
  2. Tổng số backup vượt max backups → xoá backup cũ nhất

Ví dụ: retention = 30 ngày, max = 10 → giữ tối đa 10 backup trong 30 ngày gần nhất.

Lỗi thường gặp

Backup thất bại, báo "disk space"?

Ổ đĩa hết dung lượng. Giải pháp:

  1. Xoá backup cũ để giải phóng dung lượng
  2. Tăng dung lượng disk (resize volume)
  3. Chuyển sang S3 — không giới hạn dung lượng
  4. Cấu hình max backups và retention để tự động xoá

Restore bị lỗi giữa chừng?

Dữ liệu có thể ở trạng thái không nhất quán. Xử lý:

  1. Thử restore lại — nhiều khi chỉ là lỗi tạm thời
  2. Restore từ backup khác (nếu có nhiều bản)
  3. Kiểm tra log server để xác định lỗi cụ thể
  4. Trường hợp xấu nhất: khởi tạo database mới và restore

TIP

Luôn tạo backup trước khi restore — đây là "safety net" quan trọng nhất.

Backup quá lớn, mất nhiều thời gian?

Giải phápHiệu quảCách thực hiện
Dùng "Database only"CaoBỏ backup files (uploads, attachments)
Tối ưu databaseTrung bìnhXoá dữ liệu không cần, VACUUM
Dùng S3Trung bìnhGiảm bottleneck disk I/O local
Nén tốt hơnThấpNén gzip đã tối ưu sẵn

Upload backup lên S3 thất bại?

Kiểm tra:

  1. AWS credentials đúng (Access Key + Secret Key)
  2. Bucket tồn tại và region đúng
  3. IAM permissions: cần s3:PutObject, s3:GetObject, s3:DeleteObject
  4. Network: server có thể kết nối đến S3 endpoint
  5. File size: file > 5GB có thể cần cấu hình multipart upload