MongDB集群部署

http://blog.csdn.net/luonanqin/article/details/8497860

参数解释:

 dbpath:数据存放目录

logpath:日志存放路径

pidfilepath:进程文件,方便停止mongodb

directoryperdb:为每一个数据库按照数据库名建立文件夹存放

logappend:以追加的方式记录日志

replSet:replica set的名字

bind_ip:mongodb所绑定的ip地址

port:mongodb进程所使用的端口号,默认为27017

oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%

fork:以后台方式运行进程

noprealloc:不预先分配存储

mkdir -p /mongodb/data/master   
mkdir -p /mongodb/data/slaver   
mkdir -p /mongodb/data/arbiter    
#三个目录分别对应主,备,仲裁节点  
#master.conf  
dbpath=/mongodb/data/master  
logpath=/mongodb/log/master.log  
pidfilepath=/mongodb/master.pid  
directoryperdb=true  
logappend=true  
replSet=testrs  
bind_ip=10.10.148.130  
port=27017  
oplogSize=10000  
fork=true  
noprealloc=true
#slaver.conf  
dbpath=/mongodb/data/slaver  
logpath=/mongodb/log/slaver.log  
pidfilepath=/mongodb/slaver.pid  
directoryperdb=true  
logappend=true  
replSet=testrs  
bind_ip=10.10.148.131  
port=27017  
oplogSize=10000  
fork=true  
noprealloc=true
#arbiter.conf  
dbpath=/mongodb/data/arbiter  
logpath=/mongodb/log/arbiter.log  
pidfilepath=/mongodb/arbiter.pid  
directoryperdb=true  
logappend=true  
replSet=testrs  
bind_ip=10.10.148.132  
port=27017  
oplogSize=10000  
fork=true  
noprealloc=true
./monood -f master.conf  
./mongod -f slaver.conf  
./mongod -f arbiter.conf
./mongo 10.10.148.130:27017   #ip和port是某个节点的地址  
>use admin  
>cfg={ _id:"testrs", members:[ {_id:0,host:'10.10.148.130:27017',priority:2}, {_id:1,host:'10.10.148.131:27017',priority:1},   
{_id:2,host:'10.10.148.132:27017',arbiterOnly:true}] };  
>rs.initiate(cfg)             #使配置生效   
rs.status()

{  
        "set" : "testrs",  
        "date" : ISODate("2013-01-05T02:44:43Z"),  
        "myState" : 1,  
        "members" : [  
                {  
                        "_id" : 0,  
                        "name" : "10.10.148.130:27017",  
                        "health" : 1,  
                        "state" : 1,  
                        "stateStr" : "PRIMARY",  
                        "uptime" : 200,  
                        "optime" : Timestamp(1357285565000, 1),  
                        "optimeDate" : ISODate("2013-01-04T07:46:05Z"),  
                        "self" : true  
                },  
                {  
                        "_id" : 1,  
                        "name" : "10.10.148.131:27017",  
                        "health" : 1,  
                        "state" : 2,  
                        "stateStr" : "SECONDARY",  
                        "uptime" : 200,  
                        "optime" : Timestamp(1357285565000, 1),  
                        "optimeDate" : ISODate("2013-01-04T07:46:05Z"),  
                        "lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),  
                        "pingMs" : 0  
                },  
                {  
                        "_id" : 2,  
                        "name" : "10.10.148.132:27017",  
                        "health" : 1,  
                        "state" : 7,  
                        "stateStr" : "ARBITER",  
                        "uptime" : 200,  
                        "lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),  
                        "pingMs" : 0  
                }  
        ],  
        "ok" : 1  
}  
如果配置正在生效,其中会包含如下信息:

"stateStr" : "RECOVERING"  

同时可以查看对应节点的日志,发现正在等待别的节点生效或者正在分配数据文件。

现在基本上已经完成了集群的所有搭建工作。至于测试工作,可以留给大家自己试试。一个是往主节点插入数据,能从备节点查到之前插入的数据(查询备节点可能会遇到某个问题,可以自己去网上查查看)。二是停掉主节点,备节点能变成主节点提供服务。三是恢复主节点,备节点也能恢复其备的角色,而不是继续充当主的角色。二和三都可以通过rs.status()命令实时查看集群的变化。

关于ObjectId的问题总结

MongoDB应用实践分享

MongoDB + Spark: 完整的大数据解决方案

posted on 2017-08-25 16:37  VincentZhu  阅读(243)  评论(0编辑  收藏  举报