sunage001 发表于 2015-7-7 10:47:23

MongoDB副本集配置系列二:配置MongoDB副本集

  接上一篇博客:
  http://www.iyunv.com/xiaoit/p/4479066.html
  
  1:首先创建3台虚拟机作为配置环境
  IP1:192.168.91.128
  IP2:192.168.91.129
  IP3:192.168.91.130
  
  2:下载MongoDB 2.6版本
  https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.9.zip
  
  3:解压



tar -zxvf mongodb-linux-x86_64-2.6.9.zip




mv mongodb-linux-x86_64-2.6.9 mongodb

  

  
  4:在mongodb目录创建 data目录和 log 目录 和conf配置文件

  同时保证data和log目录有可读写权限

  在3台服务器上做如上配置
  5:编辑配置文件 vi mongo.conf
  在IP1:192.168.91.128上



#日志目录
logpath=/root/software/mongodb/log/mongod
#数据目录
dbpath=/root/software/mongodb/data
#日志以追加方式添加
logappend=true
# 开启后台进程运行
fork = true
#端口
port = 27017
#副本集名称
replSet=gechongrepl/192.168.91.129:27017

  
  在IP2:192.168.91.129上:



#日志目录
logpath=/root/software/mongodb/log/mongod
#数据目录
dbpath=/root/software/mongodb/data
#日志以追加方式添加
logappend=true
# 开启后台进程运行
fork = true
#端口
port = 27017
#副本集名称
#192.168.91.128#replSet=gechongrepl/192.168.91.129:27017
replSet=gechongrepl/192.168.91.128:27017

  在IP3:192.168.91.130上



#日志目录
logpath=/root/software/mongodb/log/mongod
#数据目录
dbpath=/root/software/mongodb/data
#日志以追加方式添加
logappend=true
# 开启后台进程运行
fork = true
#端口
port = 27017
#副本集名称
#192.168.91.128#replSet=gechongrepl/192.168.91.129:27017
#192.168.91.129#replSet=gechongrepl/192.168.91.128:27017
replSet=gechongrepl/192.168.91.129:27017 , 192.168.91.128:27017

  
  6:用如上的配置文件分别启动mongod
  在IP1:192.168.91.128上启动mongod



> config_repl={_id:'gechongrepl',members:[
... {_id:0,host:'192.168.91.128:27017',priority:10},
... {_id:1,host:'192.168.91.129:27017',priority:9},
... {_id:2,host:'192.168.91.130:27017',priority:9}]}
{
"_id" : "gechongrepl",
"members" : [
{
"_id" : 0,
"host" : "192.168.91.128:27017",
"priority" : 10
},
{
"_id" : 1,
"host" : "192.168.91.129:27017",
"priority" : 9
},
{
"_id" : 2,
"host" : "192.168.91.130:27017",
"priority" : 9
}
]
}

  



> rs.initiate(config_repl);
{
"startupStatus" : 4,
"info" : "gechongrepl/192.168.91.129:27017",
"ok" : 0,
"errmsg" : "all members and seeds must be reachable to initiate set"
}

  报错了。尝试在IP1上面:telnet 192.168.91.130 27017 发现不通。关掉这几台服务器的iptables重新执行如上命令。



> rs.initiate(config_repl);
{
"info" : "Config now saved locally.Should come online in about a minute.",
"ok" : 1
}

  至此,初始化已经OK。在上面3台机器任意一台完成初始化都可以的。
  
  7:验证配置的副本集。



> rs.status()
{
"set" : "gechongrepl",
"date" : ISODate("2015-05-05T05:54:20Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "192.168.91.128:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1936,
"optime" : Timestamp(1430803801, 1),
"optimeDate" : ISODate("2015-05-05T05:30:01Z"),
"electionTime" : Timestamp(1430803801, 2),
"electionDate" : ISODate("2015-05-05T05:30:01Z"),
"self" : true
},
{
"_id" : 1,
"name" : "192.168.91.129:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1459,
"optime" : Timestamp(1430803801, 1),
"optimeDate" : ISODate("2015-05-05T05:30:01Z"),
"lastHeartbeat" : ISODate("2015-05-05T05:54:19Z"),
"lastHeartbeatRecv" : ISODate("2015-05-05T05:54:19Z"),
"pingMs" : 1,
"syncingTo" : "192.168.91.128:27017"
},
{
"_id" : 2,
"name" : "192.168.91.130:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1459,
"optime" : Timestamp(1430803801, 1),
"optimeDate" : ISODate("2015-05-05T05:30:01Z"),
"lastHeartbeat" : ISODate("2015-05-05T05:54:19Z"),
"lastHeartbeatRecv" : ISODate("2015-05-05T05:54:20Z"),
"pingMs" : 1,
"syncingTo" : "192.168.91.128:27017"
}
],
"ok" : 1
}


  配置已经OK。
  



rs.help()

  



添加仲裁节点
#rs.addArb("192.168.91.130:27017")

  
  
页: [1]
查看完整版本: MongoDB副本集配置系列二:配置MongoDB副本集