Câu trả lời:
Sử dụng mongodump
:
$ ./mongodump --host prod.example.com
connected to: prod.example.com
all dbs
DATABASE: log to dump/log
log.errors to dump/log/errors.bson
713 objects
log.analytics to dump/log/analytics.bson
234810 objects
DATABASE: blog to dump/blog
blog.posts to dump/log/blog.posts.bson
59 objects
DATABASE: admin to dump/admin
Nguồn: http://www.mongodb.org/display/DOCS/Import+Export+Tools
Để kết xuất cơ sở dữ liệu của bạn để sao lưu, bạn gọi lệnh này trên thiết bị đầu cuối của bạn
mongodump --db database_name --collection collection_name
Để nhập tệp sao lưu của bạn vào mongodb, bạn có thể sử dụng lệnh sau trên thiết bị đầu cuối của mình
mongorestore --db database_name path_to_bson_file
Bạn cũng có thể sử dụng gzip
để sao lưu một bộ sưu tập và nén sao lưu nhanh chóng:
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
hoặc có ngày tháng trong tên tệp:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
Cập nhật:
Sao lưu tất cả các bộ sưu tập của cơ sở dữ liệu trong một thư mục ngày. Các tập tin được nén lại:
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
Hoặc cho một kho lưu trữ duy nhất:
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
Hoặc khi mongodb đang chạy bên trong docker:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
mongodump
trở lên, bạn có thể sử dụng --gzip
tùy chọn để thực hiện điều đó: mongodump_manpage và tùy chọn tương tự cho mongorestore
Có một tiện ích gọi là: mongodump Trên dòng lệnh mongo bạn có thể gõ:
>./mongodump
Ở trên sẽ tạo ra một bãi chứa tất cả các cơ sở dữ liệu trên localhost của bạn. Để tạo kết xuất của một bộ sưu tập duy nhất, sử dụng:
./mongodump --db blog --collection posts
Có một cái nhìn tại: mongodump
Bạn cần mở dấu nhắc lệnh với tư cách quản trị viên trong thư mục cài đặt Mongo của bạn (trong trường hợp của tôi: C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin). Nếu bạn muốn kết xuất toàn bộ cơ sở dữ liệu của mình, bạn chỉ cần sử dụng:
mongodump --db database_name
Bạn cũng có khả năng kết xuất chỉ một số bộ sưu tập nhất định hoặc để đổ tất cả trừ (các) bộ sưu tập nhất định.
Nếu bạn muốn kết xuất chỉ một bộ sưu tập (ví dụ: người dùng):
mongodump --db database_name --collection users
Nếu bạn muốn kết xuất tất cả trừ bộ sưu tập người dùng:
mongodump --db database_name --excludeCollection=users
Cũng có thể xuất kết xuất thành tệp lưu trữ:
mongodump --archive=test.archive --db database_name
Sao lưu / Khôi phục Mongodb với thời gian.
Sao lưu:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
--db
đối số cho tên databse
--out
đối số cho đường dẫn đầu ra
Khôi phục:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--drop
đối số cho thả dữ liệu trước khi khôi phục
Thời gian:
Bạn có thể sử dụng crontab để sao lưu thời gian:
sudo crontab -e
Nó mở bằng trình chỉnh sửa (ví dụ nano)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
sao lưu mỗi ngày vào lúc 03:03 AM
Tùy thuộc vào kích thước cơ sở dữ liệu MongoDB của bạn, bạn có thể sắp hết dung lượng đĩa với quá nhiều bản sao lưu. Đó là lý do tại sao cũng nên thường xuyên dọn dẹp các bản sao lưu cũ hoặc nén chúng. Ví dụ: để xóa tất cả các bản sao lưu cũ hơn 7 ngày, bạn có thể sử dụng lệnh bash sau:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
xóa tất cả các bản sao lưu cũ hơn 7 ngày
Chúc may mắn.
Bạn có thể kết xuất cơ sở dữ liệu của mình và khôi phục bằng lệnh dưới đây
mongodb -d <Your_db_name> -o <path of your folder>
ví dụ tên cơ sở dữ liệu của tôi đang theo dõi tôi có kết xuất trong thư mục kết xuất
mongodb -d tracking -o dump
Khôi phục bãi chứa
mongorestore -d <databasename> <dum_path>
mongorestore -d tracking dump/tracking
Lệnh sau kết nối với máy chủ từ xa để kết xuất cơ sở dữ liệu:
<> params tùy chọn sử dụng chúng nếu bạn cần chúng
xuất ra một thư mục đã tạo có tên
mongodump --host --port - tên người dùng --db --ssl - mật khẩu --out _date + "% Y-% m-% d"
cmd ->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
Nếu cơ sở dữ liệu của bạn trong hệ thống địa phương. Sau đó, bạn gõ lệnh dưới đây. cho thiết bị đầu cuối Linux
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
Nếu người dùng cơ sở dữ liệu và mật khẩu ở đó thì bạn bên dưới mã.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
Điều này làm việc rất tốt trong thiết bị đầu cuối Linux của tôi.
Lệnh dưới đây sẽ hoạt động để kết xuất db mongo.
mongodump -d -o
Trên Windows: hãy thử cái này trong đó c: \ mongodump là vị trí tệp kết xuất, Nó sẽ tạo siêu dữ liệu trong json và sao lưu ở định dạng bson
C: \ MongoDB \ bin> mongodump -d -oc: \ mongodump
Hoặc bạn có thể tạo tập lệnh sao lưu trên Windows, hãy nhớ thêm Winrar vào% PATH%
bin\mongodump --db=COL1 -o D:\BACK\COL1
rar.exe a -ep1 -r COL1.rar COL1
rename COL1.rar "COL1_%date:~10,4%_%date:~7,2%_%date:~4,2%_%time:~0,2%_%time:~3,2%.rar"
#rmdir /s /q COL1 -> don;t run this on your mongodb/ dir !!!!!
Mongo đổ và khôi phục với uri đến địa phương
mongodump --uri "mongodb: // USERNAME: PASSWORD @ IP_OR_URL: PORT / DB_NAME" - bộ sưu tập COLLMENT_NAME -o LOCAL_URL
Nếu bạn không chỉ định --colletion COLLMENT_NAME, nó sẽ kết xuất toàn bộ DB.
lấy bản sao lưu mongodb cho db cụ thể và xóa bản sao lưu 7 ngày cũ bằng lệnh bin sh: -
#!/bin/bash
MONGO_DATABASE="nexgtv_16"
APP_NAME="test"
MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"
TIMESTAMP=`date +%F-%H%M`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/home/mongodbbackups/backups/$APP_NAME"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
$MONGODUMP_PATH -d $MONGO_DATABASE
mkdir -p $BACKUPS_DIR
mv dump $BACKUP_NAME
tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME
rm -rf $BACKUP_NAME
find /home/mongodbbackups/backups/test/ -mindepth 1 -mtime +7 -delete
sử dụng "đường dẫn" cho các cửa sổ. Khác nó đưa ra lỗi như: đối số vị trí không được phép
mongodump -h tên máy chủ -u dbusername -p dbpassword --db dbname - portnumber --out / path / thư mục
mongodump -h tên máy chủ -u dbusername -p dbpassword --db dbname - portnumber --out /path/folder.gz
mongodump
lá đơn mà không có bất kỳ cờ nào và bạn nhận được thư mục kết xuất