Một số lệnh thông dụng khi sử dụng mongodb - sao lưu và phục hồi dữ liệu với mongodb

Pham Kha
18:34 08-07-2023
7065

MongoDB là gì?

Hiện nay mongodb đang được sử dụng rộng rải vì tốc độ truy xuất dữ liệu nhanh, tính tùy biến dữ liệu vì nó là NoSql database. MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh.

Các lệnh thường dùng

Khởi động mongodb shell

Từ cửa sổ lệnh của ssh chúng ta gõ lệnh "mongo" để khởi động mongodb shell

mongo
// nếu sử dụng mongodb > 6
mongosh

Tạo database mongodb

use Database_name

Database_name là tên của database muốn tạo.

Xóa database mongodb

Để xóa được database của mongodb chúng ta cần sử dụng những lệnh sau:

use Database_name
db.dropDatabase()

Sao lưu database mongodb

Ở lệnh sao lưu database của mongodb chúng ta không cần phải vào mongodb shell mà sử dụng trực tiếp ở cửa sổ lệnh terminal.

Quảng cáo

mongodump --db Database_name --out /var/backups/mongobackups  
//or
mongodump --db Database_name  --gzip --archive >  dump_`date "+%Y-%m-%d"`.gz
//hoặc khi có yêu cầu đăng nhập
mongodump --host 127.0.0.1 --port 27017 --db name_database --authenticationDatabase admin --username admin --password yourpassword --out /root/dump

Khôi phục database mongodb

Ở đây bạn nên kết hợp với lệnh xóa database của mongodb trước để tránh lỗi xảy ra nhé. Thực hiên ngoài terminal.

mongorestore --db Database_name --verbose /path_backup

Hiển thị toàn bộ database mongodb hiện có

show dbs

Đăng nhập bằng tải khoản và mật khẩu cho mongodb, giúp bảo mật cho mogodb khi kết nối từ xa

Thông thường khi cài mongodb thì chỉ cho phép kết nối dữ liệu ở máy chủ, nếu bạn muốn có thể truy cập mongodb từ xa, hoặc kết nối với các website khác thì bạn cần làm theo những bước sau:

mongod --auth
db.createUser({user:"admin_name", pwd:"1234", roles:["readWrite","dbAdmin"]})
db.auth("admin_name", "1234")
//==> kết quả bằng 1 là kiểm tra user mới tạo thành công
//còn 
//Error: Authentication failed. là lỗi đăng nhập sai
//0

trong đó dbAdmin là tên database cần thêm user vào

Tiếp theo bạn cần chỉnh lại config của mongodb

sudo nano /etc/mongod.conf

Tìm dòng #auth và xoá dấu thăng phí trước đi

auth=true
// hoặc security.authorization : enabled

Cuối cùng chúng ta restart lại dịch vụ mongodb là được

sudo service mongod restart

Cho phép ip bên ngoài có thể truy cập mongodb (quyền truy cập mongodb từ xa)

Nếu bạn đang sử dụng ubuntu, thì chúng ta cần báo cho ufw biết là cho phép tất cả các truy cập đến port 27017 

sudo ufw allow from ip_cua_may_muon_ket_noi to any port 27017
//ví dụ: sudo ufw allow from 223.211.199.23 to any port 27017

Chỉnh lại config của mongodb "sudo nano /etc/mongod.conf"

//etc/mongod.conf
. . .
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

. . .

thay thành

. . .
# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1,ip_may_chu // hoặc thay thành 0.0.0.0 để cho phép tất cả ip có thể truy cập

. . .

Lưu ý: ip_may_chu là ip của máy chủ (vps) chứ không phải là ip của máy muốn truy cập từ xa

Cuối cùng là khởi động lại dịch vụ mongodb

sudo systemctl restart mongod

Kiểm tra kết nối đến máy chủ mongodb, ở máy khách chúng ta sẽ gõ lênh như sau:

mongo "mongodb://mongo_server_ip:27017" //<-- đối vơi máy chủ không cần tài khoản và mật khẩu
mongo "mongodb://mongo_server_ip:27017" -u username -p //<-- đối với máy chủ yêu cầu xác thực tài khoản
//đối với phiên bản mới 
mongosh "mongodb://mongo_server_ip:27017" 
mongosh "mongodb://mongo_server_ip:27017" -u username -p 

 

Bài viết mới