MongoDB常见问题有哪些?一文带你了解怎样处理
Admin 2021-11-24 群英技术资讯 912 次浏览
在使用MongoDB过程中,可能会遇到多种问题,例如mongod服务无法正常启动。对此这篇文章就给大家来分享一些MongoDB中常见问题及解决方法,需要的朋友可以了解看看。
1 非正常关闭服务或关机后 mongod服务无法正常启动
在使用中发现mongodb 的服务很容易因为非正常关闭而启动不了,不过解决也很容易
删除data目录下的 *.lock文件,再运行下 /mongodb_binpath/mongod -repair -f config文件路径 再启动即可
也可以在/etc/init.d/mongod 服务启动的文件中加入 启动前删除该文件 如下:
start() { rm -f /usr/mongodb/data/master/mongod.lock /usr/mongodb/bin/mongod --config /usr/mongodb/config/master.conf }
2、server-side JavaScript execution is disabled
完整信息:JavaScript execution failed: group command failed: { "ok" : 0, "errmsg" : "server-side JavaScript execution is disabled" }
解决方法:mongod.conf 这个配置文件里 noscripting:false 如果true 就是禁止
3、 Decimal转换成BsonValue值异常
BsonValue 暂不支持 Decimal类型,转换前强制转换类型,
if (type==typeof(Decimal)) { return Convert.ToDouble(value); }
如果用MongoDB,最好不要用decimal类型,否则在序列化的时候也有问题,可用double
4、MONGO Replica 频繁插入大数据的问题
MONGO Replica 频繁插入大数据的问题,当在复制集中频繁插入大数据时有可能出现 “error RS102 too stale to catch up"出现这个错误的原因是SECONDARY即副节点的复制速度跟不上了,当需要批量频繁向副本集中写入数据时最好先移除副本节点,待插入完后重新同步。
5 Mongo集群没有primary但有secondary时连接不上且不能读数据
#mongodb默认是从主节点读写数据的,副本节点上不允许读,需要设置副本节点可以读。
shell
1 repset:SECONDARY> db.getMongo().setSlaveOk(); #要在primary上执行
2 rs.slaveOk()
其他客户端
从secondary 读数据
如果应用程序没有设置相应的ReadReference也可能不能进行读取操作
MongoClientSettings set = new MongoClientSettings();
List<MongoServerAddress> servers = new List<MongoServerAddress>();
servers.Add(new MongoServerAddress("192.168.129.129", 37017));
servers.Add(new MongoServerAddress("192.168.129.129", 37018));
servers.Add(new MongoServerAddress("192.168.129.129", 37019));
set.Servers = servers;
//设置副本集名称
set.ReplicaSetName = "rs0";
//设置超时时间为3秒
set.ConnectTimeout = new TimeSpan(0, 0, 0, 3, 0);
MongoClient client = new MongoClient(set);
MongoServer server = client.GetServer();
MongoDatabase db = server.GetDatabase("test");
MongoCollection coll = db.GetCollection("test");
注:设置驱动的ReadReference也可以通过MongoDB连接字符串配置:mongodb://example1.com,example2.com,example3.com/?readPreference=secondary。通过连接字符串指定的read preference是针对整个连接。
set.ReadPreference = new ReadPreference(ReadPreferenceMode.PrimaryPreferred);
将ReadPreferenceMode设置成Secondary或SecondaryPreferred
关于MongoDB中常见问题及解决方法就介绍到这,本文方法仅供参考,希望能对大家有帮助、最后,想要了解更多MongoDB的内容,大家可以关注其它的相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
相信大家都知道mongodb是不支持join操作的,因此我们只能自己来实现这个功能。所以下面这篇文章主要给大家介绍了关于在MongoDB中如何使用JOIN操作的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面来一起看看吧。
这篇文章主要给大家介绍的是关于在MongoDB中MapReduce的使用,小编认为是比较实用的,因此分享给大家作参考,需要的朋友可以看看,希望对大家学习有帮助。
在学习MongoDB中我们需要学习的知识有非常多,对于新手用户来说是很难记住的,那么下面我们就一起去看看MongoDB常用操作和基础知识有哪些吧!
这篇文章主要给大家分享MongoDB数据库命令,总结了很多MongoDB常用数据库命令及用法,具有一定的借鉴价值,感兴趣的朋友可以参考参考,下面就跟随小编一起来看看吧。
很多朋友对于mongodb数据库是比较陌生,关于mongodb是如何存储数据的也不是很了解,对此下面就给大家介绍关于mongodb实现存储数据的内容,感兴趣的朋友继续往下看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008