Welcome 微信登录

首页 / 数据库 / MySQL / 安装MongoDB配置Replica Set

MongoDB的环境主要包括StandAlone,Replication和Sharding。
  • StandAlone:单机环境,一般开发测试的时候用。
  • Replication:主从结构,一个Primary,多个Secondary,可能会有Arbitry。
    • Primary挂掉之后,会选举出一个Secondary作为Primary,与zookeeper类似。
    • Arbitry上面不存数据,只是为了凑数。选举算法要求节点数必须是奇数个,如果Primary+Secondary不是奇数个,就要用Arbitry凑数。
    • 写数据只能在Primary,读数据默认也在Primary,可以配置成从Secondary读,可以选最近的节点。
    • 数据在Primary上写成功之后,会将操作记录在oplog中,Secondary将oplog拷贝过去,然后照着操作一遍,就有数据了。
    • Primary和Secondary上面的数据保证最终一致性,可以为写操作配置write concern,有几个级别:在Primary上写完就认为写成功;写到oplog后认为写成功;写到一个/多个/某个/某几个Secondary之后认为写成功,等等。
  • 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({"_id" : "test-set", "members" : [{"_id" : 1, "host" : "192.168.1.1"},{"_id" : 2, "host" : "192.168.1.2"},{"_id" : 3, "host" : "192.168.1.3", "arbiterOnly" : true}]});{ "info" : "Config now saved locally. Should come online in about a minute.", "ok" : 1 }历史成功后需要等一段时间,他会选举Primary,然后查看Replica Set的状态:test-set:PRIMARY> rs.status(){"set" : "test-set","date" : ISODate("2014-02-21T10:28:55Z"),"myState" : 7,"members" : [{"_id" : 1,"name" : "192.168.1.1:27017","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 4086,"optime" : Timestamp(1392972480, 1),"optimeDate" : ISODate("2014-02-21T08:48:00Z"),"lastHeartbeat" : ISODate("2014-02-21T10:28:54Z"),"lastHeartbeatRecv" : ISODate("2014-02-21T10:28:53Z"),"pingMs" : 0},{"_id" : 2,"name" : "192.168.1.2:27017","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 3997,"optime" : Timestamp(1392972480, 1),"optimeDate" : ISODate("2014-02-21T08:48:00Z"),"lastHeartbeat" : ISODate("2014-02-21T10:28:54Z"),"lastHeartbeatRecv" : ISODate("2014-02-21T10:28:55Z"),"pingMs" : 0,"syncingTo" : "192.168.131.15:27017"},{"_id" : 3,"name" : "192.168.1.3:27017","health" : 1,"state" : 7,"stateStr" : "ARBITER","uptime" : 5781,"self" : true}],"ok" : 1}这样整个replica set就配置成功了,还是比较简单的。MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里相关阅读:MongoDB备份与恢复 http://www.linuxidc.com/Linux/2012-07/64113.htmCentOS编译安装MongoDB http://www.linuxidc.com/Linux/2012-02/53834.htmCentOS 编译安装 MongoDB与mongoDB的php扩展 http://www.linuxidc.com/Linux/2012-02/53833.htmCentOS 6 使用 yum 安装MongoDB及服务器端配置 http://www.linuxidc.com/Linux/2012-08/68196.htmUbuntu 13.04下安装MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htm如何在MongoDB中建立新数据库和集合 http://www.linuxidc.com/Linux/2013-06/85749.htmMongoDB入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htm《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htm
  • 1
  • 2
  • 下一页
ERROR: Can not connect to monitor daemon!的问题Oracle RAC 验证以及Oracle 11G R2 启动与关闭相关资讯      MongoDB安装 
  • Ubuntu下安装 MongoDB  (08月18日)
  • Ubuntu下MongoDB 安装教程及简单操  (07月17日)
  • CentOS6.2 下载安装配置 MongoDB 3  (04月24日)
  • Mac OSX 下使用 Homebrew 安装   (08月13日)
  • 在 CentOS7 上安装 MongoDB  (06月26日)
  • Ubuntu 14.04 下安装 MongoDB 及   (03月09日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数