Veritabanımın MongoDB dökümünü nasıl oluştururum?


Yanıtlar:


82

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


4
Sonuçları tek bir sıkıştırılmış dosyaya koymak için bkz. Unix.stackexchange.com/questions/93139/…
Donal Lafferty

Mongodb sunucusunda veritabanı hangi yerde saklanacak?
space earth

157

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

2
Metadata.json'un geri yüklenmesi için önemi nedir?
Nabin

103

Ayrıca gzipbir 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

1
diyor: HATA: dosya ile ne yapacağımı bilmiyorum! Gunizpped ve denenmiş `` mongorestore - db db_name 'gunzipped dosya'
amitchhajer

2
yazım hatası: "-db" => "--db"
Vivien

7
3.2 mongodumpveya daha yüksek bir sürümde --gzipbunu yapmak için seçeneği kullanabilirsiniz : mongodump_manpage ve mongorestore
Boop


1
@Pyrejkee, yorum yapmak yerine bu şeyler için yeni sorular sorsan iyi olur. (pencerelerdeki tarih çok farklı)
r03

68

Bu komut verilen veritabanının dökümünü json ve bson biçiminde yapar.

mongodump -d <database name> -o <target directory>

14

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


11

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

10

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.

ref: https://www.digitalocean.com/community/tutorials/how-to-back-up-restore-and-migrate-a-mongodb-database-on-ubuntu-14-04


8

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

8

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

  • ana bilgisayar - ana bilgisayar adı bağlantı noktası
  • dinleme portu kullanıcı adı
  • db kullanıcı adı db
  • db adı ssl
  • güvenli bağlantı çıkışı
  • bir ad ile oluşturulan bir klasöre çıktı

    mongodump --host --port - kullanıcı adı --db --ssl --parola --out _date + "% Y-% m-% d"


Komut satırı seçeneklerini önerilen sorgu hatası ayrıştırma yukarıda çalıştırdıktan sonra bu hatayı almak isteyenler için: bilinmeyen seçenek "ssl". --Ssl dosyasını kaldırdıktan sonra yukarıdaki sorguyu çalıştırmayı deneyin. benim için çalıştı. teşekkürler.
Anurag_BEHS


2

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ı.


2

ihracat

mongodump -d <database name> <backup-folder>

ithal etmek

mongorestore -d <database name> <backup-folder>

1

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


0

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 !!!!!

0

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.


0

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

0
 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

0

pencereler için "yol" kullanın . Aksi takdirde hatayı şu şekilde verir: konumsal bağımsız değişkenlere izin verilmiyor


-4

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


1. mongodump - şartname hakkında girdi ihtiyacımızla birlikte bir mongo dökümü oluşturmak için bir komuttur. 2. -h, mongodb ana bilgisayar adınızı temsil eder. 3. -u mongodb kullanıcı adınızı temsil eder. 4. -p parolayı temsil eder. 5. --db dökümü almamız gereken veri tabanını temsil eder. 6. --port, mongounuzun çalıştığı portu temsil eder. 7. --out, adınızla dökümünüzün hedefini gösterir.
Anjankumar HN
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.