Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1280270
  • 博文数量: 79
  • 博客积分: 1959
  • 博客等级: 上尉
  • 技术积分: 2719
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-19 12:07
个人简介

樽中酒不空

文章分类

全部博文(79)

文章存档

2024年(3)

2020年(4)

2019年(1)

2017年(2)

2016年(2)

2015年(7)

2014年(11)

2013年(13)

2012年(18)

2011年(2)

2010年(16)

分类: LINUX

2010-08-26 09:09:08

参考“MongoDB分布式部署之分片配置
http://jokry.me/blog/2010/07/mongodb-distributable-slice/
实际操作了一下
具体环境:两台虚拟64位centos,分别是192.168.1.20和192.168.1.21
整个设置是在同一台机器上两组分片,每组分片在两台机器上互为主从。
config服务器运行在21上,mongos运行在20上。

具体:
#启动第一组分片主库(在192.168.1.20上执行),端口为18020
mongod -fork --logpath=/tmp/1 --pairwith 192.168.1.21:18020 --dbpath=/mongo/data1 --port 18020
#启动第一组分片从库(在192.168.1.21上执行)
mongod -fork --logpath=/tmp/1 --pairwith 192.168.1.20:18020 --dbpath=/mongo/data1 --port 18020


#启动第二组分片主库(在192.168.1.20上执行)端口为18021
mongod -fork --logpath=/tmp/2 --pairwith 192.168.1.21:18021 --dbpath=/mongo/data2 --port 18021
#启动第二组分片从库(在192.168.1.21上执行)
mongod -fork --logpath=/tmp/2 --pairwith 192.168.1.20:18021 --dbpath=/mongo/data2 --port 18021

#启动configserver,在192.168.1.20
#mongod -fork --logpath=/tmp/3 --configsvr --dbpath  /mongo/configsvr --port 18022

#启动configserver,在192.168.1.21,config server数目只能是奇数
mongod -fork --logpath=/tmp/3 --configsvr --dbpath  /mongo/configsvr --port 18022

#在192.168.1.20上执行
mongos -fork --logpath=/tmp/4 --configdb 192.168.1.21:18022

#客户端连接mongos
mongo --host 192.168.1.20
 show dbs

use admin
#增加第一组分片
db.runCommand( { addshard : "192.168.1.20:18020,192.168.1.21:18020", allowLocal : true } ) 

#增加第二个分片
db.runCommand( { addshard : "192.168.1.20:18021,192.168.1.21:18021", allowLocal : true } ) 
  
db.runCommand({listshards:1})

config = connect("192.168.1.21:18022")
config = config.getSisterDB("config")   

#新增数据库test
test= db.getSisterDB("test")
db.runCommand( { enablesharding : "test" } )

#建立分片数据集 msg,posttime 是time_t,结果由time()函数得到
db.runCommand( { shardcollection : "test.msg", key : {posttime : 1} } )
db.printShardingStatus();

然后,php或c++连接192.168.1.20就可以进行insert等操作了。因为posttime有连续性,添加记录达到
几十万条以上,可以看到data1下面的文件比较大,data2下面文件也在增长,但比data1小。比较20和21两台机器下的同名目录文件,大小是一样的。

这种操作key 没有散列,读写操作过于集中,下一步研究一下好方法,可能采用hash使key散开。然后,在每台机器上启动10个分片进程再做测试。



阅读(3754) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-08-28 08:53:34

Download More than 1000 free IT eBooks: http://free-ebooks.appspot.com