Opens in a new tab

Backup database/PITR cho VPS và Cloud Server doanh nghiệp

Database backup and point in time recovery for cloud server
Database backup and point in time recovery for cloud server

Tóm tắt nhanh: Backup database cho VPS/Cloud Server không nên chỉ là “dump mỗi đêm”. Với PostgreSQL, MySQL hoặc database ERP/website quan trọng, doanh nghiệp cần xác định RPO/RTO, có bản full backup, log giao dịch để khôi phục theo thời điểm khi cần, bản sao offsite, cảnh báo khi job lỗi và lịch test restore. Nếu chưa từng thử phục hồi dữ liệu, chưa thể xem backup là an toàn.

Vì sao database backup khác backup file website?

File website thường thay đổi theo đợt deploy, upload ảnh hoặc cập nhật plugin. Database lại thay đổi liên tục: đơn hàng, khách hàng, phiếu kho, chứng từ, log ứng dụng, tài khoản người dùng và cấu hình nghiệp vụ. Một bản backup file sạch nhưng database thiếu vài giờ dữ liệu vẫn có thể làm doanh nghiệp mất đơn hàng, sai tồn kho hoặc phải nhập lại chứng từ.

Vì vậy với Cloud Server/VPS cho doanh nghiệp, câu hỏi không chỉ là “có backup không”, mà là “mất tối đa bao nhiêu dữ liệu, phục hồi trong bao lâu, phục hồi về thời điểm nào và ai chịu trách nhiệm xác nhận dữ liệu sau restore”.

RPO, RTO và PITR là gì?

Khái niệmÝ nghĩa thực tếVí dụ câu hỏi cần trả lời
RPOMức dữ liệu có thể mấtMất tối đa 15 phút, 1 giờ hay 1 ngày dữ liệu?
RTOThời gian phục hồi chấp nhận đượcHệ thống được phép ngừng 30 phút, 2 giờ hay cả ngày?
PITRKhôi phục về một thời điểm cụ thểCó thể quay lại trước lúc xóa nhầm dữ liệu lúc 10:35 không?
RetentionThời gian giữ backupGiữ 7 ngày, 30 ngày, 90 ngày hay lâu hơn?

Theo tài liệu PostgreSQL, PITR dựa trên việc kết hợp base backup với chuỗi WAL đã lưu trữ để phục hồi database về một thời điểm nhất định. Với MySQL, khôi phục theo thời điểm thường dựa vào full backup kết hợp binary log. Điểm chung là bản full backup đơn lẻ không đủ nếu doanh nghiệp cần phục hồi sát thời điểm sự cố.

Khi nào doanh nghiệp cần PITR?

  • Website thương mại điện tử có đơn hàng, thanh toán, tồn kho hoặc dữ liệu khách hàng thay đổi liên tục.
  • Odoo/ERP/kế toán/kho chạy trên PostgreSQL hoặc MySQL và nhân sự nhập liệu cả ngày.
  • Ứng dụng nội bộ có thao tác xóa/sửa dữ liệu khó hoàn tác.
  • Database lớn khiến full backup hằng giờ không thực tế.
  • Doanh nghiệp cần khôi phục về thời điểm trước khi lỗi nhập liệu, lỗi import hoặc script chạy sai.
  • Có yêu cầu kiểm toán, báo cáo sự cố hoặc trách nhiệm dữ liệu rõ ràng.

Mô hình backup database nên có

Lớp bảo vệVai tròLưu ý
Full backupĐiểm phục hồi nềnChạy theo ngày/tuần tùy dung lượng và cửa sổ bảo trì
Transaction logKhôi phục gần thời điểm sự cốPostgreSQL WAL hoặc MySQL binlog cần được lưu đúng và monitor
Snapshot máy chủPhục hồi nhanh cấp hạ tầngKhông thay thế backup database nếu cần PITR
Offsite copyBảo vệ khi server/storage lỗiNên tách khỏi cùng máy production
Restore testChứng minh backup dùng đượcGhi nhận thời gian restore, dữ liệu có đủ và app có chạy lại không

Quy tắc 3-2-1 thường được dùng như nền tảng: có nhiều bản sao, trên nhiều loại lưu trữ và có ít nhất một bản ngoài site. Với database quan trọng, nên bổ sung cảnh báo job lỗi, kiểm tra dung lượng log và khóa quyền truy cập backup.

Những lỗi backup database hay gặp

  • Dump database mỗi đêm nhưng không backup filestore/attachment, khiến ERP restore lên thiếu file chứng từ.
  • Backup nằm cùng ổ production; khi đầy disk hoặc lỗi storage thì mất cả dữ liệu lẫn backup.
  • Không theo dõi WAL/binlog, đến khi cần PITR mới biết log bị xóa hoặc lưu thiếu.
  • Backup chạy vào giờ cao điểm làm hệ thống chậm nhưng không ai nhận cảnh báo.
  • Không có tài liệu restore: ai chạy, restore ở đâu, kiểm tra dữ liệu nào, mất bao lâu.
  • Không tách quyền: nhiều người có quyền xóa backup hoặc truy cập dữ liệu nhạy cảm.
  • Chỉ test “file backup tồn tại”, không test phục hồi thật trên môi trường riêng.

Backup database cho Odoo/ERP cần chú ý gì?

Odoo và nhiều hệ thống ERP dùng PostgreSQL, nhưng dữ liệu không chỉ nằm trong database. Filestore, custom module, cấu hình worker, reverse proxy, email, cron và phiên bản phần mềm đều ảnh hưởng đến khả năng phục hồi. Nếu chỉ restore database mà thiếu filestore, người dùng có thể thấy đơn hàng nhưng mất file đính kèm, hóa đơn hoặc chứng từ.

Nếu bạn đang chọn server cho ERP, nên đọc thêm bài Cloud Server cho Odoo, ERP và database. Bài đó giúp xác định khi nào nên dùng VPS, tách database, chuyển sang Dedicated Server hoặc Private Cloud.

Checklist trước khi chốt gói Cloud Server

  • Database đang dùng: PostgreSQL, MySQL/MariaDB, MSSQL hay loại khác.
  • Dung lượng hiện tại, tốc độ tăng và giờ cao điểm giao dịch.
  • RPO/RTO mong muốn cho từng hệ thống: website, ERP, app nội bộ, database kế toán.
  • Có cần PITR hay chỉ cần full backup theo ngày.
  • Backup lưu ở đâu: local, snapshot, NAS, object storage, cloud backup/offsite.
  • Có cần mã hóa backup, giới hạn quyền tải/xóa và log truy cập không.
  • Lịch restore test và người xác nhận dữ liệu sau restore.

Liên kết nên xem tiếp

Nếu đang chọn hạ tầng, xem tư vấn cấu hình VPS và bảng giá VPS Cloud. Nếu cần gửi workload để nhận đề xuất, dùng trang đặt VPS Cloud. Nếu backup là yêu cầu chính, xem Backup Cloud cho doanh nghiệp.

FAQ về backup database/PITR

Có snapshot VPS rồi có cần backup database không?

Có. Snapshot hữu ích để phục hồi nhanh cấp máy chủ, nhưng không thay thế backup database khi cần khôi phục theo thời điểm, kiểm tra dữ liệu hoặc tách database sang môi trường khác.

PITR có cần cho mọi website không?

Không. Website ít thay đổi có thể dùng backup theo ngày. PITR phù hợp hơn với database giao dịch, ERP, WooCommerce, app nội bộ hoặc hệ thống có dữ liệu thay đổi liên tục.

Bao lâu nên test restore một lần?

Tối thiểu nên test theo quý với hệ thống quan trọng, và test sau các thay đổi lớn như đổi server, nâng cấp database, thay đổi job backup hoặc tăng mạnh dung lượng dữ liệu.

Tư vấn backup database

Cần thiết kế backup database/PITR cho Cloud Server?

IT Systems có thể rà PostgreSQL/MySQL, RPO/RTO, offsite backup, restore test và đề xuất cấu hình VPS/Cloud Server phù hợp để giảm rủi ro mất dữ liệu.

Gửi yêu cầu tư vấn backup Xem Cloud Backup