复制集初体验-不带安全的三成员复制集

环境准备:

搭建3台虚拟机 保证3台互通 在每台/etc/hosts添加主机名 ip记录即可

host1:primary
host2: standby
host3: mail

1.分别启动mongod实例,rs名字为 rs0

mongod --replSet "rs0" --dbpath /data/primary 

mongod --replSet "rs0" --dbpath /data/standby

mongod --replSet "rs0" --dbpath /data/mail

2.然后随便连接到其中一台进行rs初始化

mongo

rs.initiate() //初始化操作,初始化之后不能再初始化,想修改配置可以通过rs.reconfig()

rs.conf() //查看配置

 rs0:PRIMARY> rs.conf()
{
	"_id" : "rs0",
	"version" : 4,
	"members" : [
		{
			"_id" : 0,
			"host" : "standby:27017"
		},
		{
			"_id" : 1,
			"host" : "primary:27017"
		},
		{
			"_id" : 2,
			"host" : "mail:27017"
		}
	]
}

rs.status() //查看状态

rs0:PRIMARY> rs.status()
{
	"set" : "rs0",
	"date" : ISODate("2014-10-28T23:11:20Z"),
	"myState" : 1,
	"members" : [
		{
			"_id" : 0,
			"name" : "standby:27017",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 3205,
			"optime" : Timestamp(1414537849, 1),
			"optimeDate" : ISODate("2014-10-28T23:10:49Z"),
			"electionTime" : Timestamp(1414534680, 1),
			"electionDate" : ISODate("2014-10-28T22:18:00Z"),
			"self" : true
		},
		{
			"_id" : 1,
			"name" : "primary:27017",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 3205,
			"optime" : Timestamp(1414537849, 1),
			"optimeDate" : ISODate("2014-10-28T23:10:49Z"),
			"lastHeartbeat" : ISODate("2014-10-28T23:11:18Z"),
			"lastHeartbeatRecv" : ISODate("2014-10-28T23:11:18Z"),
			"pingMs" : 1,
			"syncingTo" : "standby:27017"
		},
		{
			"_id" : 2,
			"name" : "mail:27017",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 3192,
			"optime" : Timestamp(1414537849, 1),
			"optimeDate" : ISODate("2014-10-28T23:10:49Z"),
			"lastHeartbeat" : ISODate("2014-10-28T23:11:19Z"),
			"lastHeartbeatRecv" : ISODate("2014-10-28T23:11:19Z"),
			"pingMs" : 0,
			"syncingTo" : "standby:27017"
		}
	],
	"ok" : 1
}

3.然后将另外2台加到复制集中,然后3个成员的复制集就配置完毕了

rs.add("standby")

rs.add("mail")

4.如果想修改配置可以通过rs.reconfig()在primary set上操作修改配置

rs0:PRIMARY> rsconf = rs.conf()
{
	"_id" : "rs0",
	"version" : 3,
	"members" : [
		{
			"_id" : 0,
			"host" : "standby:27017"
		},
		{
			"_id" : 1,
			"host" : "primary:27017"
		},
		{
			"_id" : 2,
			"host" : "mail:27017"
		}
	]
}

rs0:PRIMARY> rs.reconfig(rsconf)
{ "ok" : 1 }

cfg = rs.conf()
cfg.members[0].host = "mongo2.example.net"
rs.reconfig(cfg)


5.移除成员从复制集中

移除成员的前提:
  1.关闭需要被移除的成员mongod实例
  2.连接到primary set进行移除操作

移除操作有2种方式:
  方式1:
	rs.remove("mail")
  方式2:
	cfg = rs.conf()
        cfg.members.splice(2,1) //删除数组位置为2的项
        rs.reconfig(cfg)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值