MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie finde ich den Speicherort von Mongodb-Daten und Protokolldateien über den Befehl?

Der einfachste Weg ist wahrscheinlich mit den getCmdLineOpts Befehl:

db.getSiblingDB("admin").runCommand({getCmdLineOpts:1})

Dieser Mongo Shell-Befehl wechselt zuerst zum admin Datenbank dann die getCmdLineOpts ausführen Befehl. Eine Alternative ist der Shell-Wrapper:

db.serverCmdLineOpts()

Diese geben die analysierten Befehlszeilenoptionen zurück, die sowohl das verwendete Datenverzeichnis als auch den Protokollpfad enthalten sollten.

{
        "argv" : [
                "C:\\****\\3.4.10\\bin\\mongod.exe",
                "--dbpath",
                "C:\\****\\data",
                "--port",
                "27017",
                "--logpath",
                "C:\\****\\data\\mongod.log",
                "--bind_ip",
                "0.0.0.0"
        ],
        "parsed" : {
                "net" : {
                        "bindIp" : "0.0.0.0",
                        "port" : 27017
                },
                "storage" : {
                        "dbPath" : "C:\\****\\data"
                },
                "systemLog" : {
                        "destination" : "file",
                        "path" : "C:\\****\\data\\mongod.log"
                }
        },
        "ok" : 1
}

Hinweis:Ich habe meine Pfade verschleiert, sie enthalten normalerweise nicht **** .

Sie können sehen, dass es sowohl die Rohwerte als auch die geparsten Werte bereitstellt. Wenn sowohl Befehlszeilenoptionen als auch Konfigurationsdateioptionen in der Befehlszeile angegeben werden, zeigt dies die effektiven Werte, die vom Prozess verwendet werden. Denken Sie daran, dass es mehrere zusätzliche Optionen das kann Auswirkungen darauf haben, wo Daten gespeichert werden, aber das sollte Sie ziemlich schnell auf den richtigen Weg bringen.

Wenn Sie diese Informationen wissen möchten, ohne die Mongo Shell zu verwenden, müssen Sie entweder die Konfigurationsdatei grep oder die Befehlszeilenoptionen des laufenden Prozesses ansehen oder beides.