MongoDBReplicaSet排错-创新互联

1.检查Replica Set的状态

我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好成都网站制作、网站设计服务,我们努力开拓更好的视野,通过不懈的努力,创新互联赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,成都小程序开发,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。

使用db.runCommand({"replSetGetStatus" : 1});或者rs.status();

2.检查复制延迟时间

source:   m1.example.net:30001
    syncedTo: Tue Oct 02 2012 11:33:40 GMT-0400 (EDT)
        = 7475 secs ago (2.08hrs)source:   m2.example.net:30002
    syncedTo: Tue Oct 02 2012 11:33:40 GMT-0400 (EDT)
        = 7475 secs ago (2.08hrs)

复制延迟的可能原因有:

网络延迟

   可以使用ping和traceroute命令探测网络状况

磁盘吞吐量

   如果Secondary的磁盘不能像Primary的磁盘那样快速将数据刷新到磁盘上,将不能和Primary保持同步更新。可以使用iostat或者vmstat检查磁盘使用状况

并发量

   在某些情况下,如果Primary上长期有操作,那么可能会阻断Secondary的复制操作。可以考虑write concern 。再则就是查看是否有慢查询。

Appropriate Write Concern

  • Replica Acknowledge Write Concern

  • Replica Set Write Concern

3.所有成员间的连接测试

 Replica Set之间的成员需要能够相互连通,检查防火墙设置。

4.重启多个Secondar的Socket Exceptions问题

当重启Replica Set中的多个成员时,确保可以选出一个Primary。如果在维护的过程中程序出现socket连接错误,可以检查TCP的keepalive设置。

cat /proc/sys/net/ipv4/tcp_keepalive_time

Linux下默认设置tcp_keepalive_time为7200秒,即两个小时。可以将所有的MongoDB实例所在的服务器的这个值设置成300秒。

echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time

这种设置重启后将消失,需要重新修改。可以直接修改/etc/sysctl.conf然后执行sysctl -p

5.检查Oplog的大小

oplog越大,能够接受得延迟就越大。

使用db.printReplicationInfo();查看oplog的大小

 db.printReplicationInfo(); configured oplog size:   50278.6203125MB log length start to end: 143109secs (39.75hrs) oplog first event time:  Wed Mar 18 2015 00:36:53 GMT+0800 (CST) oplog last event time:   Thu Mar 19 2015 16:22:02 GMT+0800 (CST) now:                     Thu Mar 19 2015 17:32:42 GMT+0800 (CST)

如果重新设置oplog的大小需要将所有的成员都设置成为大小一样

6.Oplog Entry Timestamp Error

如果日志中出现如下报错

replSet error fatal couldn't query the local local.oplog.rs collection.  Terminating mongod after 30 seconds.
 [rsStart] bad replSet oplog entry?

参考资料:

http://docs.mongodb.org/v2.4/tutorial/troubleshoot-replica-sets/

http://john88wang.blog.51cto.com/2165294/1564543

http://docs.mongodb.org/v2.4/faq/diagnostics/#faq-keepalive

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:MongoDBReplicaSet排错-创新互联
文章起源:http://myzitong.com/article/gsdgs.html