MongoDB: 一个简单的配置两个shared的例子
2016-08-29 17:54
423 查看
MongoDB: 一个简单的配置两个shared的例子
标签: mongodb服务器数据库扩展测试shell2011-05-20 10:37 2736人阅读 评论(0) 收藏 举报
分类:
我的笔记(20)
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
MongoDB: 一个简单的配置两个shared的例子
下面这个例子开启了两个shared服务,一个配置服务,一个mongos服务,所有这些服务都在同一台服务器上进行测试,当然也可以放在不同的服务器上。
1. 创建Shards
在本机上启动一对shared服务[c-sharp] view
plain copy
$ mkdir /data/db/a /data/db/b
$ ./mongod --shardsvr --dbpath /data/db/a --port 10000 > /tmp/sharda.log &
$ cat /tmp/sharda.log
$ ./mongod --shardsvr --dbpath /data/db/b --port 10001 > /tmp/shardb.log &
$ cat /tmp/shardb.log
2. 启动配置与mongos服务
下面要启动配置服务与mongos服务,
[c-sharp] view
plain copy
$ mkdir /data/db/config
$ ./mongod --configsvr --dbpath /data/db/config --port 20000 > /tmp/configdb.log &
$ cat /tmp/configdb.log
$ ./mongos --configdb localhost:20000 > /tmp/mongos.log &
$ cat /tmp/mongos.log
这里mongos不需要指定数据目录,它所需要的数据都是从配置服务器上得到的。当然这里的配置服务器也可以集群,这样可以提高可用性。
当然这里的两个shard和配置服务可以分布在不同的机器上,只要在这里指定相应的ip地址就行。这里为了测试,把所有服务都开在同一台服务器上。
NOTE: 要注意的是,mongos默认的chunk的大小为200M,你可以在启动mongos服务的时候设置chunk的大小,它以MB为单位,当两个shard进行数据平衡的时候,就会以chunk为单位进行数据迁移。
[c-sharp] view
plain copy
$ ./mongos --configdb localhost:20000 --chunkSize 1 > /tmp/mongos.log &
这里设置chunkSize为1MB
3. 连接mongos服务
如果在本机连接服务的话只要./mongo命令就可以,它默认的连接端口号为27017,当然你也可以连接远程的服务器, 这里要指定机器ip地址。下面我们连接mongos后进行shard的配置。
[c-sharp] view
plain copy
$ ./mongo
MongoDB shell version: 1.6.0
connecting to: test
> use admin // 这里一定要使用管理员才能进行配置
switched to db admin
> db.runCommand( { addshard : "localhost:10000" } ) // 加入shard节点
{ "shardadded" : "shard0000", "ok" : 1 }
> db.runCommand( { addshard : "localhost:10001" } )
{ "shardadded" : "shard0001", "ok" : 1 }
下面你要说明要对哪个数据库进行分块,而且数据库中的表要指定相应的一个key或多个keys,这里为用来对数据进行切分用的。
[c-sharp] view
plain copy
> db.runCommand( { enablesharding : "test" } )
{"ok" : 1}
> db.runCommand( { shardcollection : "test.people", key : {name : 1} } )
{"ok" : 1}
4. 看一下数据库的状态
[c-sharp] view
plain copy
> use config
switched to db config
> show collections
chunks
databases
lockpings
locks
mongos
settings
shards
system.indexes
version
这些表包括了分块配置的所有的信息。
5. 分块与复制的关系。
数据的分块就相当于对数据库进行scale out,所集中管理的数据分到不同的单点上去管理,以提高数据库的可扩展性。前面所讲的复制是提高数据的可用性而准备的,它不会因为一个节点的故障而影响数据的可用性。
看一下面的图就知道明白了,一个是横向扩展(shared),另一个是纵向扩展(replication),从而形成了一个数据阵列。
6. 参考
http://www.mongodb.org/display/DOCS/A+Sample+Configuration+Sessionhttp://www.mongodb.org/display/DOCS/Sharding+Introduction
相关文章推荐
- MongoDB: 一个简单的配置两个shared的例子
- django入门配置,一个简单的 hello world例子
- NAnt学习笔记(1) -- NAnt的配置文件结构和一个简单的NAnt例子
- struts2的配置和一个简单的例子
- linux两个程序通过共享内存通信的一个简单例子
- J2ME程序开发环境配置的一个简单例子
- struts2的配置和一个简单的例子
- spring-data-mongodb一个系统xml文件里面配置两个数据源
- structs1.x的配置及一个简单的登陆例子
- iBATIS教程 (二)环境的安装和配置,以及一个简单的例子
- struts2的配置和一个简单的例子
- Spring AOP面向切面编程一个简单例子和在配置过程中出现错误
- Struts2的配置和一个简单的例子
- C++调用Lua读取配置文件的一个简单例子
- linux两个程序通过共享内存通信的一个简单例子
- 由最简单的一个例子说起,匿名用户可读可写的实现(LINUX)配置
- javaweb之Session简单例子(两个页面一个存数据,一个取数据)和session的一些基本内容
- 一个简单的config配置例子
- binbinyang---GreenDao 3.0配置以及简单一个例子,完成增删改查,有动态图
- 在MFC下使用OpenGL的一个简单的例子