/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

解决MongoVUE 修改错误: cannot use 'j' option when a host does not have journaling enabled

2016-04-26 十有三 0 浏览:1万+ 数据库 软件应用 | MongoDB

最近在使用MongoVUE对MongoDB进行管理,作为一个可视化管理工具还是十分方便和快捷。不过刚开始使用时就遇到了一些小问题,在进行修改操作时弹出错误提示:Error in performing Update/cannot use 'j' option when a host does not have journaling enabled。后经过研究,发现造成此问题主要是MongoDB的日志系统未开启,解决方法就是开启MongoDB的日志系统。

先说下问题的具体情况:每当使用MongoVUE执行修改操作都会引发错误,虽然最终的修改操作是成功的,但是依然会提示在执行修改操作的时候发生了错误。

错误截图如下:

错误信息:cannot use 'j' option when a host does not have journaling enabled

MongoVUE其他错误信息

错误信息如下:

Error in performing Update
WriteConcern detected an error 'cannot use 'j' option when a host does not have journaling enabled'. (response was { "connectionId" : 1, "updatedExisting" : true, "n" : 1, "badGLE" : { "getlasterror" : 1, "j" : true }, "ok" : 0.0, "errmsg" : "cannot use 'j' option when a host does not have journaling enabled", "code" : 2 }).
Type: MongoDB.Driver.WriteConcernException
Stack:    在 MongoDB.Driver.Operations.WriteOperation.SendMessageWithWriteConcern(MongoConnection connection, BsonBuffer buffer, Int32 requestId, BsonBinaryReaderSettings readerSettings, BsonBinaryWriterSettings writerSettings, WriteConcern writeConcern)
   在 MongoDB.Driver.Operations.UpdateOperation.Execute(MongoConnection connection)
   在 MongoDB.Driver.MongoCollection.Update(IMongoQuery query, IMongoUpdate update, MongoUpdateOptions options)
   在 MongoDB.Driver.MongoCollection.Update(IMongoQuery query, IMongoUpdate update, UpdateFlags flags, WriteConcern writeConcern)
   在 MangoUI.MCollections.UpdateIt(String db, String coll, BsonDocument match, BsonDocument update, Boolean multi, Boolean upsert, Boolean journal)
   在 MangoUI.ComUpdate.UpdateDocuments(Boolean multi)
Inputs:: 
Command:  getlasterror
Ok:       False
ErrorMsg: cannot use 'j' option when a host does not have journaling enabled
Request:  { "getlasterror" : 1, "j" : true }
Response: { "connectionId" : 1, "updatedExisting" : true, "n" : 1, "badGLE" : { "getlasterror" : 1, "j" : true }, "ok" : 0.0, "errmsg" : "cannot use 'j' option when a host does not have journaling enabled", "code" : 2 }

从上面的错误信息提示就可以看出,主要故障原因在于MongoDB的Journaling日志系统未开启。未开启的原因大概有几点,一是没有安全的退出MongoDB,二是当前的系统环境是32位系统,由于Journaling需要占用较多内存,而32位系统的内存较小,所以默认Journaling是关闭的。

每当启动MongoDB就可以看到关于Journaling未开启的提示:

MongoDB提示32位系统默认不开启Journaling

官方文档也对此进行了说明,64位系统默认是开启日志:

官方文档说明截图

根据提示,只要使用--journal命令就可以成功开启日志系统,这里又分为两种情况,如果MongoDB没有作为Windows服务安装,那么只要在启动MongoDB的命令里加上--journal即可:

mongod --journal

如果MongoDB是作为Windows服务安装,那问题估计要复杂点,由于本人对mongodb还在研究学习阶段,只能采取笨办法,先关掉服务,然后卸载掉再重新安装服务,安装的时候带上--journal命令。

首先停止服务:

停止MongoDB服务

然后卸载MongoDB服务:

mongod --dbpath "E:\MongoDB\Server\3.2\data\db" --logpath "E:\MongoDB\Server\3.2\data\log\MongoDB.log" --remove

最后重新安装MongoDB服务:

mongod --dbpath "E:\MongoDB\Server\3.2\data\db" --logpath "E:\MongoDB\Server\3.2\data\log\MongoDB.log" --install --journal

卸载和安装操作都需要在MongoDB目录下通过命令行工具执行,这里展示的操作语句是根据本人当时的安装环境来进行操作的,所以如果有需要的朋友要注意根据自身的系统环境进行修改。

最后总结下,其实最好的解决方式就是使用64位的操作系统,有条件最好就换个系统吧,良好的开发环境对应程序员同胞来说还是很重要的。


相关资料:

  1. 在windows上安装mongodb的官方文档
  2. Journaling的官方文档
  3. Manage Journaling
  4. staciouerflow相关问题1
  5. staciouerflow相关问题2

作者:十有三

出处:https://shiyousan.com/post/635972886144149106

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: 解决VS2013错误:Page '312e8a59-2712-48a1-863e-0ef4e67961fc' not found.
  • 下一篇: MongoDB小技巧:在命令提示符中通过任意路径执行MongoDB命令

相关文章
  • 使用sqlcmd命令执行带参数的存储过程
  • MongoDB小技巧:在命令提示符中通过任意路径执行MongoDB命令
  • MongoDB在Windows Server 2012 R2中的安全部署
  • 创建 SQL Server Express自动备份数据库功能
  • 解决COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION错误
  • MongoDB学习笔记:batchInsert is not a function

文章分类

.NET技术 123 数据库 24 Web前端 21 网站建设运维 37 操作系统与应用 66 程序猿日常 11 开发工具 12 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 服务器 搞笑娱乐 好文分享 软件应用 生活知识 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
  • VS重构重命名的快捷键

推荐文章

  • 解决VS2013错误:Page '312e8a59-2712-48a1-863e-0ef4e67961fc' not found.
  • 命名空间System.Web中不存在类型或命名空间名称“Mvc” 是否缺少程序集引用?
  • ASP.NET MVC 表单提交多层子级实体集合数据到控制器中
  • 解决"无法启动此程序,因为计算机中丢失cudart32_60.dll。尝试重新安装该程序以解决此问题。"
  • 网站使用plesk面板,页面出现default parallesls plesk page的解决方法

友情链接

  • Passingwind的博客
  • 码友网

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号
闽公网安备 35020302035102号