जवाबों:
उपयोग करें 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
अपनी बैकअप फ़ाइल को मोंगोडब में आयात करने के लिए आप अपने टर्मिनल पर निम्न कमांड का उपयोग कर सकते हैं
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
या जब मोंगोडब docker के अंदर चल रहा हो:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
mongodump
या उससे अधिक के संस्करण में आप ऐसा करने के लिए --gzip
विकल्प का उपयोग कर सकते हैं : mongodump_manpage और mongorestore के
एक उपयोगिता है जिसे कहा जाता है: mongodump मोंगो कमांड लाइन पर आप टाइप कर सकते हैं:
>./mongodump
उपरोक्त आपके लोकलहोस्ट पर सभी डेटाबेस का एक डंप बनाएगा। एकल संग्रह उपयोग का डंप बनाने के लिए:
./mongodump --db blog --collection posts
पर एक नज़र: mongodump
आपको उस फ़ोल्डर में एक व्यवस्थापक के रूप में कमांड प्रॉम्प्ट खोलने की आवश्यकता है जहां आपका मैंगो स्थापित है (मेरे मामले में: 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
डेटाबसे नाम के लिए तर्क
--out
आउटपुट के पथ के लिए तर्क
पुनर्स्थापित करें:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--drop
पुनर्स्थापना से पहले ड्रॉप डेटास के लिए तर्क
समय:
आप समय बैकअप के लिए crontab का उपयोग कर सकते हैं :
sudo crontab -e
यह संपादक के साथ खुलता है (उदाहरण के लिए नैनो)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
बैकअप हर दिन 03:03 बजे
अपने MongoDB डेटाबेस आकारों के आधार पर आप बहुत अधिक बैकअप के साथ जल्द ही डिस्क स्थान से बाहर निकल सकते हैं। इसलिए पुराने बैकअप को नियमित रूप से साफ करने या उन्हें संपीड़ित करने की भी सिफारिश की जाती है। उदाहरण के लिए, 7 दिनों से पुराने सभी बैकअप को हटाने के लिए आप निम्नलिखित बैश कमांड का उपयोग कर सकते हैं:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
7 दिनों से पुराने सभी बैकअप को हटा दें
शुभ लाभ।
आप अपने डेटाबेस को डंप कर सकते हैं और bellow कमांड के साथ रिस्टोर कर सकते हैं
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
डेटाबेस को डंप करने के लिए रिमोट सर्वर से कमांड के बाद निम्नलिखित कार्य करें:
<> यदि आपको उनकी आवश्यकता है तो वैकल्पिक परमर्स उनका उपयोग करते हैं
एक नाम से बनाए गए फ़ोल्डर में आउटपुट
mongodump --host --port --username --db --ssl --password --out _date + "% Y-% m-% d"
सीएमडी ->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
यदि आपका डेटाबेस लोकल सिस्टम में है। फिर आप निचे कमांड टाइप करे। लिनक्स टर्मिनल के लिए
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
अगर डेटाबेस यूजर और पासवर्ड हैं तो आप कोड के नीचे।
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
यह मेरे लिनक्स टर्मिनल में बहुत अच्छा काम करता है।
नीचे कमांड mongo db का डंप लेने का काम करेगी।
मोंगोडम्प -d -o
विंडोज पर: यह कोशिश करें जहां c: \ mongodump डंप फ़ाइल लोकेशन है, यह json में मेटाडेटा और bson प्रारूप में बैकअप बनाएगा
C: \ MongoDB \ bin> मोंगोडम्प -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 !!!!!
मानगो डंप और स्थानीय लोगों के लिए यूरी के साथ बहाल
mongodump --uri "mongodb: // USERNAME: PASSWORD @ IP_OR_URL: PORT / DB_NAME" - रंग COLLECTION_NAME -o LOCAL_URL
यदि आप --colletion COLLECTION_NAME को निर्दिष्ट नहीं करते हैं, तो यह संपूर्ण DB को डंप कर देगा।
विशेष db के लिए मैंगोडब बैकअप लें और बिन श कमांड के उपयोग के 7 दिन पुराना बैकअप हटा दें: -
#!/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
खिड़कियों के लिए "पथ" का उपयोग करें । इसके बजाय यह त्रुटि देता है: स्थितिगत तर्क अनुमति नहीं है
mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out / path / folder
mongodump -h hostname -u dbusername -p dbpassword --db dbname --port portnumber --out /path/folder.gz
mongodump
बिना किसी झंडे के बस एक सिंगल और आपको डंप फ़ोल्डर मिलता है