mongodb的环境主要包括standalone,replication和sharding。因为数据量和机器量的原因,项目最终用了一个primary,一个secondary
mongodb的环境主要包括standalone,replication和sharding。
standalone:单机环境,一般开发测试的时候用。replication:主从结构,一个primary,多个secondary,可能会有arbitry。sharding:share nothing的结构,每台机器只存一部分数据。mongod服务器存数据,mongos服务器负责路由读写请求,,元数据存在config数据库中。因为数据量和机器量的原因,项目最终用了一个primary,一个secondary,一个arbitry。我自己的开发环境是ubuntu,测试环境是centos。安装的是64位的mongodb。
ubuntu上的安装sudo apt-get install mongodb-10gen
centos上的安装配置yum源,创建文件:/etc/yum.repos.d/mongodb.repo
[mongodb]name=mongodb repositorybaseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/gpgcheck=0enabled=1
安装命令:
yum install mongo-10gen mongo-10gen-server
配置每台机器上面的配置文件/etc/mongod.conf修改成下面的:
#数据库文件所在位置(默认)dbpath=/var/lib/mongo#日志所在位置(默认)logpath=/var/log/mongo/mongod.log#pid所在位置(默认)pidfilepath = /var/run/mongodb/mongod.pid#keyfile所在位置,生成方式在后面(添加)keyfile=/var/lib/mongo/key#端口(默认)port=27017#每次启动后日志追加在后面,不会新建日志文件(默认)logappend=true#用deamon方式启动(添加)fork=true#打开操作日志,用于故障恢复和持久化(默认)journal=true#replica set的名字(添加)replset=test-set
在每台机器上运行:
sudo mongod -f /etc/mongod.conf
我的环境里面,primary ip: 192.168.1.1,secondary ip: 192.168.1.2,arbitary ip: 192.168.1.3。在单机上可以将多个mongodb设置成不同端口,我测试了一下也是可以的。
在primary上运行“mongo”,打开命令行,设置replica set:
rs.initiate({: , : [{: : },{: : },{: : , : true}]});{ : ok : 1 }
历史成功后需要等一段时间,他会选举primary,然后查看replica set的状态:
test-set:primary> rs.status(){: test-set,: isodate(),: 7, : [{: 1,: ,: 1,: 1,: ,: 4086,: timestamp(1392972480, 1),: isodate(),: isodate(),: isodate(),: 0},{: 2,: ,: 1,: 2,: ,: 3997,: timestamp(1392972480, 1),: isodate(),: isodate(),: isodate(),: 0,: },{: 3,: ,: 1,: 7,: ,: 5781,: true}],: 1}
这样整个replica set就配置成功了,还是比较简单的。
mongodb 的详细介绍:请点这里
mongodb 的下载地址:请点这里
相关阅读:
mongodb备份与恢复
centos编译安装mongodb
centos 编译安装 mongodb与mongodb的php扩展
centos 6 使用 yum 安装mongodb及服务器端配置
ubuntu 13.04下安装mongodb2.4.3
如何在mongodb中建立新数据库和集合
mongodb入门必读(概念与实战并重)
《mongodb 权威指南》(mongodb: the definitive guide)英文文字版[pdf]