mongodb集群(Shard+Replica Sets)

来源:互联网 发布:vb贪吃蛇代码 编辑:程序博客网 时间:2024/04/29 23:38


/**
*安装mongoDB集群
*
*Ubuntu 14.04.1

*mongodb-x86_64-3.2.11

*

*server1-->172.16.3.103

*server2-->172.16.3.105

*server2-->172.16.3.106

*/

#server1 #server2 #server3
cd  /data
sudo  mkdir  mongodb
sudo  chown  -R  mpr:mpr  mongodb
cd  /data/mongodb
tar -zxvf mongodb-linux-x86_64-ubuntu1404-3.2.11.tgz
mv mongodb-linux-x86_64-ubuntu1404-3.2.11/*  /data/mongodb
rm -rf mongodb*
chmod -R  755 /data/mongodb/*

#server1
mkdir -p  data/shard11
mkdir -p  data/shard21
mkdir -p  config/config1
mkdir log
mkdir pid



#server2
mkdir -p  data/shard12
mkdir -p  data/shard22
mkdir -p  config/config2
mkdir log
mkdir pid



#server3
mkdir -p  data/shard13
mkdir -p  data/shard23
mkdir -p  config/config3
mkdir log
mkdir pid


######################################################

#server1
vim  shard11.conf
dbpath=/data/mongodb/data/shard11
logpath=/data/mongodb/log/shard11.log
pidfilepath=/data/mongodb/pid/shard11.pid
directoryperdb=true
logappend=true 
replSet=shard1 
port=10011 
fork=true 
shardsvr=true 
journal=true


vim shard21.conf
dbpath=/data/mongodb/data/shard21
logpath=/data/mongodb/log/shard21.log 
pidfilepath=/data/mongodb/pid/shard21.pid 
directoryperdb=true
logappend=true 
replSet=shard2 
port=10021 
fork=true 
shardsvr=true 
journal=true


vim config1.conf
dbpath=/data/mongodb/config/config1 
logpath=/data/mongodb/log/config1.log 
pidfilepath=/data/mongodb/pid/config1.pid 
directoryperdb=true
logappend=true 
port=10031 
fork=true 
configsvr=true 
journal=true


vim route.conf
configdb=172.16.3.103:10031,172.16.3.105:10032,172.16.3.106:10033 
pidfilepath=/data/mongodb/pid/route.pid
port=10040
chunkSize=1
logpath=/data/mongodb/log/route.log 
logappend=true
fork=true

-----------------------------------------------------------

#server2

vim shard12.conf
dbpath=/data/mongodb/data/shard12 
logpath=/data/mongodb/log/shard12.log 
pidfilepath=/data/mongodb/pid/shard12.pid 
directoryperdb=true
logappend=true 
replSet=shard1 
port=10012 
fork=true 
shardsvr=true 
journal=true


vim shard22.conf
dbpath=/data/mongodb/data/shard22
logpath=/data/mongodb/log/shard22.log 
pidfilepath=/data/mongodb/pid/shard22.pid 
directoryperdb=true
logappend=true 
replSet=shard2 
port=10022
fork=true 
shardsvr=true 
journal=true


vim config2.conf 
dbpath=/data/mongodb/config/config2 
logpath=/data/mongodb/log/config2.log 
pidfilepath=/data/mongodb/pid/config2.pid 
directoryperdb=true
logappend=true 
port=10032 
fork=true 
configsvr=true 
journal=true


vim route2.conf
configdb=172.16.3.103:10031,172.16.3.105:10032,172.16.3.106:10033 
pidfilepath=/data/mongodb/pid/route.pid
port=10042
chunkSize=1
logpath=/data/mongodb/log/route2.log 
logappend=true
fork=true

-----------------------------------------------------

#server3

vim shard13.conf 
dbpath=/data/mongodb/data/shard13 
logpath=/data/mongodb/log/shard13.log 
pidfilepath=/data/mongodb/pid/shard13.pid 
directoryperdb=true
logappend=true 
replSet=shard1 
port=10013 
fork=true 
shardsvr=true 
journal=true


vim  shard23.conf
dbpath=/data/mongodb/data/shard23
logpath=/data/mongodb/log/shard23.log 
pidfilepath=/data/mongodb/pid/shard23.pid 
directoryperdb=true
logappend=true 
replSet=shard2 
port=10023
fork=true 
shardsvr=true 
journal=true


vim config3.conf
dbpath=/data/mongodb/config/config3 
logpath=/data/mongodb/log/config3.log 
pidfilepath=/data/mongodb/pid/config3.pid 
directoryperdb=true
logappend=true 
port=10033 
fork=true 
configsvr=true 
journal=true


vim route3.conf 
configdb=172.16.3.103:10031,172.16.3.105:10032,172.16.3.106:10033 
pidfilepath=/data/mongodb/pid/route3.pid
port=10043
chunkSize=1
logpath=/data/mongodb/log/route3.log 
logappend=true
fork=true
################################################

#server1
bin/mongod -f shard11.conf
bin/mongod -f shard21.conf
bin/mongod -f config1.conf
bin/mongos -f route.conf

#server2
bin/mongod -f shard12.conf
bin/mongod -f shard22.conf
bin/mongod -f config2.conf
bin/mongos -f route2.conf

#server3
bin/mongod -f shard13.conf
bin/mongod -f shard23.conf
bin/mongod -f config3.conf
bin/mongos -f route3.conf
#################################

bin/mongo 172.16.3.103:10011
use admin
#定义副本集配置
config = { _id:"shard1", members:[
                     {_id:0,host:"172.16.3.103:10011"},
                     {_id:1,host:"172.16.3.105:10012"},
                     {_id:2,host:"172.16.3.106:10013",arbiterOnly:true}
                ]
         };
rs.initiate(config);  


bin/mongo 172.16.3.103:10021
use admin 
#定义副本集配置
config = { _id:"shard2", members:[
                     {_id:0,host:"172.16.3.103:10021"},
                     {_id:1,host:"172.16.3.105:10022"},
                     {_id:2,host:"172.16.3.106:10023",arbiterOnly:true}
                ]
         };  
rs.initiate(config);


bin/mongo 172.16.3.103:10040

use admin

db.runCommand({addshard:"shard1/172.16.3.103:10011,172.16.3.105:10012,172.16.3.106:10013"});
db.runCommand({addshard:"shard2/172.16.3.103:10021,172.16.3.105:10022,172.16.3.106:10023"}); 
db.runCommand({ listshards:1 }); #列出 shard 个数 
db.runCommand({enablesharding:"lcrslogdb"}); #创建 lcrslogdb 库
db.runCommand({ shardcollection : "lcrslogdb.log_collection",key : {isliCode: 1,parseTime:1},unique : false }); # 使用 log_collection 表来做分片




use lcrslogdb;
for(var i=1;i<=1000;i++)db.log_collection.save({id:i,value1:"1234567890",value2:"1234567890"});


rs.status();
db.log_collection.stats();


参考:
1.http://www.cnblogs.com/smartloli/p/4305739.html
2.http://blog.csdn.net/mchdba/article/details/51867303
3.http://www.lanceyan.com/category/tech/mongodb
0 0