MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Przywróć bazę danych MongoDB za pomocą mongorestore

Jeśli wykonałeś kopię zapasową bazy danych za pomocą mongodump narzędzie, możesz je przywrócić za pomocą mongorestore narzędzie.

mongorestore narzędzie ładuje dane z binarnego zrzutu bazy danych utworzonego przez mongodump lub standardowe wejście do mongod lub mongos przykład.

Sprawdź narzędzia bazy danych MongoDB

mongorestore Narzędzie jest częścią pakietu MongoDB Database Tools. Narzędzia baz danych MongoDB to zestaw narzędzi wiersza poleceń do pracy z MongoDB.

Jeśli nie masz pewności, czy masz narzędzia bazy danych MongoDB/mongorestore zainstalowany. Spróbuj uruchomić następujące polecenie w terminalu lub wierszu polecenia, aby sprawdzić:

mongorestore --version

Jeśli go nie masz, możesz skorzystać z instrukcji instalacji na stronie MongoDB, aby zainstalować go w swoim systemie.

Gdzie uruchamiać polecenia?

Musisz uruchomić mongorestore polecenia z wiersza poleceń systemu (np. nowe okno terminala lub wiersza polecenia).

Nie uruchamiaj ich z mongos powłoka.

Przywróć wszystkie bazy danych z katalogu

Następujące polecenie przywraca wszystkie bazy danych, których kopie zapasowe zostały zapisane w dump/ katalog:

mongorestore dump/

Ten przykład przywraca bazy danych do lokalnej instancji działającej na domyślnym porcie 27017. Wiemy o tym, ponieważ nie podaliśmy żadnych informacji o hoście, porcie, uwierzytelnianiu itp.

Przywróć określoną bazę danych

Możesz użyć --nsInclude parametr do określenia bazy danych do przywrócenia.

Przykład:

mongorestore --nsInclude="PetHotel.*" dump/

W tym przypadku przywróciliśmy PetHotel Baza danych. Przywróciliśmy wszystkie kolekcje, ponieważ użyliśmy symbolu wieloznacznego gwiazdki (* ), aby określić wszystkie kolekcje.

Przywróć określoną kolekcję

Możesz także użyć --nsInclude parametr, aby określić kolekcję do przywrócenia.

Przykład:

mongorestore --nsInclude="PetHotel.pets" dump/

Ten przykład przywraca kolekcję zwierzaków z PetHotel Baza danych. Jeśli baza danych nie istnieje, jest tworzona z jedną kolekcją (pets ).

Ten przykład jest prawie identyczny z poprzednim przykładem, z wyjątkiem tego, że zamiast używać symbolu wieloznacznego gwiazdki (* ), aby określić wszystkie kolekcje, wyraźnie określiliśmy kolekcję, którą chcemy przywrócić.

Zmień nazwę kolekcji

Możesz użyć --nsFrom i --nsTo parametry, aby określić nową nazwę kolekcji.

Przykład:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/

Zmienia to nazwę pets kolekcja do pets2 .

Zauważ, że powyższy kod przywraca również wszystkie inne bazy danych i kolekcje w dump/ informator. Jedyna różnica polega na tym, że pets kolekcja zostanie przywrócona jako pets2 .

Jeśli chcesz przywrócić tylko jedną kolekcję (i zmienić jej nazwę w trakcie), użyj --nsInclude parametr.

Przykład:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/

Zmień nazwę bazy danych

Tej samej koncepcji można użyć do zmiany nazwy bazy danych. Po prostu użyj --nsFrom i --nsTo parametry, aby określić nową nazwę bazy danych.

Przykład:

mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/

W tym przypadku zmieniłem nazwę na PetHotel baza danych do PetHouse .

Zauważ, że --nsInclude parametr określa nowy nazwa bazy danych. Używam też symbolu wieloznacznego gwiazdki (* ) w celu przywrócenia wszystkich kolekcji w tej bazie danych.

Wykluczanie kolekcji

Możesz użyć --nsExclude parametr określający kolekcję do wykluczenia z procesu przywracania.

Przykład:

mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/

Ten przykład przywraca wszystkie kolekcje w PetHotel baza danych z wyjątkiem dogs kolekcja.

Możesz użyć --nsExclude wiele razy, aby wykluczyć wiele kolekcji z procesu przywracania.

Przykład:

mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/

Kontrola dostępu/uwierzytelnianie

Poprzednie przykłady zostały wykonane na komputerze lokalnym przy użyciu domyślnego portu. Oznaczało to, że mogliśmy uruchomić mongodump bez określania rzeczy takich jak --host , --port , --username itp.

Oto przykład, który używa tych parametrów do uwierzytelnienia jako homer :

mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30

Mogliśmy również użyć --password parametr, ale nie zrobiliśmy tego. Jeśli wpiszesz --user ale nie --password , zostaniesz poproszony o podanie hasła.

Przywróć ze skompresowanych plików

Możesz użyć --gzip parametr do przywrócenia ze skompresowanych plików lub strumienia danych utworzonego przez mongodump --gzip .

Przykład:

mongorestore --gzip  --nsInclude="krankykranes.*" dump3/

Tryb cichy

Możesz użyć --quiet parametr, aby ograniczyć wyjście w oknie terminala lub wiersza polecenia.

mongorestore --quiet

Bez użycia tego prawdopodobnie zobaczysz dużą listę widoków, kolekcji itp., które zostały przywrócone.

Tryb szczegółowy

Z drugiej strony możesz użyć --verbose lub -v parametry do zwiększenia dane wyjściowe w terminalu lub oknie wiersza poleceń.

mongorestore --verbose

Możesz zwiększyć szczegółowość, powtarzając -v formularz wiele razy.

Przykład:

mongorestore -vvvv

Więcej informacji o mongodump

mongorestore Narzędzie akceptuje wiele innych przydatnych parametrów, a podczas korzystania z niego w ramach strategii tworzenia kopii zapasowych i odzyskiwania należy wziąć pod uwagę różne czynniki.

Zobacz mongorestore dokumentacja na stronie MongoDB, aby uzyskać więcej informacji.

Inne opcje

mongodump i mongorestore są prostymi i wydajnymi narzędziami do tworzenia kopii zapasowych i przywracania małych wdrożeń MongoDB, ale nie są idealne do przechwytywania kopii zapasowych większych systemów.

Zobacz Metody tworzenia kopii zapasowych MongoDB na stronie MongoDB, aby poznać inne metody tworzenia kopii zapasowych i przywracania baz danych MongoDB.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wstaw MongoDBWiele()

  2. MongoSocketReadException:Przedwcześnie osiągnięto koniec strumienia (po okresie bezczynności)

  3. MongoDB Pokaż przedmioty dla dzieci w relacji jeden do wielu

  4. MongoDB $indexOfBytes

  5. Dołącz ciąg na końcu istniejącego pola w MongoDB