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)
上一篇 2016-11-06 23:18
下一篇 2016-11-07 00:09

相关推荐

  • 逻辑卷(LVM)管理实例详解

    LVM基本术语 下面是LVM需要了解的基本术语:    物理卷(PV physical volume): 它可以是物理硬盘上的分区,也可以是整块物理硬盘;  卷组(VG volume group): 建立在物理卷之上,一个卷组至少包括一个物理卷,可以动态增删物理卷;  逻辑卷(LV logical volume):建立…

    Linux干货 2016-09-01
  • Python线程指南

    本文介绍了Python对于线程的支持,包括“学会”多线程编程需要掌握的基础以及Python两个线程标准库的完整介绍及使用示例。 注意:本文基于Python2.4完成,;如果看到不明白的词汇请记得百度谷歌或维基,whatever。 尊重作者的劳动,转载请注明作者及原文地址 >.< 1. 线程基础 1.1. 线程状态 线程有5种状态,状态转换的过程如…

    2015-03-13
  • ansible基础应用

    Ansible基础 ansible是一款自动化运维工具,基于Python开发,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。 Ansible架构简介 ansible的核心就是ansible平台,ansible是高度模…

    Linux干货 2016-08-22
  • nginx配置(二)

    ngx_http_gzip_module: The ngx_http_gzip_module module is a filter that compresses responses using the “gzip” method. This often helps to reduce the size of transmitted data by half…

    Linux干货 2017-05-08
  • htop使用详解

        在管理进程时通常要借助一些工具,比较常用的就是ps和top了;不过CentOS还为我们提供了一个更加强大的工具htop,下面就来了解一下此工具的使用方法。 一、安装htop         htop工具在epel源中提供,请自行配置epel源,也可以直…

    Linux干货 2015-05-18
  • 磁盘分区命令与文件系统简介

    磁盘分区命令与文件系统简介   这一次的博客是整理一下这周所学的磁盘分区fdisk与mount命令,内容不难但是比较琐碎,需要记忆的命令比较多,刚好借着博客来复习一下命令,加强一下记忆。废话不多说,开始! 首先做一下准备工作:在虚拟机上增加一个或多个磁盘,这个比较简单,在VMware虚拟机上方点虚拟机右键—>设置&#82…

    2017-08-19

评论列表(1条)

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

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