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.