您的位置:首页 > 编程语言 > Go语言

简单mongo集群配置

2013-10-09 10:35 453 查看
--简单mongo集群的配置过程..
1.启动相关mongo进程.
--mongod(shard进程).
192.168.1.39
[root@localhost ~]# /usr/local/bin/mongod --dbpath /mongodata/27020 --port 27020
192.168.1.40
[root@localhost ~]# /usr/local/bin/mongod --dbpath /mongodata/27021 --port 27021
192.168.1.39
[root@localhost ~]# /usr/local/bin/mongod --dbpath /mongodata/27023 --port 27023
192.168.1.39
[root@localhost ~]# /usr/local/bin/mongod --dbpath /mongodata/27024 --port 27024
--config进程.
192.168.1.39
[root@localhost ~]# /usr/local/bin/mongod --dbpath /mongodata/27022 --port 27022 --configsvr
--mongos/路由进程.
192.168.1.40
[root@localhost ~]# /usr/local/bin/mongos --configdb localhost:27022
--[root@localhost ~]# /usr/local/bin/mongos --configdb 192.168.1.39:27022

--查看有关进程.
[root@slaver1 ~]# ps -ef | grep mongo
[root@slaver1 ~]# kill 26205

2.连接mongos,添加shard.
[root@slaver1 ~]# mongo
MongoDB shell version: 1.6.3
connecting to: test
> show dbs
admin
local
> use admin
switched to db admin

> db.runCommand( { addshard : "localhost:27020", allowLocal : true } )
{"ok" : 1 , "added" : "localhost:27020"}
> db.runCommand( { addshard : "localhost:27021", allowLocal : true } )
{"ok" : 1 , "added" : "localhost:27021"}
--添加maxSize参数的情形.
> db.runCommand({addshard:"192.168.1.39:27020",allowLocal:true,maxSize:100})
{ "shardAdded" : "shard0000", "ok" : 1 }
> db.runCommand({addshard:"192.168.1.40:27021",allowLocal:true,maxSize:100})
{ "shardAdded" : "shard0001", "ok" : 1 }
--maxSize:100指的是该shard存储的数据的临界值,超过该值之后会在服务器线程提示警告信息,添加新的shard后消失.

--列出当前指定shard.
> db.runCommand({listshards:1});

--列出当前数据库shard分布状况.
> db.printShardingStatus();

3.添加需要分片的数据库.
> config = connect("localhost:27022")  //连接config server,需要在mongos服务器上操作
connecting to: localhost:27022
localhost:27022
--> config = connect("192.168.1.39:27022")
> config = config.getSisterDB("config")  //获取配置信息
config
> user001=db.getSisterDB("user001");  //新增数据库user001
user001
> db.runCommand({enablesharding:"user001"})  //激活数据库级别分片
{ "ok" : 1 }
> db.printShardingStatus();
--- Sharding Status ---
sharding version: { "_id" : 1, "version" : 3 }
shards:
{ "_id" : "shard0000", "host" : "localhost:27020" }
{ "_id" : "shard0001", "host" : "localhost:27021" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "user001", "partitioned" : true, "primary" : "shard0000" }

--启动collection级别的分片..在数据库没有启动shard的条件下,collection不允许开启shard模式.
> db.runCommand({shardcollection:"user001.solrtop",key:{_id:1},unique:true})
{ "collectionsharded" : "user001.solrtop", "ok" : 1 }
至此配置完成!

--查看collection的分片状况..
use user001;
db.solrtop.stats()

--发生错误[Balancer] no availalable shards to take chunks..
该错误是在当某一shard设置的maxsize被超过以后而又没有相应的shard分担相应的存储压力条件下,此错误信
息会持续报出,当添加的新的shard后,该信息消失,数据上表现为,原已存储shard数据分布不变,增加的shard接
受新的数据内容.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: