Ok mọi người, lại đến lúc kể mấy câu chuyện hấp dẫn rồi đây. Không đùa đâu nhé! Hãy tưởng tượng database của bạn giống như một cuốn sách chứa thông tin quý giá. Nếu bạn lỡ tay xé mất vài trang hoặc bị rồng (hay ổ cứng tự dưng "lăn ra chết" đúng lúc quan trọng) thiêu rụi thì sao? Dù là thật hay tưởng tượng, bạn đều sẽ mất dữ liệu. Đó là lúc backup xuất hiện như một “dây an toàn” cho dữ liệu của bạn.
Sao lưu, hay nói đơn giản là tạo backup, là quá trình lưu trữ dữ liệu vào một file riêng biệt hoặc nơi khác, để khi có sự cố bất ngờ thì có thể khôi phục lại.
Backup giống như bảo hiểm cho trường hợp mọi thứ đi sai hướng. Nó giúp bạn phục hồi dữ liệu sau khi phần cứng hoặc phần mềm gặp sự cố, rollback lại sau những lỗi kiểu như DELETE mà quên WHERE, hoặc chuyển database giữa các server — ví dụ từ development sang production. Ngoài ra, backup còn hay được dùng để lưu trữ dữ liệu cũ, phòng khi cần tra cứu lại hoặc giữ cho lịch sử. Không có backup, lúc nguy cấp bạn có thể trắng tay luôn đấy.
Những rủi ro mất dữ liệu
Cùng nói về những nguy hiểm thực sự có thể “xóa sổ” dữ liệu của bạn. Không đùa đâu! Dưới đây là vài ví dụ chắc chắn khiến bất kỳ admin database nào cũng phải toát mồ hôi lạnh:
Sự cố phần cứng. Ổ cứng hỏng, USB thất lạc, server đôi khi “nghỉ phép” luôn không báo trước.
Lỗi người dùng.
Khi dev vô tình chạy câu lệnh kiểu:
DELETE FROM students;
mà không có WHERE. Chúc mừng, bạn vừa xóa sạch toàn bộ sinh viên! (Hy vọng bạn không phải là admin database).
Tấn công độc hại.
Hacker có thể tấn công hệ thống, mã hóa hoặc xóa sạch dữ liệu của bạn.
Thiên tai.
Nghe như phim nhưng động đất hay lũ lụt hoàn toàn có thể “cuốn trôi” server của bạn.
Và tất nhiên, cảm giác an toàn không bao giờ là thừa. Tốt hơn hết là setup backup một lần còn hơn ngồi phục hồi database từ con số 0, vừa làm vừa cầu mong rồng trả lại dữ liệu cho bạn.
Các kịch bản chính khi dùng backup
Bây giờ bạn đã hiểu tại sao cần backup, cùng xem những tình huống điển hình mà backup thực sự cứu nguy nhé.
Khôi phục dữ liệu sau sự cố
Bạn đang làm việc thì bỗng dưng mọi thứ sập — database, server, internet. Crash! Không có backup thì chỉ biết ngồi nhớ xem lần cuối cùng dữ liệu được lưu là khi nào. Có backup rồi thì chỉ việc phục hồi lại hệ thống. Thường sẽ dùng bản copy dữ liệu được tạo trước khi sự cố xảy ra. Ví dụ:
- Server sập hoàn toàn. Bạn phục hồi toàn bộ database từ bản backup.
- Một vài bảng bị lỗi. Bạn chỉ cần phục hồi những bảng cần thiết.
Chuyển dữ liệu giữa các server
Giả sử bạn cần chuyển database từ server này sang server khác: ví dụ để nâng cấp phần cứng hoặc setup server mới. Lúc này backup là giải pháp nhanh gọn. Bạn tạo bản copy trên server cũ rồi bung ra trên server mới.
Ví dụ lệnh tạo backup cho database:
pg_dump -U postgres -d university -f university_backup.sql
Lệnh trên sẽ tạo file backup cho database university, có thể dùng để phục hồi trên server khác.
Lưu trữ dữ liệu lâu dài
Đôi khi bạn muốn giữ lại dữ liệu để phân tích hoặc lưu trữ lịch sử. Ví dụ, nếu bạn có đơn hàng của 10 năm trước, có thể chuyển dữ liệu cũ vào archive để giải phóng dung lượng cho database chính.
Cách này giúp:
- Tăng tốc độ cho database chính.
- Lưu trữ dữ liệu lịch sử quan trọng, phòng khi cần dùng lại.
Ví dụ thực tế backup đã cứu nguy
Dưới đây là vài câu chuyện đời thực để bạn thấy backup quan trọng thế nào:
Khôi phục sau tấn công hacker. Có lần một công ty bị virus tống tiền xóa sạch dữ liệu. Thứ duy nhất cứu họ là bản backup vừa tạo hôm trước. Nhờ vậy chỉ mất 2 tiếng downtime thay vì phá sản.
Lỗi của dev. (Ai mà nghĩ dev cũng sai nhỉ?) Một bạn sinh viên lỡ tay xóa bảng chứa dữ liệu luận văn. May mà có backup nên chỉ mất 10 phút là phục hồi xong.
Vậy là hết phần này rồi. Giờ bạn đã biết tại sao cần backup, backup giúp tránh rủi ro gì và nên tạo backup thường xuyên ra sao. Bài giảng tiếp theo sẽ đi sâu vào các loại backup và giúp bạn chọn loại phù hợp nhất cho mục đích của mình. Hẹn gặp lại ở bài sau nhé!
GO TO FULL VERSION