Trong bài viết này, mình sẽ chỉ cho anh em cách dùng các công cụ có sẵn như mongodump, mongoexport, và một số cách khác để giúp backup dữ liệu hoàn toàn miễn phí và dễ dàng. Let’s go!

Hello anh em,


Nếu anh em đang sử dụng tài khoản free MongoDB Atlas để làm việc cho các dự án cá nhân, học tập mà không muốn tốn tiền nâng cấp lên các gói trả phí chỉ để sử dụng tính năng backup, thì đừng lo. Hôm nay, mình sẽ hướng dẫn anh em cách backup dữ liệu từ MongoDB Atlas về máy tính local mà không cần phải upgrade tài khoản tốn tiền mà nhu cầu không cần đến.


Bước 1: Cài Đặt MongoDB Tools


Để thực hiện các bước backup, anh em cần cài bộ công cụ MongoDB Database Tools. Bộ này gồm các tool hỗ trợ đầy đủ cho việc backup và thao tác với MongoDB qua command line.



  • Cài đặt và kiểm tra bằng lệnh sau trên terminal hoặc command prompt:


mongodump --version
mongoexport --version


Nếu trả về số phiên bản của các công cụ trên thì anh em đã cài đặt thành công MongoDB Tools rồi.


Bước 2: Lấy Thông Tin Kết Nối MongoDB Atlas


Để kết nối tới MongoDB Atlas, anh em cần connection string của cluster:


1. Truy cập MongoDB Atlas và chọn Clusters.


2. Nhấn Connect > Connect your application > copy connection string kiểu mongodb+srv://<username>:<password>@cluster0.mongodb.net/test.


Nhớ thay <username>, <password>, và tên cluster theo thông tin của mình nhé.


Bước 3: Thực hiện lệnh backup dữ liệu:


Cách 1: Backup Bằng mongodump


mongodump là công cụ mạnh mẽ và đơn giản nhất để backup toàn bộ database.


mongodump --uri="mongodb+srv://<username>:<password>@cluster0.mongodb.net/mydatabase" --out="/path/to/backup"


Lệnh này sẽ tạo bản backup cho toàn bộ database mydatabase và lưu vào thư mục chỉ định.


Cách 2: Backup Bằng mongoexport


Nếu anh em chỉ muốn backup từng collection và lưu dưới dạng CSV hoặc JSON, thì có thể dùng lệnh mongoexport.


Ví dụ, backup collection users từ database mydatabase và lưu dưới dạng JSON:

mongoexport --uri="mongodb+srv://<username>:<password>@cluster0.mongodb.net/mydatabase" --collection=users --out="/path/to/backup/users.json"


Hoặc nếu anh em muốn lưu dưới dạng CSV:

mongoexport --uri="mongodb+srv://<username>:<password>@cluster0.mongodb.net/mydatabase" --collection=users --type=csv --fields="name,email,age" --out="/path/to/backup/users.csv"


  • --type=csv: Chỉ định định dạng CSV.


  • --fields: Xác định các cột mà anh em muốn export.


Cách 3: Sử Dụng mongooplog cho Backup Incremental


Nếu anh em cần backup incremental (chỉ backup những thay đổi từ một thời điểm nhất định), anh em có thể dùng mongooplog để sao lưu các thay đổi từ oplog của MongoDB.


mongooplog --from "mongodb+srv://<username>:<password>@cluster0.mongodb.net" --out="/path/to/oplog-backup"


Lệnh này giúp anh em backup chỉ những thay đổi trong quá trình vận hành, hữu ích cho những dự án yêu cầu backup thường xuyên.


Bước 4: Phục Hồi Dữ Liệu (Restore)


Để phục hồi dữ liệu từ bản backup, anh em có thể dùng:


1. mongorestore cho backup từ mongodump:


mongorestore --uri="mongodb+srv://<username>:<password>@cluster0.mongodb.net/mydatabase" /path/to/backup/mydatabase


2. Import lại từ JSON hoặc CSV với mongoimport:


mongoimport --uri="mongodb+srv://<username>:<password>@cluster0.mongodb.net/mydatabase" --collection=users --file="/path/to/backup/users.json" --jsonArray


Lệnh này sẽ import lại collection users từ file JSON.


Kết Luận


Backup database MongoDB Atlas có nhiều cách thực hiện mà không cần phải nâng cấp tài khoản. Anh em có thể linh hoạt sử dụng mongodump để backup toàn bộ dữ liệu hoặc mongoexport để backup theo định dạng mà mình mong muốn. Ngoài ra, mongooplog cũng là lựa chọn tuyệt vời cho việc backup incremental nếu anh em cần sự linh động hơn.


Hy vọng bài viết này sẽ giúp anh em dễ dàng hơn trong việc backup và bảo vệ dữ liệu của mình. Nếu có thắc mắc, cứ comment hoặc nhắn tin cho mình nhé!


Chúc anh em thành công!