MongoDB常见问题有哪些?一文带你了解怎样处理
Admin 2021-11-24 群英技术资讯 2053 次浏览
在使用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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
小编来给广大网友说说Mongo怎么样操作复制集同步验证的相关内容,这里提供了示例代码详细,有需要的朋友请跟小编来看一看吧!
Node.js 连接 MongoDB MongoDB是一种文档导向数据库管理系统,由C++撰写而成。 本章节我们将为大家介绍如何使用 Node.js 来连接 MongoDB,并对数据库进行操作。 如果你还没有 MongoDB 的基本知识,可以参考我们的教程:MongoDB 教程。 安装驱动 本教程使用了淘宝定制的 cnpm 命令进行安装: $ cnpm install mongodb 接下来我们来实现增删改查功能。 创建数据库 ..
mac本地连接mongodb连接失败解决方法:1、在Mac终端输入mongod开启服务,然后连接。2、在mongodb文件中启动服务,然后连接。
这篇文章主要给大家分享mongodb的操作,对文档插入、更新和删除是比较常见的和基础的操作,本文示例对新手学习mongodb文档插入、更新和删除的操作有一定的借鉴价值,需要的朋友可以参考,希望大家阅读完这篇文章能有所收获,下面我们一起来学习一下吧。
了解数据的备份与恢复是很有必要的,因此我们很难保证数据不会出现意外,做好备份与恢复能够让数据损失降到最低。那么在mongodb如何创建备份,以及如何恢复数据呢?下面我们一起来学习一下。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008