标签: mongodb-3.0

从外壳检查存储引擎

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

mongodb mongodb-3.0

37
推荐指数
2
解决办法
4万
查看次数

MongoDB MMAPv1 与 WiredTiger 存储引擎

在 mongoDB3 中出现了一个新的存储引擎:WiredTiger然而,MMAPv1仍然是 Mongo 的默认选择

一个可能并不比另一个更好,这通常是用例和为工作​​选择正确工具的问题。但是哪种发动机适合什么工作?

事实上,虽然 MMAPv1 是默认引擎,但WiredTiger 似乎在几乎所有领域都更好。它具有与 MMAPv1 相同的功能以及:

  • 更好的写入性能,
  • 文档级并发,
  • 压缩,
  • 快照和检查点系统。

我在MongoDB 的博客上找到了一个比较表:

WiredTiger 和 MMAPv1 比较

所以除非你在 Solaris 上,否则有理由不选择 WiredTiger 吗?


编辑

这里有两个视频详细解释了WiredTigerMMAPv1的内部 结构

mongodb storage-engine mongodb-3.0

26
推荐指数
2
解决办法
2万
查看次数

解析 YAML 配置文件时出错:yaml-cpp

我在 MongoDB shell 版本中使用以下命令(Windows 机器):3.0.7:

mongod --config "G:\NodeApps\mongod.cfg" --install
Run Code Online (Sandbox Code Playgroud)

mongod.cfg 文件内容如下:

systemLog:
    destination: file
    path:"G:\NodeApps\data\log"
storage:
    dbPath:"G:\NodeApps\data"
Run Code Online (Sandbox Code Playgroud)

得到以下错误:

Error parsing YAML config file: yaml-cpp: error at line 4, column 8: illegal map value
try 'mongod --help' for more information
Run Code Online (Sandbox Code Playgroud)

类似的问题没有解决方案。

我已经尝试过的:

  1. 我正在使用空格(不是制表符)
  2. 我尝试以 ASCII 格式保存文件,正如其中一篇文章中提到的,不应以非 ACSII 格式保存 Mongod 配置文件。甚至在 UTF-8 中也不行。

请帮我解决一下这个。

mongodb mongodb-3.0

11
推荐指数
1
解决办法
3万
查看次数

Secondary 和 Arbiter 卡在 Startup 中

我正在使用 MongoDB 3.0.0 版。我正在尝试在我们的机器上设置 mongodb 复制。最初设置了复制,但由于 VM 上的一些更改,整个过程崩溃了。当我再次尝试设置时,辅助节点和仲裁器卡在启动模式中。

在我设置的 mongoDB conf 文件中

replSet=ReplicaSet1
Run Code Online (Sandbox Code Playgroud)

我使用命令添加了 2 台机器

rs.add("10.235.96.12:27017")
rs.add("10.235.96.12:27017")
Run Code Online (Sandbox Code Playgroud)

但是在这之后,当我做一个rs.status()次要和仲裁者时,仍然在 StartUp 中显示

ReplicaSet1:PRIMARY> rs.status()
{
    "set" : "ReplicaSet1",
    "date" : ISODate("2015-07-31T04:45:57.260Z"),
    "myState" : 1,
    "members" : [
            {
                    "_id" : 0,
                    "name" : "BOSPROD9:27017",
                    "health" : 1,
                    "state" : 1,
                    "stateStr" : "PRIMARY",
                    "uptime" : 63104,
                    "optime" : Timestamp(1438257913, 1),
                    "optimeDate" : ISODate("2015-07-30T12:05:13Z"),
                    "electionTime" : Timestamp(1438254975, 2),
                    "electionDate" : ISODate("2015-07-30T11:16:15Z"),
                    "configVersion" : 7,
                    "self" : true
            },
            {
                    "_id" …
Run Code Online (Sandbox Code Playgroud)

replication mongodb configuration mongodb-3.0

7
推荐指数
1
解决办法
1万
查看次数

MongoDB -- 全局初始化失败:无法打开“var/log/mongodb/mongod.log”

我在 Debian linux 中启动 Mongod v3.0.15 时出错。我/etc/mongod.conf通过添加 mmapv1: smallFiles: true存储选项将文件更改为使用 smallFiles 。

我现在在执行时收到以下错误$mongod --config /etc/mongod.conf

ib1:/ 514 $ mongod --config /etc/mongod.conf

2017-10-03T12:14:21.183-0500 F CONTROL 全局初始化失败:FileNotOpen 无法打开“/var/log/mongodb/mongod.log”

mongod.log文件存在,并且它也在mongod.conf文件中定义为在该目录中。

我可以在 shell 中自己打开 /var/log/mongodb/mongod.log 文件。奇怪的是,它已经很长时间(几个月)没有被写入了。

有任何想法吗?

非常感谢,凯伦

mongodb-3.0

6
推荐指数
1
解决办法
7485
查看次数

从 Linux bash 终端列出所有 MongoDB 数据库

你能从 linux bash 终端列出 MongoDB 中的所有数据库吗?我找不到正确的命令。我试图列出所有内容,以便我可以编写一个 bash 脚本来单独备份所有数据库。有没有更好的办法?

linux mongodb-3.0

6
推荐指数
1
解决办法
6986
查看次数

查询 MongoDB 集合压缩设置?

如何查询 MongoDB 中集合压缩的设置?我将 WiredTiger 配置为存储引擎,并将 zlib 算法配置为集合压缩。

这是我的配置 YAML 文件的片段:

storage:
   dbPath: "/data/wiredTiger"
   engine: "wiredTiger"
   wiredTiger:
      collectionConfig:
         blockCompressor: "zlib"
Run Code Online (Sandbox Code Playgroud)

使用 mongo 版本 3.0.5。

请任何帮助

mongodb mongodb-3.0

5
推荐指数
1
解决办法
4932
查看次数

mongoDB:查询具有对象引用的文档

我有一个小部件集合,其中包含这样的记录:

{ "_id" : ObjectId("55a6abe193819c033d4d755a"), "name" : "widget1"}
{ "_id" : ObjectId("55a6abe193819c033d4d755a"), "name" : "widget2", "loc" : ObjectId("55a69475da314d9984fc6201") }
Run Code Online (Sandbox Code Playgroud)

我还有一个位置集合,如下所示:

{ "_id" : ObjectId("55a69475da314d9984fc6201"), "abbrev" : "CAN", "description" : "Canada" }
{ "_id" : ObjectId("55a6948eda314d9984fc6202"), "abbrev" : "USA", "description" : "United States" }
{ "_id" : ObjectId("55a69496da314d9984fc6203"), "abbrev" : "MEX", "description" : "Mexico" }
Run Code Online (Sandbox Code Playgroud)

如果我想使用 Objectid 查找位于加拿大的所有小部件,我知道我可以这样做:

> db.widgets.find( { loc: ObjectId("55a69475da314d9984fc6201")})
{ "_id" : ObjectId("55a6abe193819c033d4d755a"), "name" : "widget2", "loc" : ObjectId("55a69475da314d9984fc6201") }
Run Code Online (Sandbox Code Playgroud)

但是,如果我想不使用 objectid 而使用缩写或描述来搜索位置怎么办?我该怎么做?

mongodb mongodb-3.0

4
推荐指数
1
解决办法
2万
查看次数

如何将 mongodb 节点设置为作为复制集的主节点返回?

这里有这个问题:

如何强制 mongod 成为副本集中的主节点?

但这不是我要找的答案。

下面有一个问题,这可能是相关的,但不一样。

在mongodb失败的情况下如何强制延迟成员成为主要成员

这个问题几乎是重复的,但涉及 2.6.11 版,我的是 3.0 版和 3.2 版。另外,除非我需要,否则我不想使用force : 1

强制成员成为 mongodb 中的主要成员

我一直在努力将答案中描述的大多数内容付诸实践,也许有一个例子或澄清,因此是这个问题。

我的复制工作正常,3 个节点,node1 是主节点。

当我运行以下命令时

//-----------------------------
//check the status of the replication
//-----------------------------
rs.status()
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

{
    "set" : "Krishna",
    "date" : ISODate("2016-04-26T14:59:40.263Z"),
    "myState" : 1,
    "members" : [
        {
            "_id" : 0,
            "name" : "jpb01275:37001",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 1022,
            "optime" : Timestamp(1461678841, 1),
            "optimeDate" : ISODate("2016-04-26T13:54:01Z"),
            "electionTime" : Timestamp(1461682464, …
Run Code Online (Sandbox Code Playgroud)

replication mongodb mongodb-3.0

4
推荐指数
1
解决办法
1万
查看次数

从 mongo 客户端内执行 shell (bash) 命令

如何从 MongoDB 客户端内执行 shell (bash) 命令?

使用 MySQL 客户端:

system (!) 执行系统 ​​shell 命令。

MongoDB 有类似的东西吗?

mongodb scripting mongodb-3.0

3
推荐指数
1
解决办法
6181
查看次数

Mongodb 列出当前连接

我正在使用 db.currentOp() 检查 Mongodb 中的当前连接。如何获得所有记录的总数以及如何在一列中获得所有“客户端”IP?谢谢

db.currentOp()
{
        "inprog" : [
                {
                        "desc" : "WT RecordStoreThread: local.oplog.rs",
                        "threadId" : "1068",
                        "active" : true,
                        "opid" : 77300,
                        "secs_running" : 712,
                        "microsecs_running" : NumberLong(712734301),
                        "op" : "none",
                        "ns" : "local.oplog.rs",
                        "query" : {

                        },
                        "numYields" : 0,
                        "locks" : {

                        },
                        "waitingForLock" : false,
                        "lockStats" : {
                                "Global" : {
                                        "acquireCount" : {
                                                "r" : NumberLong(1),
                                                "w" : NumberLong(1)
                                        }
                                },
                                "Database" : {
                                        "acquireCount" : {
                                                "w" : NumberLong(1)
                                        }
                                },
                                "oplog" …
Run Code Online (Sandbox Code Playgroud)

mongodb-3.0

3
推荐指数
1
解决办法
2万
查看次数

MongoDB 奇数大小

我是 MongoDB 的新手(使用 mongo 3.05)- 并且看到了我不太了解或找不到答案的行为-当我在 mongo 环境中显示 DB 时 = 我看到了一个数据库列表,它们全部取一些固定大小 - 有些大约 72MB,有些大约 210MB - 就是这样。

当我导出数据库进行备份时 - 我总共有大约 40MB 的所有数据库。

我想更好地理解这一点,有人熟悉这种行为吗?谢谢!

mongodb mongodb-3.0

2
推荐指数
1
解决办法
42
查看次数