mongodb 分片集群搭建

集群架构

本次实验部署3台主机node1、node2、node3,2个副本集db1、db2作为分片,3台主机均有1个配置库实例

操作步骤

安装

node1上执行如下命令,完成后拷贝/mongodb目录到node2、node3

useradd mongodb  
mkdir -p /mongodb/data/{db1,db2,db3,configdb} 
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.10.tgz 
tar -zxvf mongodb-linux-x86_64-rhel62-3.2.10.tgz 
mv mongodb-linux-x86_64-rhel62-3.2.10/* /mongodb 
chown -R mongodb:mongodb /mongodb

启动副本实例和配置库实例

3台主机分别运行如下命令

/mongodb/bin/mongod --dbpath /mongodb/data/db1 --port 10001 --replSet db1 --fork 
/mongodb/bin/mongod --dbpath /mongodb/data/db2 --port 10002 --replSet db2 --fork 
/mongodb/bin/mongod --dbpath /mongodb/data/configdb --port 20000 --fork

初始化副本

/mongodb/bin/mongo node1:10001
> use admin
> db.runCommand(  
	{  
		"replSetInitiate":  
		{  
			"_id":"db1",  
			"members":  
			[  
				{  
					"_id":1,  
					"host":"node1:10001"  
				},  
				{  
					"_id":2,  
					"host":"node2:10001"  
				},  
				{  
					"_id":3,  
					"host":"node3:10001"  
				}  
			]  
		}  
	})  
> exit;

/mongodb/bin/mongo node1:10002
> use admin
> db.runCommand(  
	{  
		"replSetInitiate":  
		{  
			"_id":"db2",  
			"members":  
			[  
				{  
					"_id":1,  
					"host":"node1:10002"  
				},  
				{  
					"_id":2,  
					"host":"node2:10002"  
				},  
				{  
					"_id":3,  
					"host":"node3:10002"  
				}  
			]  
		}  
	}) 
> exit;

node1上启动mongos

/mongodb/bin/mongos --port 30000 --configdb node1:20000,node2:20000,node3:20000 --fork /mongodb/bin/mongo node1:30000 
> use admin 

#添加分片 
> db.runCommand({"addShard":"db1/node1:10001"})   
> db.runCommand({"addShard":"db2/node1:10002"})   

#此时listshards会显示主辅所有节点 
> db.runCommand({listshards:1}) 

#新建库并开启分片 
> db.runCommand({"enablesharding":"testdb"})  
> db.runCommand({"shardcollection":"testdb.testcoll","key":{_id:'hashed'}})

插入测试数据,可看到数据分配在随机分片

> for(var i=0;i<10;i++){db.testcoll.insert({testkey:"testvalue"+i});}  
/mongodb/bin/mongo node1:10002 
> db.testcoll.find() 
/mongodb/bin/mongo node2:10001 
> db.testcoll.find()

原创文章,作者:N24_lizi1,如若转载,请注明出处:http://www.178linux.com/58095

(7)
N24_lizi1N24_lizi1
上一篇 2016-11-06 23:18
下一篇 2016-11-07 00:09

相关推荐

  • Linux基础操作-week5

    1、显示当前系统上root、fedora或user1用户的默认shell; 方式一: # whoami root # echo $SHELL /bin/bash 方式二: #grep user1 /etc/passwd|awk -F “:” ‘{print $7}’ /bin/bash 2、找出/etc/rc.…

    Linux干货 2016-11-27
  • Linux网络管理基础

    Linux网络管理基础 动态路由 Bonding Network Teaming 静态路由实验 Linux的网络管理,了解基本的网络知识是基础,除此,要掌握好ifconig命令、ip命令、nmcli命令(CentOS 7),以及涉及到网络的配置文件。 配置动态路由: 通过守护进程获取动态路由,安装quagga包,支持RIP、OSPF、BGP,通过命令vtys…

    Linux干货 2016-09-09
  • 开源堡垒机-01-JumpServer的安装

    前段时间曾经用过JumpServer帮助一个客户完成了他的关于堡垒机的需求,由于当时赶进度,没来得及将整个过程记录和完善,现在抽时间慢慢整理下。 1)JumpServer的介绍 Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。 支持常见系统: Cent…

    Linux干货 2016-07-22
  • 软件包管理工具——yum

        在linux上安装管理软件包会遇到包依赖问题,使用yum工具就可以很好的解决这个问题,yum的工作原理基于c/s结构:客户端与服务器,搭建好客户端与服务器,就可以使用yum工具了。 一、搭建yum仓库客户端 1.yum仓库的路径有三种:http://, ftp://,file://,首先创建一个配置文件,用来存放yum仓库的路径,…

    2017-08-06
  • linux中如何使用帮助

     在linux学习过程中,会遇到许多困难,尤其是一些命令掌握不牢固,不知道具体用法;或者是想要实现一些功能而不知道使用何种命令。这时求人不如求己,上网求助不如自己学会使用帮助,下面介绍几种linux帮助的用法。 1.what is +命令    执行这条命令可以显示命令的简短描述,让大家了解命令的基本功能。同时可以看到命令相关章…

    2017-07-23
  • find用法及德·摩根定律

    德·摩根定律   奥古斯都·德·摩根首先发现了在逻辑命题中存在着下面这些关系:      非(P且Q)=非P或非Q      非(P或Q)=非P且非Q 上述逻辑命题可以解释为:    not ( P and Q)=not P or not Q    …

    Linux干货 2016-08-18

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-10 14:41

    赞,应该比其他小伙伴领先好多,可以多加个场景,mongodb设置副本集之后,如果一个node 节点的数据被删除了,该如何处理~