Ich habe Fotos mit Berichten auf MongoDB hochgeladen. Ich habe das Größenlimit der Datenbank erreicht. Wie erhöhe ich die Größe der Datenbank?
db.stats()
{
"db" : "fieldops",
"collections" : 6,
"objects" : 20454,
"avgObjSize" : 890464.9997066589,
"dataSize" : 18213571104,
"storageSize" : 18432802736,
"numExtents" : 52,
"indexes" : 4,
"indexSize" : 809424,
"fileSize" : 21398290432,
"nsSizeMB" : 16,
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"dataFileVersion" : {
"major" : 4,
"minor" : 22
},
"ok" : 1
}
Und nebenbei: Ich habe im Moment 12.000 Bilder, die jeden Monat hochgeladen werden. Ich habe gelesen, dass das MongoDB- data file
Limit bei 16.000 liegt. Ich konnte die Definition data file
im Glossar nicht finden. Bezieht sich das auf die buffered
Bilder, die ich in die Datenbank hochgeladen habe? Muss ich also, sobald das passiert, einen separaten Server mit einem Shard einrichten? Oder kann ich auf derselben Maschine einen Shard erstellen?
Dank im Voraus.
Antwort1
Ich habe Fotos mit Berichten auf MongoDB hochgeladen. Ich habe das Größenlimit der Datenbank erreicht. Wie erhöhe ich die Größe der Datenbank?
Vorausgesetzt, Sie haben freien Speicherplatz, wird MongoDB automatisch zusätzlichen Speicherplatz nach Bedarf zuweisen. Da Sie die MMAP-Speicher-Engine verwenden (basierend auf Ihrer db.stats()
Ausgabe), wird MongoDB Speicherplatz in zunehmenden Schritten von bis zu 2 GB pro neuer Datei vorab zuweisen (oder maximal 512 MB pro Datei, wenn Sie diesmallFiles
Möglichkeit). Wenn Ihre Datenbank aktuell >18 GB groß ist, benötigen Sie mindestens 2 GB freien Speicherplatz (plus etwas Speicherplatz für das Betriebssystem, wenn sich Ihr temporäres Verzeichnis auf demselben Datenträger befindet).
Es gibt keine Begrenzung der Dokumentanzahl für eine Sammlung, es sei denn, Sie verwenden eine begrenzte Sammlung mit einer angegebenenmax
Grenze(der kleiner als 2^32 sein muss). Es gibt MongoDB-Produktionsbereitstellungen mit Billionen von Dokumenten (siehe:MongoDB im großen Maßstab).
MongoDB 3.0+ verfügt über eine Speicher-Engine-API, daher kann es einige Einschränkungen geben, die je nach Speicher-Engine variieren. Beispielsweise kann dieBegrenzung der Datengrößefür eine einzelne mongod
mit der klassischen MMAPv1-Speicher-Engine sind es normalerweise 64 Terabyte Daten mit aktiviertem Journaling. Die WiredTiger-Speicher-Engine (optional in 3.0, Standard in 3.2+) hat diese Einschränkung nicht.
Das Einfügen von Zehntausenden Dokumenten pro Monat sollte kein Problem sein.
Weitere Informationen finden Sie unter:MongoDB-Grenzen und -Schwellenwerte.