天天看点

mongodb 3.4 集群搭建升级版 五台集群

和前一个版本相比,改动点有:

配置文件采用yaml方式来配置

生产中取消了仲裁者的角色,因为仲裁者也不会存储数据,只是起到选举的作用,线上为了保证数据安全,每份数据都会配置两个副本集,也就是每份数据存储了三份。

优化配置,采用五台集群

使用非root账户搭建mongodb集群。

系统系统 centos6.9

五台服务器:192.168.0.31/32/33/34/35

安装包: mongodb-linux-x86_64-3.4.6.tgz

服务器规划

服务器31

服务器32

服务器33

服务器34

服务器35

mongos server

config server

shard1 server

shard2 server

shard3 server

shard4 server

shard5 server

端口分配:

权限分配:

登录root账户,将安装目录和数据目录权限分配给日常操作(youknow)账户

下载 mongodb 3.4.6 安装包

根据服务器的规范,分别在对应的服务器上建立conf、mongos、config、shard1、shard2、shard3、shard4、shard5等目录,因为mongos不存储数据,只需要建立日志文件目录即可。

为了后续方便操作,配置mongodb的环境变量,需要切到root用户下面

查看mongodb版本信息<code>mongod -v</code> 输出版本信息表明配置环境变量成功

在服务器33、34、35上配置以下内容:

添加配置文件:

添加配置文件

启动三台服务器的config server

登录任意一台配置服务器,初始化配置副本集

其中,"_id" : "configs"应与配置文件中配置的 replicaction.replSetName 一致,"members" 中的 "host" 为三个节点的ip和port

这样配置服务器就配置好了

在服务器 31、32、33上面做以下配置

配置文件

启动三台服务器的shard1 server

登陆任意一台服务器,初始化副本集

在服务器32、33、34上面做以下配置

启动三台服务器的shard2 server

在服务器33、34、35上面做以下配置

启动三台服务器的shard3 server

在服务器34、35、31上面做以下配置

启动三台服务器的shard4 server

在服务器35、31、32上面做以下配置

启动三台服务器的shard5 server

至此,五个分片和副本集搭建完毕

以下配置在服务器31、32上执行

注意:先启动配置服务器和分片服务器,后启动路由实例

启动二台服务器的mongos server

目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。

登陆任意一台mongos

这样mongodb的五台集群搭建就已经完成了,后期如何优化和运营请查看下一篇文章。

执行 rs.initiate(config); 报错:

最后发现是自己的一个端口号写错了。

启动mongos的时候报错:

这个问题卡了我们半天,找了很多的资料,不是说清理lock文件,就是说清理log文件总无解,最后看到这个网站的提示

<a href="http://www.kriblog.com/bigdata/NoSQL/MongoDb/error-child-process-failed-exited-with-error-number-1.html">ERROR: child process failed, exited with error number 1</a>

去掉了配置文件中 --fork,才将真正的错误日志打印了出来,是我们的配置文件中的路径写错了,本来是log写成了logs

原来:<code>path: /data/logs/mongos.log</code>

改为:<code>path: /data/log/mongos.log</code>

成功

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 

本文如对您有帮助,还请多帮 【推荐】 下此文。 

如果喜欢我的文章,请关注我的公众号

本文转自纯洁的微笑博客博客园博客,原文链接:http://www.cnblogs.com/ityouknow/p/7566682.html,如需转载请自行联系原作者