配置 Replica Sets 副本集
保证数据一致,清理数据库-----练习操作的
[root@4 ~]# rm -rf /usr/local/mongodb/data/db/*
1.启用副本集,写配置文件,4.2-4.3-4.4都操作,指定主机所在副本集名称
[root@4 ~]# vim /usr/local/mongodb/etc/mongodb.conf
replSet=rs1
2.启动服务,如果服务起不来,检查配置文件
[root@2 ~]# mongod -f /usr/local/mongodb/etc/mongodb.conf
3.创建集群-------任意一台都可以,这次操作--->4.2,连接自己,在哪台机器上执行创建集群的命令,它就成为主
[root@2 ~]# /usr/local/mongodb/bin/mongo --host 192.168.4.2 --port 27050

config={
... _id:"rs1",
... members:[
... {_id:0 , host:"192.168.4.2:27050"},
... {_id:1 , host:"192.168.4.3:27051"},
... {_id:2 , host:"192.168.4.4:27052"}
... ]
... };
输出如下:
{
"_id" : "rs1",
"members" : [
{
"_id" : 0,
"host" : "192.168.4.2:27050"
},
{
"_id" : 1,
"host" : "192.168.4.3:27051"
},
{
"_id" : 2,
"host" : "192.168.4.4:27052"
}
]
}
4.初始化 Replica Sets 环境
• 执行如下命令
– >rs.initiate(config)
有输出就OK
rs1:PRIMARY>
5.查看副本集信息
查询状态信息
rs1:PRIMARY> rs.status()
查看是否是 master 库
rs1:PRIMARY> rs.isMaster()
##########其他机器也可以执行上面命令查看
6.验证副本集配置
客户端连接主:[root@5 ~]# /usr/local/mongodb/bin/mongo --host 192.168.4.2 --port 27050
写入文档:
rs1:PRIMARY> db.name.save({name:"jerry",age:19})
同步数据验证------从库,去查看文档
rs1:SECONDARY> db.getMongo().setSlaveOk() 允许从库查看数据
模拟宕机,去从库查看谁是主
– > rs.isMaster( ) 查看是否是主库
连接当前的主,写入文档,查看当前的主库的从库是否同步数据
修复已经宕机的数据库,执行命令db.getMongo().setSlaveOk(),查看数据是否同步,并且是当前的主库的从库