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干货 2016-10-23
  • 推荐-常用RAID级别详解

    一、RAID是什么       RAID(Redundant Arrays of Indent Disks)的名称是独立磁盘冗余阵列,是一种通过将多块硬盘按照某种特定的结构组织起来当做一块硬盘来使用的技术,多块硬盘不同的组织结构我们称之为RAID的级别。而RAID技术的特性主要表现在两个方面: (1)提高硬盘…

    Linux干货 2016-03-27
  • 8-2 用户组和权限管理

    用户组和权限管理     本节主要是:su、passwd、chage、chown、chgrp、chmod、umask等命令及文件的三种普通权限和三种特殊权限     切换用户或以其他用户身份执行命令:su su [options…] [-] [user[args…]] 切换用…

    Linux干货 2016-08-07
  • Linux网络管理相关工具

      Linux本身提供了许多用于网络测试、网络排错、网络状态分析的工具,下面来看几个比较常用的工具。   一、ping命令   ping命令是利用ICMP协议还测试网络的连通性。   命令格式:ping [option] IP     常用选项:       -c #:…

    Linux干货 2016-01-14
  • linux中特殊符号用法

    1 #    #  管理员账户    $  普通账户   在脚本中 #也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后边是注解文字,不会被执行 例如     #!/bin/bash     #th…

    Linux干货 2016-08-15
  • Linux主要发行版

    Redhat:三大发行版之一,由红帽公司维护,分支有fedora,centosDebian:社区维护,非商业维护,三大发行版之一,分支有Ubuntu,Mintslackware:三大发行版之一,分支有Suse,opensusearch Linux:轻量级行业新贵

    Linux干货 2018-03-03

评论列表(1条)

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

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