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
下一篇 2016-11-07

相关推荐

  • Linux网络配置

    (1)、ifcfg家庭命令配置: ifconfig/route/netstat ifup/ifdown   (2)、ip命令配置: ip addr | route | link   (3)、修改配置文件 IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE 路由相关…

    2018-01-30
  • LVM2:创建、使用、扩展、缩减、快照五步骤

    LVM2这是个关键的概念,还是从操作中比较容易理解 1、创建一个至少有两个PV组成的大小为40G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录 注意点:在vmware中添加两块硬盘,但是并不能马上可以查看,需要扫描一下磁盘,磁盘未/dev/sdc,/dev/sdd 然后创建LVM的基…

    Linux干货 2016-09-05
  • Linux基础:计算机的组成及其功能

    N28 第一周作业

    2017-12-06
  • Linux下装载软Raid

    步骤1.创建磁盘,并转换为fd #fdisk /dev/sdb //这里使用新的磁盘sdb 然后输入n ,创建分区 使用默认的起始点 输入大小为+100M 然后重复刚才的操作4次,创建4个分区,创建完4个分区后 我们还要改变分区的ID 在分区的主菜单输入T 然后输入要改变ID的分区号,也就是最后4个分区 然后输入分区的ID:fd 四个分区都改成FD 完成后,…

    Linux干货 2017-08-12
  • 磁盘及文件系统管理

    磁盘管理     MBR:master boot record 主引导记录。位于磁盘的0磁道0扇区共512字节,独立于操作系统之外的。512字节的划分               …

    Linux干货 2016-08-25
  • 面向对象

    语言分类 面向机器:抽象成机器指令,机器容易理解。代表:汇编语言 面向过程:一件事情分步骤来完成,出现各种情况有解决办法一一对应,问题规模小可以步骤化、按部就班的处理。代表:C语言 面向对象oop(object Oriented Programming):随着计算机解决问题的规模扩大、情况更复杂,需要很多部分协作,面向过程编程就不合适了,演变出了面向对象编程…

    Linux干货 2017-11-13

评论列表(1条)

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

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