1.MongoDB 说明
MongoDB复制是将数据同步在多个服务器的过程。
复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。
复制还允许您从硬件故障和服务中断中恢复数据。
2.MongoDB复制原理
mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。
mongodb各个节点常见的搭配方式为:一主一从、一主多从。
主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行
这些操作,从而保证从节点的数据与主节点一致。
3.MongoDB复制结构图如下所示:
以上结构图总,客户端总主节点读取数据,在客户端写入数据到主节点是, 主节点与从节点进行数据交互保障数据的一致性。
4.Replica Sets复制集
MongoDB 在 1.6 版本对开发了新功能replica set,这比之前的replication 功能要强大一 些,增加了故障自动切换和自动修复成员节点,各个DB 之间数据完全一致,大大降低了维 护成功。auto shard 已经明确说明不支持replication paris,建议使用replica set,replica set 故障切换完全自动。
Replica Sets的结构类似一个集群,完全可以把它当成一个集群,因为它确实与集群实现的作用是一样的:如果其中一个节点出现故障,其他节点马上会将业务接管过来而无须停机操作。
5.配置步骤
1.创建mongodb 的yum文件
vim etc/yum.repos.d/mongodb-org-4.2.repo
写入
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mon godb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
3.修改配置文件
注意:配置文件缩进必须注意多一个空格启动都会报错
dbPath:数据存储目录
bindIp :允许链接的IP地址
port : 端口号
打开 replication: 的注释 在下行添加 replSetName: taogege “taogege”是群集名称 。自己可随意取名称
重启 mongd :systemctl restart mongod
进入mongd :mongo
初始化副本集:使用rs.initiate() 方法初始化副本集
rs.initiate({_id:"zkjy",version:1,members:[{_id:0,host:"192.168.128.129:27017"},{_id:1,host:"192.168.128.137:27017"},{_id:2,host:"192.168.128.138:27017"}]})
返回结果是
” ok:1 “
表示完成 !可以使用 rs.status() 查看群集情况




