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

接上一篇博客:

http://www.cnblogs.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")

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值