如何在独立的MongoDB中查看oplog

时间:2014-03-06 11:09:42

标签: mongodb

我希望看到oplog,所以我按照here

中的建议启动了MongoDB
mongod --master --port 8888 --dbpath ...

但是当我跑步时

>db.oplog.rs.find()

它什么都不返回

当我跑步时

>db.oplog.rs.stats()

返回错误

{
"ok" : 0,
"errmsg" : "ns not found"
}

我还尝试使用'> use local'来执行这些命令。我看到相同的结果。我打算用java oplog watcher API读取它。但是无法得到它。我错过了什么。怎么看oplog

2 个答案:

答案 0 :(得分:6)

“oplog.rs”位于“本地”数据库中。所以,你可以尝试类似的东西:

use local
db.oplog.rs.find()

或来自其他数据库:

db.getSiblingDB("local").oplog.rs.find()

答案 1 :(得分:1)

好吧所以当你使用--master时它不是副本集它实际上是不推荐使用的主从复制让我觉得它可能只是一个不同的名字:

> show collections
oplog.$main
startup_log
> db.oplog.$main.find()
{ "ts" : Timestamp(1394104629, 1), "op" : "n", "ns" : "", "o" : {  } }
{ "ts" : Timestamp(1394104643, 1), "op" : "n", "ns" : "", "o" : {  } }
{ "ts" : Timestamp(1394104653, 1), "op" : "n", "ns" : "", "o" : {  } }
{ "ts" : Timestamp(1394104663, 1), "op" : "n", "ns" : "", "o" : {  } }
{ "ts" : Timestamp(1394104673, 1), "op" : "n", "ns" : "", "o" : {  } }
{ "ts" : Timestamp(1394104683, 1), "op" : "n", "ns" : "", "o" : {  } }
{ "ts" : Timestamp(1394104693, 1), "op" : "n", "ns" : "", "o" : {  } }

原来我是对的。