首页 > 代码库 > MongoDB配置多个ConfigDB的问题(笔记)

MongoDB配置多个ConfigDB的问题(笔记)

由于在部署集群之前没有做好的规划,在集群中只有一个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.confconfigdb=192.98.12.60:50001,192.98.12.60:50003,192.98.12.60:50004logpath=route1.logpidfilepath=route1.pidport=50002

OK,一切正常,集群可以正常启动(如果配置多个mongos,可以copy上述配置文件多个,然后修改不同的port,然后执行不同mongos命令,即可启动多个mongos)。