Überprüfen Sie die Speichermaschine von der Schale


35

Ich aktualisiere auf 3.0 und habe Probleme mit dem Upgrade. Insbesondere beim Versuch, mongodüber zu starten, ist ein Fehler aufgetreten. sshEs wurde versucht, die Standardeinstellung dbpathanstelle der in meiner neuen YAML-Konfigurationsdatei angegebenen zu verwenden. Ich habe die Maschine neu gestartet und jetzt mongodist sie wieder betriebsbereit . Ich bin zu diesem Zeitpunkt ein bisschen paranoid und möchte wissen, ob es eine Möglichkeit gibt, sicherzustellen, dass die Speicher-Engine wiredtigervon der Shell stammt.

Antworten:


61

Der einfachste Weg, die aktuell verwendete Speicher-Engine zu finden.

Inside Mongo-Konsolentyp

db.serverStatus().storageEngine

Es gibt die aktuell verwendete Speicher-Engine zurück

{ "name" : "wiredTiger" }

Sobald bestätigt ist, dass wiredTiger verwendet wird, geben Sie ein

db.serverStatus().wiredTiger

um alle Konfigurationsdetails von wiredTiger zu erhalten.


2
Nur zur Bestätigung, dies funktioniert auch unter Windows.
Chris Paton

9

HAFTUNGSAUSSCHLUSS: Kein MongoDB-Experte

Überprüfen Sie die Prozessliste unter Linux

WIREDTIGER_CONFIGURED=`ps -ef|grep mongod|grep -i storageengine|grep -ic wiredtiger`
echo ${WIREDTIGER_CONFIGURED}

1 bedeutet, es ist da

Aus der Mongo-Muschel

db.serverStatus()

Sie sollten so etwas sehen

"wiredTiger" : {
   ...
   "cache" : {
      "tracked dirty bytes in the cache" : <num>,
      "bytes currently in the cache" : <num>,
      "maximum bytes configured" : <num>,
      "bytes read into cache" :<num>,

oder Sie können einfach den Namen der Speicher-Engine mit ziehen

db.serverStatus().storageEngine.name

Du wirst entweder bekommen mmapv1oderwiredTiger

oder von der Kommandozeile

MONGO_ENGINE=`mongo -u... -p... --eval "db.serverStatus().storageEngine.name"`

Ich bin auf Ubuntu, also habe ich den Linux-Befehl ausprobiert und er zeigte 0, aber der db.serverStatus () zeigt einen wiredTiger-Knoten.
ton.yeung

In beiden Fällen ist der db.serverStatus ermutigend. Damit aktualisiere ich meine anderen Server und stelle bei Mongo ein Ticket für eine endgültige Antwort ein.
Ton.yeung

Gibt es hierzu Neuigkeiten? Ich bekomme immer noch eine 0, wenn ich das starte.
chaitanya.varanasi

2
@ chaitanya.varanasi Bitte schauen Sie sich die andere Antwort an. Es hat was du willst. Der Übersichtlichkeit halber sage ich Folgendes: Wenn Sie MongoDB 3.x ausführen, führen Sie einfach aus db.serverStatus().storageEngine.name. Es wird entweder mmapv1oder sagen wiredTiger.
RolandoMySQLDBA

Das Greifen nach dem --storageEngineParameter funktioniert nur in begrenzten Situationen, z. B. in MongoDB 3.0, wo der Parameter explizit in der Befehlszeile angegeben wird. In der Regel werden mongodKonfigurationswerte in einer Konfigurationsdatei bereitgestellt, damit sie nicht in der psAusgabe angezeigt werden. In MongoDB 3.2+ ist WiredTiger die Standardspeicher-Engine, sodass keine zusätzlichen Parameter erforderlich sind. Der empfohlene Ansatz ist Ihr zweiter Vorschlag db.serverStatus().storageEngine.nameüber die mongoShell. Zu Ihrer Information, wenn Sie MongoDB 2.6 oder älter verwenden, funktioniert dies nicht: Die einzige Speicher-Engine war MMAP.
Stennie

1

Die mongod.logDatei wird mit einer Zeichenfolge gefüllt, die beschreibt, welche Speicher-Engine Sie verwenden.
so konnte man laufen:

cat /var/log/mongodb/mongod.log  | grep STORAGE | tail -n 1

was etwas zurückgibt wie:

2017-06-28T21:45:24.745+0200 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=4G,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.