mongodb3.0副本集配置

来源:互联网 发布:阿里云服务器能翻墙么 编辑:程序博客网 时间:2024/05/29 13:31

1.环境

分别在三个主机上安装mongodb,可以使用yum进行安装。
主机IP分别为:
192.168.0.1
192.168.0.2
192.168.0.3

2.配置文件设置

由于配置比较多,所以我们将配置写到文件里。

编辑每个节点的配置文件:

vi /etc/mongod.conf

文件内容:

systemLog:  destination: file  logAppend: true  path: /var/log/mongodb/mongod.logstorage:  dbPath: /var/lib/mongo  journal:    enabled: true  directoryPerDB:trueprocessManagement:  pidFilePath: /var/lib/mongo/mongod.pid  fork: truenet:  bindIp:192.168.0.X  port: 27017replication:   oplogSizeMB: 10000   replSetName: test

参数解释:
storage.dbpath:数据存放目录
storage.directoryperdb:为每一个数据库按照数据库名建立文件夹存放
systemLog.path:日志存放路径
systemLog.logappend:以追加的方式记录日志
processManagement.pidfilepath:进程文件,方便停止mongodb
processManagement.fork:以后台方式运行进程
replication.oplogSizeMB:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%
replication.replSetName:replica set的名字
net.bind_ip:mongodb所绑定的ip地址,默认绑定127.0.0.1
net.port:mongodb进程所使用的端口号,默认为27017

其他参数说明请参考https://docs.mongodb.org/manual/reference/configuration-options/

3.启动mongodb

systemctl start mongod

4.配置主备仲裁节点

可以通过客户端连接mongodb,也可以直接在三个节点中选择一个连接mongodb。

mongo 192.168.0.1:27017

切换到admin数据库

use admin

配置集群参数

cfg={_id:"test",members:[{_id:0,host:"192.168.0.1:27017",priority:2},{_id:1,host:"192.168.0.2:27017",priority:1},{_id:2,host:"192.168.0.3:27017",arbiterOnly:true}]}

使配置生效

rs.initiate(cfg) 

cfg是可以任意的名字,当然最好不要是mongodb的关键字,conf,config都可以。最外层的_id表示replica set的名字,members里包含的是所有节点的地址以及优先级。优先级最高的即成为主节点,即这里的192.168.0.1:27017。特别注意的是,对于仲裁节点,需要有个特别的配置——arbiterOnly:true。这个千万不能少了,不然主备模式就不能生效。
配置的生效时间根据不同的机器配置会有长有短,配置不错的话基本上十几秒内就能生效,有的配置需要一两分钟。如果生效了,执行rs.status()命令会看到如下信息:

{    "set" : "test",    "date" : ISODate("2016-04-21T07:47:40.515Z"),    "myState" : 1,    "term" : NumberLong(1),    "heartbeatIntervalMillis" : NumberLong(2000),    "members" : [        {            "_id" : 0,            "name" : "192.168.0.1:27017",            "health" : 1,            "state" : 1,            "stateStr" : "PRIMARY",            "uptime" : 84,            "optime" : {                "ts" : Timestamp(1461224842, 1),                "t" : NumberLong(1)            },            "optimeDate" : ISODate("2016-04-21T07:47:22Z"),            "infoMessage" : "could not find member to sync from",            "electionTime" : Timestamp(1461224841, 1),            "electionDate" : ISODate("2016-04-21T07:47:21Z"),            "configVersion" : 1,            "self" : true        },        {            "_id" : 1,            "name" : "192.168.0.2:27017",            "health" : 1,            "state" : 2,            "stateStr" : "SECONDARY",            "uptime" : 30,            "optime" : {                "ts" : Timestamp(1461224842, 1),                "t" : NumberLong(1)            },            "optimeDate" : ISODate("2016-04-21T07:47:22Z"),            "lastHeartbeat" : ISODate("2016-04-21T07:47:39.985Z"),            "lastHeartbeatRecv" : ISODate("2016-04-21T07:47:39.657Z"),            "pingMs" : NumberLong(1),            "syncingTo" : "szss-app-soa1:27017",            "configVersion" : 1        },        {            "_id" : 2,            "name" : "192.168.0.3:27017",            "health" : 1,            "state" : 7,            "stateStr" : "ARBITER",            "uptime" : 30,            "lastHeartbeat" : ISODate("2016-04-21T07:47:39.980Z"),            "lastHeartbeatRecv" : ISODate("2016-04-21T07:47:36.649Z"),            "pingMs" : NumberLong(1),            "configVersion" : 1        }    ],    "ok" : 1}

其他相关文章:

在centos中安装mongodb

1 0
原创粉丝点击