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的发行版,并描述不同发行版之间的联系与区别。 – 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。 – 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shu…

    Linux干货 2016-12-04
  • 软件包管理

    软件包的分类,主要有以下两大类    源码包    二进制包(rpm包,系统默认包) rpm包由Redhat公司提出,被众多linux发行版所采用。 优点:建立统一的数据库文件,详细记录软件包的安装、卸载等变化信息,能够自动的分析软件包依赖关系。 查询已安装的rpm软件信息: 格式:     rpm…

    Linux干货 2016-08-25
  • 关于大型网站技术演进的思考(七):存储的瓶颈(7)

    原文出处: 夏天的森林  本文开篇提个问题给大家,关系数据库的瓶颈有哪些?我想有些朋友看到这个问题肯定会说出自己平时开发中碰到了一个跟数据库有关的什么什么问题,然后如何解决的等等,这样的答案没问题,但是却没有代表性,如果出现了一个新的存储瓶颈问题,你在那个场景的处理经验可以套用在这个新问题上吗?这个真的很难说。 其实不管什么样的问题场景最…

    2015-03-11
  • selinux介绍

    本章内容 SELinux概念启用SELinux管理文件安全标签管理端口标签管理SELinux布尔值开关管理日志查看SELinux帮助 SELinux介绍 SELinux: Secure Enhanced Linux,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporat…

    Linux干货 2016-09-19
  • 软件包管理工具的使用及yum源仓库的配置

    我们知道CentOS,本质上是RedHat的社区版,其无论是功能还是软件配置上都与RedHat保持一致,因此CentOs系列的软件包管理主要的也是rpm和yum工具。 RPM包管理 rpm包管理工具可以说是历史悠久、名声斐然了。rpm起初是RedHat公司研发的软件包管理工具,即RedHat Package Managemer。但由于其性能突出,在开源界得到…

    Linux干货 2016-11-06
  • 马哥教育首届IT技术博客大赛–复审阶段

    马哥教育首届IT博客大赛大众评审开始了 2016年马哥教育首届IT博客技术大赛,评委初审已结束,正式进入大众评审阶段。。。。 此次博客大赛,虽然因为准备时间比较仓促,举办经验略有不足(快去鄙视小编~&#x1f612;),但还是收到了10多位优秀的小伙伴共80篇博文(看看人家的劲头,这就是差距呀&#x1f613;)的参赛作品投递; 其中初审最高…

    Linux干货 2016-06-07

评论列表(1条)

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

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