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不能有数据,如果有的话删点数据重新初始化
正常的话会显示
查看副本集状态
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.导入你的数据到主库上,并查看状态
后期待续
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.导入你的数据到主库上,并查看状态
后期待续
相关文章推荐
- Linux socket 初步
- 分享微信开发Html5轻游戏中的几个坑
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- 如何在 Fedora 上安装 MongoDB 服务器
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- PHP添加yaf xhprof mongodb 同理