Jawaban:
Gunakan 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
Sumber: http://www.mongodb.org/display/DOCS/Import+Export+Tools
Untuk membuang basis data Anda untuk cadangan, Anda memanggil perintah ini di terminal Anda
mongodump --db database_name --collection collection_name
Untuk mengimpor file cadangan Anda ke mongodb Anda dapat menggunakan perintah berikut di terminal Anda
mongorestore --db database_name path_to_bson_file
Anda juga dapat menggunakan gzip
untuk mengambil cadangan satu koleksi dan mengompresi cadangan dengan cepat:
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
atau dengan tanggal pada nama file:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
Pembaruan:
Cadangkan semua koleksi database di folder tanggal. File-file tersebut di-gzip:
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
Atau untuk arsip tunggal:
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
Atau ketika mongodb berjalan di dalam docker:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
mongodump
atau lebih tinggi, Anda dapat menggunakan --gzip
opsi untuk melakukan itu: mongodump_manpage dan opsi yang sama untuk mongorestore
Ada utilitas bernama: mongodump Di baris perintah mongo Anda bisa mengetik:
>./mongodump
Di atas akan membuat dump semua database di localhost Anda. Untuk membuat dump dari satu koleksi gunakan:
./mongodump --db blog --collection posts
Lihatlah: mongodump
Anda perlu membuka command prompt sebagai administrator di folder tempat Mongo Anda diinstal (dalam kasus saya: C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin). Jika Anda ingin membuang seluruh database Anda, Anda bisa menggunakan:
mongodump --db database_name
Anda juga memiliki kemungkinan untuk membuang hanya koleksi tertentu, atau untuk membuang semua kecuali koleksi tertentu.
Jika Anda ingin membuang hanya satu koleksi (misalnya pengguna):
mongodump --db database_name --collection users
Jika Anda ingin membuang semua kecuali koleksi pengguna:
mongodump --db database_name --excludeCollection=users
Dimungkinkan juga untuk menampilkan dump ke file arsip:
mongodump --archive=test.archive --db database_name
Cadangkan / Kembalikan Mongodb dengan timing.
Cadangkan:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
--db
argumen untuk nama databse
--out
argumen untuk jalur output
Mengembalikan:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--drop
argumen untuk drop databse sebelum mengembalikan
Pengaturan waktu:
Anda dapat menggunakan crontab untuk pencadangan waktu:
sudo crontab -e
Itu dibuka dengan editor (misalnya nano)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
backup setiap hari pukul 03:03 pagi
Bergantung pada ukuran database MongoDB Anda, Anda mungkin segera kehabisan ruang disk dengan terlalu banyak cadangan. Karena itu disarankan untuk membersihkan cadangan lama secara rutin atau mengompresnya. Misalnya, untuk menghapus semua cadangan yang lebih lama dari 7 hari Anda dapat menggunakan perintah bash berikut:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
hapus semua cadangan yang lebih lama dari 7 hari
Semoga berhasil.
Anda dapat membuang database Anda dan memulihkan dengan perintah di bawah ini
mongodb -d <Your_db_name> -o <path of your folder>
misalnya nama database saya melacak saya punya dump di folder dump
mongodb -d tracking -o dump
Mengembalikan dump
mongorestore -d <databasename> <dum_path>
mongorestore -d tracking dump/tracking
Perintah berikut terhubung ke server jarak jauh untuk membuang database:
<> params opsional menggunakannya jika Anda membutuhkannya
output ke folder yang dibuat dengan nama
mongodump --host --port --username --db --ssl --password --out _date + "% Y-% m-% d"
cmd ->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
Jika database Anda di sistem lokal. Kemudian Anda mengetik perintah di bawah ini. untuk terminal Linux
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
Jika pengguna basis data dan kata sandi ada di sana maka Anda di bawah kode.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
Ini bekerja sangat baik di terminal Linux saya.
Perintah di bawah ini akan berfungsi untuk mengambil dump mongo db.
mongodump -d -o
Di Windows: coba yang ini di mana c: \ mongodump adalah lokasi file dump, Ini akan membuat metadata di json, dan cadangan dalam format bson
C: \ MongoDB \ bin> mongodump -d -oc: \ mongodump
Atau Anda dapat membuat skrip cadangan di Windows, jangan lupa menambahkan Winrar ke% 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 membuang dan mengembalikan dengan uri ke lokal
mongodump --uri "mongodb: // USERNAME: PASSWORD @ IP_OR_URL: PORT / DB_NAME" --koleksi COLLECTION_NAME -o LOCAL_URL
Jika Anda tidak menentukan --colletion COLLECTION_NAME, itu akan membuang seluruh DB.
mengambil cadangan mongodb untuk db tertentu dan menghapus cadangan 7 hari menggunakan perintah 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
gunakan "path" untuk windows. Jika tidak maka akan memberikan kesalahan sebagai: argumen posisi tidak diperbolehkan
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
tanpa bendera dan Anda mendapatkan folder dump