生产环境MongoDB 分片与集群 方案(一)

2015-07-16 12:09:01 · 作者: · 浏览: 5

生产环境MongoDB 分片与集群 方案


一、 mongodb分片与集群拓扑图



二、分片与集群的部署


1.Mongodb的安装


分别在以上3台服务器安装好mongodb


安装方法见安装脚本。


2.Mongod 创建单个分片的副本集


10.68.4.209


①建立数据文件夹和日志文件夹


mdkir /data/{master,slave,arbiter}


mkdir /data/log/mongodb/{master,slave,arbiter}? -p


②建立配置文件


#master.conf


dbpath=/data/master


logpath=/data/log/mongodb/master/mongodb.log


pidfilepath=/var/run/mongo_master.pid


#directoryperdb=true


logappend=true


replSet=policydb


port=10002


oplogSize=10000


fork=true


noprealloc=true


profile=1


slowms=200


?



#slave.conf


dbpath=/data/slave


logpath=/data/log/mongodb/slave/mongodb.log


pidfilepath=/var/run/mongo_slave.pid


#directoryperdb=true


logappend=true


replSet=policydb


port=10001


oplogSize=10000


fork=true


noprealloc=true


profile=1


slowms=200


?


#arbiter.conf


dbpath=/data/arbiter


logpath=/data/log/mongodb/arbiter/mongodb.log


pidfilepath=/var/run/mongo_arbiter.pid


#directoryperdb=true


logappend=true


replSet=policydb


port=10000


oplogSize=10000


fork=true


noprealloc=true


profile=1


slowms=200


③启动mongodb


/etc/init.d/mongodb_master start


/etc/init.d/mongodb_slave? start


/etc/init.d/mongodb_arbiter start


④配置主、备、仲裁节点


主节点:


# /usr/local/mongodb/bin/mongo? 10.68.4.209:10002


MongoDB shell version: 2.4.9


connecting to: 10.68.4.209:10002/test


> use admin


switched to db admin


>config={ _id:"policydb", members:[ {_id:0,host:'10.68.4.209:10002',priority:2}, {_id:1,host:'10.68.4.209:10001',priority:1},?


... {_id:2,host:'10.68.4.209:10000',arbiterOnly:true}] };


{


? ? ? ? "_id" : "policydb",


? ? ? ? "members" : [


? ? ? ? ? ? ? ? {


? ? ? ? ? ? ? ? ? ? ? ? "_id" : 0,


? ? ? ? ? ? ? ? ? ? ? ? "host" : "10.68.4.209:10002",


? ? ? ? ? ? ? ? ? ? ? ? "priority" : 2


? ? ? ? ? ? ? ? },


? ? ? ? ? ? ? ? {


? ? ? ? ? ? ? ? ? ? ? ? "_id" : 1,


? ? ? ? ? ? ? ? ? ? ? ? "host" : "10.68.4.209:10001",


? ? ? ? ? ? ? ? ? ? ? ? "priority" : 1


? ? ? ? ? ? ? ? },


? ? ? ? ? ? ? ? {


? ? ? ? ? ? ? ? ? ? ? ? "_id" : 2,


? ? ? ? ? ? ? ? ? ? ? ? "host" : "10.68.4.209:10000",


? ? ? ? ? ? ? ? ? ? ? ? "arbiterOnly" : true


? ? ? ? ? ? ? ? }


? ? ? ? ]


}


rs.initiate(config)? #初始化


rs.status()? #查看集群状态


?


10.68.4.29


①建立数据文件夹和日志文件夹


mdkir /data/{master,slave,arbiter}


mkdir /data/log/mongodb/{master,slave,arbiter}? -p


②建立配置文件


#master.conf


dbpath=/data/master


logpath=/data/log/mongodb/master/mongodb.log


pidfilepath=/var/run/mongo_master.pid


#directoryperdb=true


logappend=true


replSet=policydb2


port=10002


oplogSize=10000


fork=true


noprealloc=true


profile=1


slowms=200


?


#slave.conf


dbpath=/data/slave


logpath=/data/log/mongodb/slave/mongodb.log


pidfilepath=/var/run/mongo_slave.pid


#directoryperdb=true


logappend=true


replSet=policydb2


port=10001


oplogSize=10000


fork=true


noprealloc=true


profile=1


slowms=200


?


#arbiter.conf


dbpath=/data/arbiter


logpath=/data/log/mongodb/arbiter/mongodb.log


pidfilepath=/var/run/mongo_arbiter.pid


#directoryperdb=true


logappend=true


replSet=policydb2


port=10000


oplogSize=10000


fork=true


noprealloc=true


profile=1


slowms=200


③启动mongodb


/etc/init.d/mongodb_master start


/etc/init.d/mongodb_slave? start


/etc/init.d/mongodb_arbiter start


?


④配置主、备、仲裁节点


主节点:


# /usr/local/mongodb/bin/mongo? 10.68.4.209:10002


MongoDB shell version: 2.4.9


connecting to: 10.68.4.209:10002/test


> use admin


switched to db admin


> config={ _id:"policydb2", members:[ {_id:0,host:'10.68.4.29:10002',priority:2}, {_id:1,host:'10.68.4.29:10001',priority:1},?


... {_id:2,host:'10.68.4.209:10000',arbiterOnly:true}] };


{


? ? ? ? "_id" : "policydb",


? ? ? ? "