Yanıtlar:
Kullanım 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
Kaynak: http://www.mongodb.org/display/DOCS/Import+Export+Tools
Veritabanınızı yedekleme için dökmek için terminalinizde bu komutu çağırırsınız
mongodump --db database_name --collection collection_name
Yedekleme dosyanızı mongodb'a almak için terminalinizde aşağıdaki komutu kullanabilirsiniz
mongorestore --db database_name path_to_bson_file
Ayrıca gzip
bir koleksiyonun yedeğini almak ve yedeklemeyi anında sıkıştırmak için de kullanabilirsiniz :
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
veya dosya adında bir tarih bulunan:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
Güncelleme:
Bir tarih klasöründeki bir veritabanının tüm koleksiyonlarını yedekleyin. Dosyalar gziped edilir:
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
Veya tek bir arşiv için:
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
Veya mongodb liman işçisinin içinde çalışırken:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
mongodump
veya daha yüksek bir sürümde --gzip
bunu yapmak için seçeneği kullanabilirsiniz : mongodump_manpage ve mongorestore
Mongodump adlı bir yardımcı program vardır Mongo komut satırına şunu yazabilirsiniz:
>./mongodump
Yukarıdakiler, yerel ana makinenizdeki tüm veritabanlarının bir dökümünü oluşturacaktır. Tek bir koleksiyonu kullanmak için:
./mongodump --db blog --collection posts
Şuna bir bak: mongodump
Komut istemini Mongo'nuzun yüklü olduğu bir klasörde yönetici olarak açmanız gerekir (benim durumumda: C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin). Tüm veritabanınızı dökmek istiyorsanız, şunu kullanabilirsiniz:
mongodump --db database_name
Ayrıca, yalnızca belirli koleksiyon (lar) ı boşaltmak veya belirli koleksiyon (lar) hariç hepsini boşaltmak için olasılıklarınız vardır.
Yalnızca bir koleksiyon (örneğin kullanıcılar) dökümünü almak istiyorsanız:
mongodump --db database_name --collection users
Kullanıcı koleksiyonu dışında tümünü boşaltmak istiyorsanız:
mongodump --db database_name --excludeCollection=users
Dökümün bir arşiv dosyasına gönderilmesi de mümkündür:
mongodump --archive=test.archive --db database_name
Yedekleme / Geri yükleme ile Mongodb zamanlama.
Destek olmak:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
--db
veritabanı adı argümanı
--out
çıktı yolu argümanı
Onarmak:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--drop
geri yüklemeden önce drop databse için argüman
Zamanlama:
Yedekleme zamanlaması için crontab'ı kullanabilirsiniz :
sudo crontab -e
Editör ile açılır (örneğin nano)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
her gün 03:03
MongoDB veritabanı boyutlarınıza bağlı olarak, çok fazla yedeklemeyle disk alanınız tükenebilir. Bu nedenle eski yedeklemeleri düzenli olarak temizlemeniz veya sıkıştırmanız da önerilir. Örneğin, 7 günden eski tüm yedekleri silmek için aşağıdaki bash komutunu kullanabilirsiniz:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
7 günden eski tüm yedekleri sil
İyi şanslar.
Feryat komutuyla veritabanınızı dökebilir ve geri yükleyebilirsiniz
mongodb -d <Your_db_name> -o <path of your folder>
örneğin benim veritabanı adı izleme dökümü klasöründe dökümü var
mongodb -d tracking -o dump
Dökümü geri yükleme
mongorestore -d <databasename> <dum_path>
mongorestore -d tracking dump/tracking
Aşağıdaki komut, bir veritabanını dökmek için uzak sunucuya bağlanın:
<> isteğe bağlı params ihtiyacınız varsa onları kullanın
bir ad ile oluşturulan bir klasöre çıktı
mongodump --host --port - kullanıcı adı --db --ssl --parola --out _date + "% Y-% m-% d"
cmd ->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
Yerel sistemde veritabanınız varsa. Sonra aşağıdaki komutu yazın. Linux terminali için
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
Eğer veritabanı kullanıcısı ve şifresi varsa kodun altındasınız.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
Bu benim Linux terminalimde çok iyi çalıştı.
Aşağıdaki komut mongo db dökümü almak için çalışacaktır.
mongodump -d -o
Windows'ta: c: \ mongodump'ın döküm dosyası konumu olduğu yeri deneyin, json'da meta veriler oluşturur ve bson formatında yedekler
C: \ MongoDB \ bin> mongodump -d -oc: \ mongodump
Veya Windows'ta yedek komut dosyası oluşturabilir, Winrar'ı% PATH% 'a eklemeyi unutmayın.
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 dökümü ve uri ile yerel
mongodump --uri "mongodb: // KULLANICI ADI: PASSWORD @ IP_OR_URL: PORT / DB_NAME" - toplama COLLECTION_NAME -o LOCAL_URL
--Colletion COLLECTION_NAME belirtmezseniz, DB'nin tamamını boşaltır.
Belirli bir db için mongodb yedek al ve bin sh komutunu kullanarak 7 günlük yedeklemeyi sil: -
#!/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
pencereler için "yol" kullanın . Aksi takdirde hatayı şu şekilde verir: konumsal bağımsız değişkenlere izin verilmiyor
mongodump -h ana bilgisayar adı -u dbusername -p dbparola --db dbname - port bağlantı noktası numarası --out / path / folder
mongodump -h ana bilgisayar adı -u dbusername -p dbparola --db dbname - port bağlantı noktası numarası --out /path/folder.gz
mongodump
Herhangi bir bayrak olmadan sadece bir tek ve döküm klasörü olsun