Hướng dẫn backup và restore dữ liệu Supabase Database hiệu quả

05/03/2026 P T P Chung 6 phút đọc 0 bình luận

Tại sao backup và restore dữ liệu là điều bắt buộc

Mỗi hệ thống cơ sở dữ liệu đều tiềm ẩn rủi ro: lỗi phần cứng, sai sót thao tác, tấn công mạng, hoặc đơn giản là nhu cầu khôi phục về một trạng thái trước đó. Supabase, với nền tảng PostgreSQL, cung cấp nhiều cách để bảo vệ dữ liệu. Tuy nhiên, việc nắm rõ quy trình backup và restore không chỉ giúp bạn tự tin hơn khi vận hành mà còn giảm thiểu tối đa thời gian ngừng hoạt động nếu sự cố xảy ra.

Các cách backup dữ liệu trên Supabase

1. Backup tự động (Point-in-Time Recovery - PITR)

Supabase tự động backup toàn bộ dữ liệu của bạn mỗi đêm và lưu giữ trong 7 ngày gần nhất. Đây là lựa chọn an toàn nhất cho các trường hợp khẩn cấp, vì bạn có thể khôi phục database về bất kỳ thời điểm nào trong vòng 7 ngày qua.

Để khôi phục, bạn chỉ cần vào Dashboard → [Project] → [Settings] → [Database] → [Point-in-time recovery] và chọn thời điểm muốn khôi phục. Lưu ý, quá trình này sẽ tạo ra một database mới, dữ liệu cũ vẫn được giữ lại.

2. Backup thủ công (Manual Backup)

Nếu bạn muốn backup ngay lập tức hoặc lưu trữ ngoài Supabase, bạn có thể sử dụng công cụ pg_dump hoặc API của Supabase.

Ví dụ với pg_dump:

pg_dump -h db.yourproject.supabase.co -U postgres -F c -b -v -f backup.bak your_database

Hoặc thông qua API REST:

curl -X POST 'https://yourproject.supabase.co/rest/v1/_backup' 
  -H "apikey: your_api_key" 
  -H "Authorization: Bearer your_service_role_key"

Kết quả trả về là một file .sql chứa toàn bộ schema và dữ liệu, sẵn sàng để khôi phục trên bất kỳ PostgreSQL instance nào.

3. Backup chọn lọc (Selective Backup)

Trong một số trường hợp, bạn chỉ cần backup một vài bảng hoặc schema nhất định. Lúc này, bạn có thể thêm tham số --table hoặc --schema vào lệnh pg_dump:

pg_dump -h db.yourproject.supabase.co -U postgres -F c -b -v -f selective_backup.bak your_database --table=public.users

Điều này giúp tiết kiệm không gian lưu trữ và tăng tốc độ backup khi dữ liệu lớn.

Quảng cáo

300x250 In-Content Advertisement

Các cách restore dữ liệu trên Supabase

1. Restore từ PITR

Như đã đề cập, Supabase cho phép khôi phục database về một thời điểm cụ thể trong 7 ngày. Đây là cách nhanh nhất khi bạn cần khôi phục toàn bộ dữ liệu.

2. Restore từ file backup thủ công

Nếu bạn có file backup từ pg_dump, bạn có thể restore bằng pg_restore:

pg_restore -h db.yourproject.supabase.co -U postgres -d your_database backup.bak

Lưu ý, database đích phải được tạo trước và trống. Nếu muốn merge dữ liệu, bạn cần thực hiện các bước xử lý thủ công để tránh trùng lặp.

3. Restore chọn lọc

Với file backup đầy đủ, bạn vẫn có thể restore chỉ một vài bảng:

pg_restore -h db.yourproject.supabase.co -U postgres -d your_database backup.bak --table=public.users

Điều này hữu ích khi bạn chỉ muốn khôi phục một phần dữ liệu mà không ảnh hưởng đến phần còn lại.

Mẹo thực tế để backup và restore hiệu quả

- Tự động hóa: Sử dụng GitHub Actions hoặc cron job để tự động backup dữ liệu ra một bucket lưu trữ an toàn (như AWS S3, Google Cloud Storage). - Kiểm tra định kỳ: Định kỳ thử restore từ file backup để đảm bảo dữ liệu không bị hỏng và quy trình hoạt động trơn tru. - Mã hóa: Nếu dữ liệu nhạy cảm, hãy mã hóa file backup trước khi lưu trữ ở bên ngoài. - Ghi log: Lưu lại lịch sử backup và restore, bao gồm thời gian, file, và người thực hiện, để dễ dàng truy vết khi cần.

Kết luận

Backup và restore dữ liệu không chỉ là biện pháp phòng ngừa rủi ro, mà còn là kỹ năng cần thiết để duy trì sự ổn định cho ứng dụng. Supabase cung cấp cả giải pháp tự động lẫn thủ công, giúp bạn linh hoạt trong mọi tình huống. Hãy xây dựng quy trình backup định kỳ, kiểm tra khả năng khôi phục, và luôn sẵn sàng ứng phó khi sự cố xảy ra.

Quảng cáo

728x90 Bottom Advertisement

Thay thế bằng mã Google AdSense

Chia sẻ bài viết

Facebook Twitter

Bình luận

Chia sẻ ý kiến của bạn về bài viết này

Viết bình luận

Bình luận của bạn sẽ được kiểm duyệt trước khi hiển thị

Chưa có bình luận nào

Hãy là người đầu tiên bình luận về bài viết này!