1、若是启动时出现如下两种情况
ERROR: child process failed, exited with error number 1
ERROR: child process failed, exited with error number 100
分别对应的问题是,
1为配置文件中配置的路径与实际路径不符,简而为之就是,配置文件路径有问题
100 则是因为mongodb没有正常关闭,导致mongodb.lock文件没有正常删除,碰到这种情况,可以进入到配置的data目录底下,将mongodb.lock文件删除,则能正常启动
2、关于副本集, 理论上一主一从一仲裁,三个节点即可形成mongodb的副本集,仲裁节点不参与数据交互,从节点除非在配置副本集的时候有设置可以进行读写,否则默认是不可读不可写的,仅进行数据同步,不过,可以使用rs.slaveOk() 命令 来进行读取数据。但这个命令每次连接都要输入一次,我没有碰到非用从节点存取数据的情况,所以并没有研究如何做才能一劳永逸。 这三个节点,都有投票权,也就是说,如果当前主节点宕机了,从节点跟仲裁节点会投票决定将从节点变成主节点,这与redis的集群性质一样。
在初始配置副本集以后,是可以连接进当前主节点,进行副本集内部的节点变迁操作的。但如果在连接的时候,提示
{
"ok" : 0,
"errmsg" : "Quorum check failed because not enough voting nodes responded; required 2 but only the following 1 voting nodes responded: 172.XXX.XXX.XXX:27017; the following nodes did not respond affirmatively: 172.XXX.XXX.XX:27017 failed with No route to host",
"code" : 74,
"codeName" : "NodeNotFound"
}
错误原因是:添加的该节点防火墙没关闭,或者是该节点没有正常运行等等。
当需要往副本集添加从节点的时候,首先要保证被添加的节点目录结构与副本集的节点一致,然后就是要注意不要影响到生产环境下的正常运维,因为添加进去的时候,mongodb内部会进行数据同步的情况,会有一定的波动。
3、mongodb的图形用户界面有 monggodb-compass,但是要注意版本的匹配,比如我安装的mongodb版本较低,使用的mongodb-compass版本却是最新的,它就无法连接进去。会有如下提示
Server at ip:port reports wire version 0, but this version of the driver requires at least 1 (MongoDB 2.6).
这种情况解决方案有两种,要么抬高部署的mongodb版本,要么去mongodb-compass官网下载较低版本的用户界面。 大多数都会选择第二种,mongodb-compass可以直接下载zip文件,免安装,极为方便。