博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB复制集
阅读量:7119 次
发布时间:2019-06-28

本文共 1312 字,大约阅读时间需要 4 分钟。

一、什么是复制集

复制集是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务器进行恢复。
复制集的优势:
1、让数据更安全
2、高数据可用性
3、灾难恢复
4、无停机维护(如备份、索引重建、故障转移)
5、读缩放(额外的副本读取)
6、副本集对应用程序是透明的。
二、复制集的工作原理
MongoDB的复制集至少需要两个节点。其中一个是主节点,负责处理客户端的请求,其余的都是从节点,负责主节点上的数据。
MongoDB各个节点常见的搭配方式为:一主一从或一主多从。主节点记录其上的所有操作到oplog中,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
客户端在主节点写入数据,在从节点读取数据,主节点与从节点进行数据交互保障数据的一致性。如果其中一个节点出现故障,其他节点马上将业务接过来而无需停机操作。
复制集特点如下:
1、多个基点的群集
2、任何节点可作为主节点
3、所有写入操作都在主节点上
4、自动故障转移
5、自动恢复
三、MongoDB复制集部署
下面将一步步介绍如何部署MongoDB复制集,包括复制集的初始化配置、启动复制集和增加、删除复制集的节点。
实验环境:CentOS7一台,并安装MongoDB创建3个实例
1、准备工作
MongoDB复制集

这里我们需要给配置文件里插入一段内容。

MongoDB复制集
配置relSet参数值为kgcrs。在所有实例的配置文件都插入相同的内容。使用mongod -f 配置文件路径 --shutdown
如:mongod -f /etc/mongod2.conf --shutdown
2、配置复制集
MongoDB复制集
进入其中一台MongoDB。使用cfg定义参数。
MongoDB复制集
使用rs.initiate(cfg)来初始化配置启动复制集,这里要保证从节点没有数据。
初始化完成后,我们可以使用rs.status()来查看复制集状态信息。其中health为1代表健康,0代表宕机。state为1代表主节点为2代表从节点。
3、添加和删除节点
MongoDB复制集
使用rs.add("IP地址:监听端口")来添加节点。同样可以使用rs.remove("IP地址:监听端口")来删除节点。
4、复制集切换
MongoDB复制集可以实现群集的高可用,当其中主节点出现故障时会自动切换到其他节点。管理员也可以手动进行付志杰的主从切换。
1)模拟故障自动转移
可以用过kill -9 监听端口来停止复制集的当前主节点。如kill -9 27017。之后进入MongoDB使用rs.status()来查看主节点会不会自动切换到其他节点上。
2)手动进行主从切换
管理员也可以手动进行复制集的主从切换
MongoDB复制集
在主服务器使用freeze(30)为暂停30秒不参加选举;rs.stepDown(60,30)告诉主节点交出主节点位置,然后维持从节点状态不少于60秒,同时等待30秒以使主节点和从节点日志同步。
MongoDB复制集
再次查看复制集状态信息,发现主节点已经切换到另一个实例。

转载于:https://blog.51cto.com/13840048/2175114

你可能感兴趣的文章
【转载】Socket通讯原理以及TCP、IP三次握手机制分析
查看>>
Heroku 老牌云空间的部署方法
查看>>
文献随笔(五)
查看>>
mv 命令
查看>>
go语言sync包的学习(Mutex、WaitGroup、Cond)
查看>>
利用CSS制作图形效果
查看>>
《图解HTTP》读书笔记(三:无状态协议/cookie管理状态)
查看>>
多线程理论知识 -- 小白的教程
查看>>
2017年软件工程第二次作业
查看>>
[Python]有关pygame库中的flip和update的区别
查看>>
测试基础之等价类
查看>>
(十八)Centos之firewall 防火墙命令
查看>>
(一)深入java虚拟机之内存溢出与分析
查看>>
流程控制 - PHP手册笔记
查看>>
nginx 配置技巧
查看>>
linux下后台启动springboot项目
查看>>
Python自动化运维之1、Python入门
查看>>
Apache多处理模块
查看>>
Docker简介与配置(一)
查看>>
[转]推荐国外SQL Server学习网站
查看>>