您的位置:首页 > 数据库 > Mongodb

mongodb 的副本集相关整理

2017-01-04 17:30 239 查看
mongo的副本集创建

mongo的副本集建议至少3台机器,当然你也可以选择一台机器开三个端口

我这里有两台机器,分别是172.16.31.105和172.16.31.106 ,105上是主,106上从和仲裁(一主一从一仲裁),端口分别是1111   222   333

1.安装mongo到三个配置中

      安装包最好去官网下载,下载解压即可

创建配置文件 (3个配置文件都一样,端口区分一下就好了)

mkdir  -p /usr/local/mongodb/conf

mkdir -p /home/data/mongodb/data

vim /usr/local/mongodb/conf/mongodb.conf

#bind_ip=0.0.0.0

port=1111

dbpath=/home/data/mongodb/data

logpath=/home/data/mongodb/mongodb.log

logappend=true

oplogSize=2048

maxConns=2000

replSet=test        #副本集的名称

noauth=true

httpinterface=true
2. 之后分别启动3个mongo

mongod -f /usr/local/mongodb/conf/mongodb.conf --replSet test --logappend &  #启动方式都一样注意指明启动配置文件就好了

--replSet   test声明启动后的创建的副本集名称为test

3.启动后选择一台作为主(这里我选择105)

  mongo localhost:1111

config_test={"_id":"test",members:[

{_id:0,host:"172.16.31.105:1111"},
{_id:1,host:"172.16.31.106:2222"},
{_id:2,host:"172.16.31.106:3333"},
]};
初始化副本集

rs.initiate(config_test) #必须是config_集合名称
如果有报错,请检查其他两个mongo是否正常,需要初始化的mongo不能有数据,如果有的话删点数据重新初始化
正常的话会显示
'info'
 
'Config
now saved locally.  Should come online in about a minute.'
,


查看副本集状态
rs.status();
test:PRIMARY> rs.status()

{
"set" : "test",
"date" : ISODate("2017-01-04T10:00:49Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "172.16.31.105:1111",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 103102,
"optime" : Timestamp(1483443161, 8667),
"optimeDate" : ISODate("2017-01-03T11:32:41Z"),
"electionTime" : Timestamp(1483491644, 1),
"electionDate" : ISODate("2017-01-04T01:00:44Z"),
"self" : true
},
{
"_id" : 1,
"name" : "172.16.31.106:2222",
"health" : 1,
"state" : 3,
"stateStr" : "RECOVERING",
"uptime" : 32411,
"optime" : Timestamp(1483412761, 19758),
"optimeDate" : ISODate("2017-01-03T03:06:01Z"),
"lastHeartbeat" : ISODate("2017-01-04T10:00:48Z"),
"lastHeartbeatRecv" : ISODate("2017-01-04T10:00:48Z"),
"pingMs" : 0,
"lastHeartbeatMessage" : "still syncing, not yet to minValid optime 586b17b4:50d3"
},
{
"_id" : 2,
"name" : "172.16.31.106:3333",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 32417,
"optime" : Timestamp(1483443161, 8667),
"optimeDate" : ISODate("2017-01-03T11:32:41Z"),
"lastHeartbeat" : ISODate("2017-01-04T10:00:49Z"),
"lastHeartbeatRecv" : ISODate("2017-01-04T10:00:48Z"),
"pingMs" : 0,
"syncingTo" : "172.16.31.105:27016"
}
],
"ok" : 1

}

同时也可以到106上查看日志
2017-01-02T09:05:59.890-0500 [rsHealthPoll] replSet member 172.16.31.106:2222 is now in state SECONDARY

4.导入你的数据到主库上,并查看状态
后期待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb linux