MongoDB: 一个简单的配置两个shared的例子

转载 2016年08月29日 17:54:46

MongoDB: 一个简单的配置两个shared的例子

标签: mongodb服务器数据库扩展测试shell
 2736人阅读 评论(0) 收藏 举报
 分类:

目录(?)[+]

 

MongoDB: 一个简单的配置两个shared的例子

 

下面这个例子开启了两个shared服务,一个配置服务,一个mongos服务,所有这些服务都在同一台服务器上进行测试,当然也可以放在不同的服务器上。

 

1. 创建Shards

在本机上启动一对shared服务

 

[c-sharp] view plain copy
  1. $ mkdir /data/db/a /data/db/b  
  2. $ ./mongod --shardsvr --dbpath /data/db/a --port 10000 > /tmp/sharda.log &  
  3. $ cat /tmp/sharda.log  
  4. $ ./mongod --shardsvr --dbpath /data/db/b --port 10001 > /tmp/shardb.log &  
  5. $ cat /tmp/shardb.log  
 

 

2. 启动配置与mongos服务

 

下面要启动配置服务与mongos服务,

 

[c-sharp] view plain copy
  1. $ mkdir /data/db/config  
  2. $ ./mongod --configsvr --dbpath /data/db/config --port 20000 > /tmp/configdb.log &  
  3. $ cat /tmp/configdb.log  
  4. $ ./mongos --configdb localhost:20000 > /tmp/mongos.log &  
  5. $ cat /tmp/mongos.log  
 

 

这里mongos不需要指定数据目录,它所需要的数据都是从配置服务器上得到的。当然这里的配置服务器也可以集群,这样可以提高可用性。

 

当然这里的两个shard和配置服务可以分布在不同的机器上,只要在这里指定相应的ip地址就行。这里为了测试,把所有服务都开在同一台服务器上。

 

NOTE: 要注意的是,mongos默认的chunk的大小为200M,你可以在启动mongos服务的时候设置chunk的大小,它以MB为单位,当两个shard进行数据平衡的时候,就会以chunk为单位进行数据迁移。

 

[c-sharp] view plain copy
  1. $ ./mongos --configdb localhost:20000 --chunkSize 1 > /tmp/mongos.log &    
 

 

这里设置chunkSize为1MB

 

3. 连接mongos服务

如果在本机连接服务的话只要./mongo命令就可以,它默认的连接端口号为27017,当然你也可以连接远程的服务器, 这里要指定机器ip地址。

 

下面我们连接mongos后进行shard的配置。

 

[c-sharp] view plain copy
  1. $ ./mongo  
  2. MongoDB shell version: 1.6.0  
  3. connecting to: test  
  4. > use admin      // 这里一定要使用管理员才能进行配置  
  5. switched to db admin  
  6. > db.runCommand( { addshard : "localhost:10000" } )   // 加入shard节点  
  7. "shardadded" : "shard0000""ok" : 1 }  
  8. > db.runCommand( { addshard : "localhost:10001" } )  
  9. "shardadded" : "shard0001""ok" : 1 }  
 

 

下面你要说明要对哪个数据库进行分块,而且数据库中的表要指定相应的一个key或多个keys,这里为用来对数据进行切分用的。

 

[c-sharp] view plain copy
  1. > db.runCommand( { enablesharding : "test" } )  
  2. {"ok" : 1}  
  3. > db.runCommand( { shardcollection : "test.people", key : {name : 1} } )  
  4. {"ok" : 1}  
 

 

 

4. 看一下数据库的状态

 

[c-sharp] view plain copy
  1. > use config  
  2. switched to db config  
  3. > show collections  
  4. chunks  
  5. databases  
  6. lockpings  
  7. locks  
  8. mongos  
  9. settings  
  10. shards  
  11. system.indexes  
  12. version  
 

 

这些表包括了分块配置的所有的信息。

 

5. 分块与复制的关系。

数据的分块就相当于对数据库进行scale out,所集中管理的数据分到不同的单点上去管理,以提高数据库的可扩展性。前面所讲的复制是提高数据的可用性而准备的,它不会因为一个节点的故障而影响数据的可用性。

 

看一下面的图就知道明白了,一个是横向扩展(shared),另一个是纵向扩展(replication),从而形成了一个数据阵列。

 

mongodb

 

6. 参考

http://www.mongodb.org/display/DOCS/A+Sample+Configuration+Session

http://www.mongodb.org/display/DOCS/Sharding+Introduction

Mongodb同机多实例部署

所谓同机多实例是指在同一台服务器上部署多个mongod实例,本部署教程在2.4、2.6和2.8版本下均可使用,本博主均已测试通过。需要额外注意的是2点: 1、需要同步服务器时间 2、使用numac...
  • matrixyy
  • matrixyy
  • 2014年12月31日 15:55
  • 4099

mongodb多实例

同mysql,也可以在一台服务器上以不同的端口,启动多个mongodb实例。非常简单。 1、已经解压安装一个实例后,在不同目录下创建数据、日志目录 mkdir -p /home/mongo/270...
  • u010587433
  • u010587433
  • 2015年08月24日 10:08
  • 2727

一、mongodb之单个实例、主从配置、多个节点

在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写、海量数据高效存储、高可扩展性和高可用性这些难题。不过就是因为这些问题Nosql诞生了。 NOSQL有这些优势:  · 大数据量,可...
  • guixuecheng
  • guixuecheng
  • 2014年12月26日 14:48
  • 3014

MongoDB: 一个简单的配置两个shared的例子

 MongoDB: 一个简单的配置两个shared的例子 下面这个例子开启了两个shared服务,一个配置服务,一个mongos服务,所有这些服务都在同一台服务器上进行测试,当然也可以放在不同的服务器...
  • amuseme_lu
  • amuseme_lu
  • 2011年05月20日 10:37
  • 3562

mongodb 分片集群中加入新的config servers

切换config servers 这里准备做的事情就是替换configdb:大家知道在mongodb分片集群里面,需要用mongos来与应用程序做交互,而且启动mongos的时候一般会起1或者3个co...
  • mchdba
  • mchdba
  • 2016年07月15日 19:28
  • 6432

Mongodb简单例子

1、实体类 @Document(collection = "t_user") public class MongoUser implements Serializable{     private ...
  • wuliu_forever
  • wuliu_forever
  • 2016年09月19日 09:21
  • 1162

几个简单的博弈例子

几个简单的博弈例子 博弈的本意是下棋,现在也引申为:在一定条件下,遵守一定的规则,一个或几个拥有绝对理性思维的人或团队,从各自允许选择的行为或策略进行选择并加以实施,并从中各自取得相应结果或收益的过程...
  • Fries062
  • Fries062
  • 2016年10月10日 20:59
  • 826

MongoDB Sharding 分片技术

1、概述
  • yyywyr
  • yyywyr
  • 2014年05月27日 22:43
  • 7204

一个单例模式的简单例子

ex1: public class Singleton    {        private static final Singleton singleton = null;           p...
  • silence1214
  • silence1214
  • 2009年03月29日 14:56
  • 23500

Java一个简单的死锁例子

内容:一个简单的死锁例子,大概的思路:两个线程A和B,两把锁X和Y,现在A先拿到锁X,然后sleep()一段时间,我们知道sleep()是不会释放锁资源的。然后如果这段时间线程B拿到锁Y,也sleep...
  • u011345136
  • u011345136
  • 2015年05月16日 20:07
  • 1773
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MongoDB: 一个简单的配置两个shared的例子
举报原因:
原因补充:

(最多只允许输入30个字)