Odpowiedzi:
Zastosowanie 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
Źródło: http://www.mongodb.org/display/DOCS/Import+Export+Tools
Aby zrzucić bazę danych w celu wykonania kopii zapasowej, wywołaj to polecenie na swoim terminalu
mongodump --db database_name --collection collection_name
Aby zaimportować plik kopii zapasowej do mongodb, możesz użyć następującego polecenia na swoim terminalu
mongorestore --db database_name path_to_bson_file
Możesz również użyć gzip
do tworzenia kopii zapasowej jednej kolekcji i kompresowania kopii zapasowej w locie:
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
lub z datą w nazwie pliku:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
Aktualizacja:
wykonaj kopię zapasową wszystkich kolekcji bazy danych w folderze daty. Pliki są zgzipowane:
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
Lub dla pojedynczego archiwum:
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
Lub gdy mongodb działa wewnątrz dockera:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
mongodump
lub wyższej możesz użyć --gzip
opcji, aby to zrobić: mongodump_manpage i ta sama opcja dla mongorestore
Istnieje narzędzie o nazwie: mongodump W wierszu poleceń mongo możesz wpisać:
>./mongodump
Powyższe spowoduje utworzenie zrzutu wszystkich baz danych na twoim hoście lokalnym. Aby zrobić zrzut pojedynczej kolekcji, użyj:
./mongodump --db blog --collection posts
Zobacz: mongodump
Musisz otworzyć wiersz polecenia jako administrator w folderze, w którym jest zainstalowane Twoje Mongo (w moim przypadku: C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin). Jeśli chcesz zrzucić całą bazę danych, możesz po prostu użyć:
mongodump --db database_name
Masz również możliwość zrzucenia tylko niektórych kolekcji lub wszystkich kolekcji oprócz niektórych.
Jeśli chcesz zrzucić tylko jedną kolekcję (na przykład użytkowników):
mongodump --db database_name --collection users
Jeśli chcesz zrzucić całą kolekcję oprócz użytkowników:
mongodump --db database_name --excludeCollection=users
Możliwe jest również zapisanie zrzutu do pliku archiwum:
mongodump --archive=test.archive --db database_name
Kopia zapasowa / przywracanie Mongodb z synchronizacją.
Utworzyć kopię zapasową:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
--db
argument dla nazwy bazy danych
--out
argument dla ścieżki wyjścia
Przywracać:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
--drop
argument za usunięciem bazy danych przed przywróceniem
Wyczucie czasu:
Możesz użyć crontab do tworzenia kopii zapasowych czasu:
sudo crontab -e
Otwiera się w edytorze (np. Nano)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
kopia zapasowa codziennie o 03:03
W zależności od rozmiarów bazy danych MongoDB może wkrótce zabraknąć miejsca na dysku z zbyt dużą liczbą kopii zapasowych. Dlatego też zaleca się regularne czyszczenie starych kopii zapasowych lub ich kompresję. Na przykład, aby usunąć wszystkie kopie zapasowe starsze niż 7 dni, możesz użyć następującego polecenia bash:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
usuń wszystkie kopie zapasowe starsze niż 7 dni
Powodzenia.
Możesz zrzucić bazę danych i przywrócić ją za pomocą poniższego polecenia
mongodb -d <Your_db_name> -o <path of your folder>
na przykład moja nazwa bazy danych śledzi, mam zrzut w folderze zrzutu
mongodb -d tracking -o dump
Przywracam zrzut
mongorestore -d <databasename> <dum_path>
mongorestore -d tracking dump/tracking
Następujące polecenie połącz się ze zdalnym serwerem, aby zrzucić bazę danych:
<> opcjonalne parametry używają ich, jeśli ich potrzebujesz
wyjście do utworzonego folderu o nazwie
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
Jeśli twoja baza danych w systemie lokalnym. Następnie wpisujesz poniższe polecenie. dla terminala Linux
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
Jeśli użytkownik bazy danych i hasło są tam, to poniżej kod.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
To działało bardzo dobrze w moim terminalu Linux.
Poniższe polecenie będzie działać, aby zrobić zrzut pliku mongo db.
mongodump -d -o
W systemie Windows: wypróbuj ten, w którym c: \ mongodump to lokalizacja pliku zrzutu, utworzy metadane w formacie json i kopia zapasowa w formacie bson
C: \ MongoDB \ bin> mongodump -d -oc: \ mongodump
Lub możesz utworzyć skrypt kopii zapasowej w systemie Windows, pamiętaj, aby dodać Winrar do% 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 zrzuca i przywraca z uri do lokalnego
mongodump --uri "mongodb: // NAZWA UŻYTKOWNIKA: HASŁO @ IP_OR_URL: PORT / DB_NAME" --collection NAZWA KOLEKCJI -o LOKALNY_URL
Jeśli nie określisz --colletion NAZWA KOLEKCJI, zrzuci on całą bazę danych.
wykonaj kopię zapasową mongodb dla konkretnej bazy danych i usuń kopię sprzed 7 dni za pomocą polecenia 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
użyj „ścieżki” dla okien. W przeciwnym razie zwraca błąd jako: argumenty pozycyjne są niedozwolone
mongodump -h nazwa_hosta -u nazwa_dba -p -p hasło_db --db nazwa_bazy --port numer portu --out / ścieżka / folder
mongodump -h nazwa_hosta -u nazwa_dB -p -p hasło_db --db nazwa_bazy --port numer portu --out / ścieżka/folder.gz
mongodump
bez flag i otrzymujesz folder zrzutu