Tại sao backup và restore database lại quan trọng?
Trong bất kỳ dự án nào sử dụng database, dữ liệu chính là tài sản quý giá nhất. Một sự cố nhỏ như xóa nhầm, lỗi ứng dụng, hoặc thậm chí tấn công có thể xóa sạch thông tin. Vì vậy, việc backup định kỳ và biết cách restore khi cần là kỹ năng không thể thiếu. Với Supabase, quá trình này được tích hợp sẵn và dễ thực hiện, giúp bảo vệ dữ liệu một cách hiệu quả.
Các cách backup database trên Supabase
Supabase cung cấp nhiều phương pháp để sao lưu dữ liệu, phù hợp với nhu cầu và quy mô dự án khác nhau.
Backup tự động (Point-in-time recovery - PITR)
Mỗi database trên Supabase đều được bật tính năng PITR theo mặc định. Điều này có nghĩa là mọi thay đổi dữ liệu đều được ghi lại, cho phép bạn khôi phục database về bất kỳ thời điểm nào trong vòng 7 ngày gần nhất. Bạn không cần cấu hình gì thêm—chỉ cần đảm bảo rằng dự án của bạn nằm trong gói hỗ trợ PITR.
Manual backup (Sao lưu thủ công)
Nếu bạn muốn tạo bản backup riêng biệt, Supabase cho phép xuất toàn bộ database dưới dạng file .sql. Để làm điều này, bạn có thể sử dụng công cụ dòng lệnh hoặc dashboard của Supabase. Cách đơn giản nhất là:
1. Truy cập dashboard dự án Supabase. 2. Chọn tab "Settings" → "Database". 3. Nhấn nút "Export", hệ thống sẽ tạo file backup và gửi link tải về email của bạn.
File này chứa toàn bộ schema và dữ liệu, giúp bạn dễ dàng khôi phục trên cùng hoặc một database khác.
Backup thông qua CLI (Command Line Interface)
Với người dùng quen thao tác dòng lệnh, bạn có thể backup database bằng lệnh pg_dump. Ví dụ:
pg_dump -h DB_HOST -U DB_USER -d DB_NAME -F c -b -v -f backup.dump
Thay thế các thông số bằng thông tin thực tế từ dashboard Supabase. File .dump này có thể lưu trữ cục bộ hoặc upload lên dịch vụ lưu trữ đám mây.
Cách restore database từ bản backup
Restore từ file .sql
Nếu bạn có file .sql từ dashboard hoặc tự export, bạn có thể restore bằng lệnh:
Quảng cáo
300x250 In-Content Advertisement
psql -h DB_HOST -U DB_USER -d DB_NAME -f backup.sql
Lưu ý: Database đích phải được tạo trước và trống.
Restore bằng pg_restore
Với file .dump từ pg_dump, sử dụng:
pg_restore -h DB_HOST -U DB_USER -d DB_NAME --clean --if-exists backup.dump
Tùy chọn --clean giúp xóa các bảng cũ trước khi restore, tránh xung đột.
Restore từ PITR
Nếu muốn khôi phục về thời điểm cụ thể, bạn có thể tạo database mới từ một timestamp trong quá khứ. Trên dashboard Supabase, chọn "Restore to point in time" và chọn thời điểm mong muốn. Supabase sẽ tự động tạo database mới từ bản backup đó.
Mẹo thực tế khi backup và restore
- Đặt lịch backup định kỳ: Dùng cron job hoặc GitHub Actions để tự động export database và upload lên S3, Google Cloud Storage. - Kiểm tra backup: Thỉnh thoảng thử restore vào database test để đảm bảo file backup không bị hỏng. - Mã hóa dữ liệu nhạy cảm: Nếu backup chứa thông tin cá nhân, hãy mã hóa file trước khi lưu trữ. - Lưu trữ nhiều nơi: Không nên chỉ giữ backup ở một vị trí; phân tán giúp tránh mất mát do sự cố. - Ghi lại quy trình: Tài liệu hóa từng bước restore giúp tiết kiệm thời gian khi cần xử lý khẩn cấp.
Kết luận
Backup và restore database không chỉ là biện pháp phòng ngừa, mà còn là kỹ năng cần thiết để duy trì sự ổn định cho mọi dự án. Supabase giúp đơn giản hóa quy trình này với PITR tích hợp, công cụ export/import trực quan, và hỗ trợ CLI mạnh mẽ. Bằng cách thiết lập lịch backup, kiểm tra định kỳ, và lưu trữ an toàn, bạn sẽ chủ động bảo vệ dữ liệu trước mọi rủi ro. Hãy bắt đầu từ hôm nay—vì một sự cố nhỏ cũng có thể gây ra hậu quả lớn nếu không có backup.