คำตอบ:
การใช้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
ที่มา: http://www.mongodb.org/display/DOCS/Import+Export+Tools
เมื่อต้องการดัมพ์ฐานข้อมูลของคุณสำหรับการสำรองข้อมูลคุณเรียกใช้คำสั่งนี้บนเทอร์มินัลของคุณ
mongodump --db database_name --collection collection_name
ในการนำเข้าไฟล์สำรองข้อมูลของคุณไปยัง mongodb คุณสามารถใช้คำสั่งต่อไปนี้บนเทอร์มินัลของคุณ
mongorestore --db database_name path_to_bson_file
คุณยังสามารถใช้gzip
สำหรับการสำรองข้อมูลหนึ่งคอลเลกชันและบีบอัดข้อมูลสำรองได้ทันที:
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
หรือด้วยวันที่ในชื่อไฟล์:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
อัปเดต:
สำรองข้อมูลคอลเลกชันทั้งหมดของฐานข้อมูลในโฟลเดอร์วันที่ ไฟล์ถูก gziped:
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
หรือสำหรับที่เก็บถาวรเดียว:
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
หรือเมื่อ Mongodb ทำงานอยู่ใน Docker:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
mongodump
ขึ้นไปคุณสามารถใช้--gzip
ตัวเลือกในการทำเช่นนั้นmongodump_manpageและตัวเลือกเดียวกันสำหรับmongorestore
คำสั่งนี้จะทำการดัมพ์ของฐานข้อมูลที่กำหนดในรูปแบบ json และ bson
mongodump -d <database name> -o <target directory>
มีโปรแกรมอรรถประโยชน์ที่เรียกว่า: mongodump บนบรรทัดคำสั่ง mongo คุณสามารถพิมพ์:
>./mongodump
ด้านบนจะสร้างดัมพ์ของฐานข้อมูลทั้งหมดบนโลคัลโฮสต์ของคุณ หากต้องการดัมพ์ของคอลเล็กชันเดี่ยวให้ใช้:
./mongodump --db blog --collection posts
ดูที่: mongodump
คุณต้องเปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบในโฟลเดอร์ที่ติดตั้ง Mongo ของคุณ (ในกรณีของฉัน: C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin) หากคุณต้องการถ่ายโอนฐานข้อมูลทั้งหมดของคุณคุณสามารถใช้:
mongodump --db database_name
คุณมีความเป็นไปได้ที่จะถ่ายโอนเฉพาะบางคอลเล็กชันหรือเพื่อถ่ายโอนทั้งหมดยกเว้นบางคอลเล็กชัน
หากคุณต้องการดัมพ์เพียงหนึ่งคอลเล็กชัน (ตัวอย่างเช่นผู้ใช้):
mongodump --db database_name --collection users
หากคุณต้องการดัมพ์ทั้งหมดยกเว้นการรวบรวมผู้ใช้:
mongodump --db database_name --excludeCollection=users
นอกจากนี้ยังสามารถส่งออกการถ่ายโอนข้อมูลไปยังไฟล์เก็บถาวร:
mongodump --archive=test.archive --db database_name
สำรอง / กู้คืน Mongodb ด้วยเวลา
สำรอง:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
--db
อาร์กิวเมนต์สำหรับชื่อ databse
--out
อาร์กิวเมนต์สำหรับเส้นทางของผลลัพธ์
Restore:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--drop
อาร์กิวเมนต์สำหรับการปล่อยข้อมูลก่อนที่จะกู้คืน
เวลา:
คุณสามารถใช้crontabเพื่อสำรองเวลา:
sudo crontab -e
มันเปิดด้วยเครื่องมือแก้ไข (เช่น nano)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
สำรองข้อมูลทุกวันเวลา 03:03 น
ทั้งนี้ขึ้นอยู่กับขนาดฐานข้อมูล MongoDB ของคุณคุณอาจหมดพื้นที่ดิสก์ที่มีการสำรองข้อมูลมากเกินไป นั่นเป็นสาเหตุที่แนะนำให้ล้างข้อมูลสำรองเก่าเป็นประจำหรือบีบอัดข้อมูล ตัวอย่างเช่นหากต้องการลบข้อมูลสำรองทั้งหมดที่เก่ากว่า 7 วันคุณสามารถใช้คำสั่ง bash ต่อไปนี้:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
ลบข้อมูลสำรองทั้งหมดที่เก่ากว่า 7 วัน
โชคดี.
คุณสามารถดัมพ์ฐานข้อมูลของคุณและเรียกคืนด้วยคำสั่งร้อง
mongodb -d <Your_db_name> -o <path of your folder>
ตัวอย่างเช่นชื่อฐานข้อมูลของฉันคือการติดตามฉันมีการถ่ายโอนข้อมูลในโฟลเดอร์การถ่ายโอนข้อมูล
mongodb -d tracking -o dump
กำลังกู้คืนดัมพ์
mongorestore -d <databasename> <dum_path>
mongorestore -d tracking dump/tracking
คำสั่งต่อไปนี้เชื่อมต่อกับรีโมตเซิร์ฟเวอร์เพื่อดัมพ์ฐานข้อมูล:
<> params เผื่อเลือกใช้พวกมันหากคุณต้องการ
ส่งออกไปยังโฟลเดอร์ที่สร้างขึ้นด้วยชื่อ
mongodump - โฮสต์ - พอร์ต - ชื่อผู้ใช้ - db --ssl - รหัสผ่าน - ออก _ วันที่ + "% Y-% m-% d"
cmd ->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
หากฐานข้อมูลของคุณอยู่ในระบบโลคอล จากนั้นให้คุณพิมพ์คำสั่งด้านล่าง สำหรับเทอร์มินัล Linux
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
หากมีผู้ใช้ฐานข้อมูลและรหัสผ่านอยู่ด้านล่างคุณต้องใช้รหัส
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
สิ่งนี้ทำงานได้ดีมากในสถานี Linux ของฉัน
เพื่อการส่งออก
mongodump -d <database name> <backup-folder>
เพื่อนำเข้า
mongorestore -d <database name> <backup-folder>
คำสั่งด้านล่างจะทำงานเพื่อถ่ายโอนข้อมูล Mongo db
mongodump -d -o
บน Windows: ลองอันนี้โดยที่ c: \ mongodump เป็นที่ตั้งของไฟล์ดัมพ์มันจะสร้างข้อมูลเมตาใน json และสำรองในรูปแบบ bson
C: \ MongoDB \ bin> mongodump -d -oc: \ mongodump
หรือคุณสามารถสร้างสคริปต์สำรองบน Windows อย่าลืมเพิ่ม Winrar ไปที่% 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 ดัมพ์และกู้คืนด้วย uri เป็นโลคัล
mongodump --uri "mongodb: // USERNAME: PASSWORD @ IP_OR_URL: PORT / DB_NAME" - colcolion COLLECTION_NAME -o LOCAL_URL
หากคุณไม่ได้ระบุ --colletion COLLECTION_NAME จะเป็นการถ่ายโอนฐานข้อมูลทั้งหมด
ทำการสำรองข้อมูล mongodb สำหรับฐานข้อมูลเฉพาะและลบข้อมูลสำรอง 7 วันโดยใช้คำสั่ง 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
Use -v to see progress of backup data
mongodump -v --db dbname --out /pathforbackup/NewFolderforBackupData
you can use it for restore also
mongorestore -v --db dbname --drop /pathforbackup/NewFolderforBackupData/dbname
with multile v like -vvvv you will get more information
ใช้"เส้นทาง"สำหรับ windows มิฉะนั้นจะให้ข้อผิดพลาดเป็น: ไม่อนุญาตให้มีการขัดแย้งกับตำแหน่ง
mongodump -h ชื่อโฮสต์ -u dbusername -p dbpassword - db dbname - พอร์ต portnumber - ออก / เส้นทาง / โฟลเดอร์
mongodump -h ชื่อโฮสต์ -u dbusername -p dbpassword - db dbname - พอร์ต portnumber --out /path/folder.gz
mongodump
ไม่มีธงและคุณจะได้รับโฟลเดอร์การถ่ายโอนข้อมูล