从外壳检查存储引擎

ton*_*ung 37 mongodb mongodb-3.0

我正在升级到 3.0,但在升级时遇到了一些问题。具体来说,我试图启动时得到一个错误mongod通过ssh,它试图使用默认的dbpath,而不是我在新YAML配置文件中指定的一个。我继续并重新启动了机器,现在mongod又开始运行了。在这一点上我有点偏执,想知道是否有办法确保存储引擎wiredtiger来自 shell。

May*_*tel 62

查找当前使用的存储引擎的最简单方法。

内部 mongo 控制台类型

db.serverStatus().storageEngine
Run Code Online (Sandbox Code Playgroud)

它返回当前正在使用的存储引擎

{ "name" : "wiredTiger" }
Run Code Online (Sandbox Code Playgroud)

一旦确认正在使用wiredTiger,然后输入

db.serverStatus().wiredTiger
Run Code Online (Sandbox Code Playgroud)

获取wiredTiger的所有配置细节。

  • 只是为了确认,这也适用于 Windows。 (2认同)

Rol*_*DBA 10

免责声明:不是 MongoDB 专家

在 Linux 中查看进程列表

WIREDTIGER_CONFIGURED=`ps -ef|grep mongod|grep -i storageengine|grep -ic wiredtiger`
echo ${WIREDTIGER_CONFIGURED}
Run Code Online (Sandbox Code Playgroud)

1 表示它在那里

从 mongo 外壳

db.serverStatus()
Run Code Online (Sandbox Code Playgroud)

你应该看到这样的东西

"wiredTiger" : {
   ...
   "cache" : {
      "tracked dirty bytes in the cache" : <num>,
      "bytes currently in the cache" : <num>,
      "maximum bytes configured" : <num>,
      "bytes read into cache" :<num>,
Run Code Online (Sandbox Code Playgroud)

或者您可以使用以下命令提取存储引擎名称

db.serverStatus().storageEngine.name
Run Code Online (Sandbox Code Playgroud)

您将获得mmapv1wiredTiger

或从命令行

MONGO_ENGINE=`mongo -u... -p... --eval "db.serverStatus().storageEngine.name"`
Run Code Online (Sandbox Code Playgroud)

  • @chaitanya.varanasi 请看其他答案。它有你想要的。为了清楚起见,我会这样说:如果您正在运行 MongoDB 3.x,只需运行 `db.serverStatus().storageEngine.name`。它会说“mmapv1”或“wiredTiger”。 (2认同)