In früheren Versionen von MongoDB konnten Sie die copyDB
verwenden Befehl oder seine Hilfsmethode db.copyDatabase()
eine Datenbank zu kopieren.
MongoDB hat diese inzwischen als veraltet markiert. Außerdem hat MongoDB ab Version 4.2 die copydb
entfernt Befehl und damit auch die db.copyDatabase()
-Methode, was bedeutet, dass Sie sie nicht verwenden können, selbst wenn Sie wollten, wenn Sie MongoDB 4.2 oder höher verwenden.
Glücklicherweise gibt es eine andere Möglichkeit, eine MongoDB-Datenbank zu kopieren.
Suchen Sie nach MongoDB-Datenbanktools
In MongoDB können Sie eine Datenbank mit den MongoDB-Datenbanktools klonen. Insbesondere können Sie mongodump
verwenden und mongorestore
.
Die MongoDB-Datenbanktools sind eine Reihe von Befehlszeilendienstprogrammen für die Arbeit mit MongoDB.
Wenn Sie sich nicht sicher sind, ob Sie die MongoDB-Datenbanktools installiert haben, versuchen Sie, die folgenden Befehle in Ihrem Terminal oder Ihrer Eingabeaufforderung auszuführen, um dies zu überprüfen:
mongodump --version
mongorestore --version
Das sucht speziell nach mongodump
und mongorestore
Versionen.
Wenn Sie sie nicht haben, können Sie die Installationsanweisungen auf der MongoDB-Website verwenden, um die MongoDB-Datenbanktools auf Ihrem System zu installieren.
Beispiel für das Klonen einer Datenbank
Sie müssen mongodump
ausführen und mongorestore
über die Befehlszeile Ihres Systems (z. B. ein neues Terminal- oder Eingabeaufforderungsfenster). Führen Sie es nicht vom mongo
aus Hülse.
Hier ist ein Codebeispiel, das eine Datenbank klont:
mongodump --archive --db=PetHotel | mongorestore --archive --nsFrom='PetHotel.*' --nsTo='PetHouse.*'
In diesem Fall sichern wir das PetHotel
Datenbank und stellen Sie dann alle ihre Sammlungen in einer Datenbank namens PetHouse
wieder her . Mit anderen Worten, wir haben das PetHotel
geklont Datenbank als PetHouse
.
Dies verwendet mongodump
um eine Sicherungsdatei der Datenbank zu erstellen, dann mongorestore
um diese Datenbank unter einem anderen Namen wiederherzustellen. Wir haben dies getan, indem wir die Datenbank in den Standardausgabestrom ausgegeben und in mongorestore
geleitet haben .
Hier ist, was jeder Parameter tut:
Parameter | Beschreibung |
---|---|
--archive | Schreibt die Ausgabe in eine angegebene Archivdatei oder, wenn die Archivdatei nicht angegeben ist, in die Standardausgabe (stdout ). In unserem Fall ist die Archivdatei nicht spezifiziert, also hat sie auf die Standardausgabe geschrieben. |
--db | Gibt eine zu sichernde Datenbank an. In diesem Fall sichern wir das PetHotel Datenbank. |
--nsFrom | Gibt die Sammlung in der Dump-Datei an. Der Stern-Platzhalter (* ) gibt alle Sammlungen an. |
--nsTo | Gibt den Sammlungsnamen an, der in der wiederhergestellten Datenbank verwendet werden soll. |
Sie können auch mongodump
verwenden alle Datenbanken zu dumpen. Führen Sie dazu einfach mongodump
aus ohne Argumente. Wenn Sie dies tun, enthält es jedoch nicht den local
und config
Datenbanken in seinem Dump.