mongodb replica set配置主从

1.在配置文件里配置replicaset的名称

例:

replication:

    replSetName: "pisa_fls_1"

 

所有的处于同一replicaset下的mongodb的replSetName必须相同

 

2.分别将处于同一replicaset下的mongodb启动

3.命令行连接主mongodb服务

./mongo --port 8000 --host 10.130.161.98

 

4.使用rs.initiate()来初始化一个replicaset集合,使用默认配置

如果没有默认配置,可以手动添加,例

rsconf = {
           _id: "rs0",
           members: [
                      {
                       _id: 0,
                       host: "<hostname>:27017"
                      }
                    ]
         }

5.使用rs.conf()来显示配置

> rs.conf()
{
	"_id" : "pisa_fls_1",
	"version" : 1,
	"members" : [
		{
			"_id" : 0,
			"host" : "10.130.161.98:8000"
		}
	]
}

6.使用rs.add()来添加其他的成

pisa_fls_1:PRIMARY> rs.add("10.130.161.98:8001")
{ "ok" : 1 }
pisa_fls_1:PRIMARY> rs.add("10.130.161.98:8002")
{ "ok" : 1 }
pisa_fls_1:PRIMARY> rs.conf()
{
	"_id" : "pisa_fls_1",
	"version" : 3,
	"members" : [
		{
			"_id" : 0,
			"host" : "10.130.161.98:8000"
		},
		{
			"_id" : 1,
			"host" : "10.130.161.98:8001"
		},
		{
			"_id" : 2,
			"host" : "10.130.161.98:8002"
		}
	]
}

7.使用rs.status()显示当前状态

pisa_fls_1:PRIMARY> rs.status()
{
	"set" : "pisa_fls_1",
	"date" : ISODate("2014-09-17T09:32:58Z"),
	"myState" : 1,
	"members" : [
		{
			"_id" : 0,
			"name" : "10.130.161.98:8000",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 360,
			"optime" : Timestamp(1410946361, 1),
			"optimeDate" : ISODate("2014-09-17T09:32:41Z"),
			"electionTime" : Timestamp(1410946275, 2),
			"electionDate" : ISODate("2014-09-17T09:31:15Z"),
			"self" : true
		},
		{
			"_id" : 1,
			"name" : "10.130.161.98:8001",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 22,
			"optime" : Timestamp(1410946361, 1),
			"optimeDate" : ISODate("2014-09-17T09:32:41Z"),
			"lastHeartbeat" : ISODate("2014-09-17T09:32:58Z"),
			"lastHeartbeatRecv" : ISODate("2014-09-17T09:32:58Z"),
			"pingMs" : 0,
			"syncingTo" : "10.130.161.98:8000"
		},
		{
			"_id" : 2,
			"name" : "10.130.161.98:8002",
			"health" : 1,
			"state" : 5,
			"stateStr" : "STARTUP2",
			"uptime" : 17,
			"optime" : Timestamp(0, 0),
			"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
			"lastHeartbeat" : ISODate("2014-09-17T09:32:57Z"),
			"lastHeartbeatRecv" : ISODate("2014-09-17T09:32:57Z"),
			"pingMs" : 0,
			"lastHeartbeatMessage" : "initial sync need a member to be primary or secondary to do our initial sync"
		}
	],
	"ok" : 1
}

8.配置优先级为0的成员

在主服务上,使用任一变量名拷贝replicaset配置(变量名里面不能有下划线),例变量名为pisaCfg

pisa_fls_1:PRIMARY> pisaCfg=rs.conf()
{
	"_id" : "pisa_fls_1",
	"version" : 3,
	"members" : [
		{
			"_id" : 0,
			"host" : "10.130.161.98:8000"
		},
		{
			"_id" : 1,
			"host" : "10.130.161.98:8001"
		},
		{
			"_id" : 2,
			"host" : "10.130.161.98:8002"
		}
	]
}

设置优先级

pisa_fls_1:PRIMARY> pisaCfg.members[2].priority=0
0

使用rs.reconfig()更新配置到集合中,使其升效

pisa_fls_1:PRIMARY> rs.reconfig(pisaCfg)
2014-09-17T02:45:50.769-0700 DBClientCursor::init call() failed
2014-09-17T02:45:50.783-0700 trying reconnect to 10.130.161.98:8000 (10.130.161.98) failed
2014-09-17T02:45:50.784-0700 reconnect 10.130.161.98:8000 (10.130.161.98) ok
reconnected to server after rs command (which is normal)

9.设置投票权为0的成员

pisaCfg = rs.conf()
pisaCfg.members[2].votes = 0
rs.reconfig(pisaCfg)

10.移除成员

首先将要移除的成员停止

然后有两种方式移除

(1)使用rs.remove()

rs.remove("10.130.161.98:8001")

(2)使用rs.reconfig(),例如移除第二个成员,在主服务上执行

pisaCfg = rs.conf()
pisaCfg.members.splice(2,1)
rs.reconfig(pisaCfg)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值