由于在部署集群之前没有做好的规划,在集群中只有一个configserver和一个mongos。网上都推荐多个configserver,本人在使用的过程中发现在启动mongos进程时,congfigdb参数配置configdb需要得奇数个(比如:1、3、5...)。OK配置三个configserver吧(一个已经存在,记录了集群的配置信息)。启动mongos进程,立马发现报错信息:
config servers not in sync! config servers ** and ** differ
根据字面意思,这几个配置库的信息不同步。解决方法:将已经存在的配置库的数据导入到其他几个库中。操作脚本如下:
1、导出数据,mongodump.exe 192.98.12.60:50001 -d config 生成备份信息,默认的情况下在命令执行的目录下生一个dump文件夹,dump文件夹下生成config库的一些数据,以bson格式保存,
具体如下图表示:
2、导入备份数据:
mongorestore.exe --port 50003 --db config dump/config
mongorestore.exe --port 50004 --db config dump/config
3、重新启动mongos
mongos.exe -f c.conf
其中c.conf配置内容如下所示:
#route.conf configdb=192.98.12.60:50001,192.98.12.60:50003,192.98.12.60:50004 logpath=route1.log pidfilepath=route1.pid port=50002
OK,一切正常,集群可以正常启动(如果配置多个mongos,可以copy上述配置文件多个,然后修改不同的port,然后执行不同mongos命令,即可启动多个mongos)。