当前位置: 首页 > mongodb > 正文

MongoDB分片副本集的环境搭建

下面是在生产环境下部署mongodb sharded replica set集群的步骤:
系统环境配置情况:
3个副本集(replica set),每个副本集由不同的机器上的3个mongod实例组成。
3个sharding。每个shard是一个副本集。
3个配置服务器。每个服务器是在不同的机器上。
1个mongos路由。

集群架构如下,这套步骤在如下Ubuntu服务器上测试成功:

最佳实践:
1.在生产环境下,您必须部署有三个配置服务器实例,并且每一个运行在在不同服务器上,以保证良好的性能和数据的安全性。在测试环境中,可以运行在一台服务器配置所有三个实例。
2.一个shard可以是一个独立的mongod或副本集。在生产环境中,每个碎片应该是一个副本集。
3.副本集应该保证有奇数个成员,这将确保选举能顺利进行。每个成员实例应该放在不同的服务器上。在生产环境中,三个成员实例可以保证数据的安全性。
4.这套mongos是轻量级的,不需要数据目录。可以在上面运行其它集群组件,诸如运行应用服务或跑mongod进程。

好吧,我们现在开始:
1. 创建replica set 1
在每台服务器上执行如下操作:

说明:
nohup命令让mongod后台运行。
shardsvr选项配置此mongod实例作为一个分区集群shard。
DBPATH的<path>选项指定数据存储到文件夹/data/db1。
<PORT>选项指定实例侦听端口10001。
replSet<setname>选项指定副本集的名称。在副本集中的所有主机必须具有相同的一组名称。该组的名字是我的设定是1。
日志数据写入到/tmp/shard1.log.You可以使用cat /tmp/shard1.log来查看日志。

执行MogoDB 命令创建replica set。

说明:
congfig对象定义了replica set的成员
id 对应了replSet
rs.initiate(config) 初始化replica set
rs.status()返回replica set的状态
注意,这些命令必须在所有三台机器上都执行一遍,不仅仅是在server1上。

启动三个config server
在所有服务器上执行如下命令:

启动mongos query路由
在server1上执行:

创建shard 1
在server1上执行:

开启sharding collection
在server1上执行:

可以执行下面的命令列出shard的状态:

创建replica set 2
在所有节点上执行:

在Server1上执行如下MongoDB shell,并且执行命令创建replica set

创建shard 2
在server 1 上执行:

创建replica set 3
在所有节点上执行:

在Server1上执行如下MongoDB shell,并且执行命令创建replica set

创建shard 3
在server 1 上执行:

现在sharding 状态:
server1上执行

在query router上保存和查询数据
router是管理集群上存储数据的实例,客户端连接mongos而不是链接mongod实例。
server1上执行如下:

启动另一个query router
server1上执行:

原作者:jeffreysun http://www.sunzhongkui.me

参考文档:
[1] mongod command options
http://docs.mongodb.org/manual/reference/program/mongod/
[2] mongos command options
http://docs.mongodb.org/manual/reference/program/mongos/

本文固定链接: https://www.sudops.com/mongodb-sharded-replica-set-setup.html | 运维·速度

该日志由 Fisher 于2014年02月24日发表在 mongodb 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: MongoDB分片副本集的环境搭建 | 运维·速度
关键字:

MongoDB分片副本集的环境搭建:等您坐沙发呢!

发表评论


Time limit is exhausted. Please reload the CAPTCHA.

快捷键:Ctrl+Enter