什么是复制集?
复制集(副本集)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。
MongoDB复制集原理:
MongoDB的复制集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。
MongoDB各个节点常见的搭配方式为:一主一从,一主多从。
主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
MongoDB复制结构图如下所示:
以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时,主节点与从节点进行数据交互保障数据的一致性。
<强>复制集的优势:强>
让数据更安全
引用>
搞数据可用性
灾难恢复
无停机维护(如备份,重建索引,故障转移)
读缩放(额外的副本读取)
副本集对应用程序是透明的<强>复制集的特点:强>
N个几点的群集
引用>
任何节点可作为主节点
所有写入操作都在主节点上
自动故障转移
自动恢复<强>主从切换:强>
1。手动切换:主动放弃主,其余从服务器会选举出主服务器
2。自动切换:关闭MongoDB服务,其余从服务器会选举出主服务器引用>
<强> 1。安装MongoDB链接:强> Centos 7超简单百胜源安装MongoDB
<强> 2。因为是实验,所以在一台Centos 7虚拟机的MongoDB服务器进行配置复制集,IP: 192.168.233.6 强>
<强> 3。添加配置开启4个实例,端口号分别为:强>
27017
2) 27018 1)
27019
4) 27020 3)<强> 4。实验操作:强> 4个实例,,开启三个,1主2个从,,额外添加复制集追加实27020年例节点,,,,,27020年撤销实例节点
<强> 1。安装MongoDB完成后,默认端口号是27017 强>
额外添加3个实例
首先需要创建三个数据存储目录,三个日志文件
mkdir - p/数据/MongoDB/MongoDB {2、3、4},,,,,,,,,,,,,,,,,,#创建三个数据文件目录
引用>
mkdir - p/数据/mongodb/logs ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#创建日志文件目录
触摸/数据/mongodb/日志/mongodb {2、3、4} .log ,,,,,,,,,,,#创建3个日志文件
chmod 777/数据/mongodb/日志/* .log ,,,,,,,,,,,,,,,,,,,,,,,#修改日志文件的权限,能写能读,最大权限
<强> 2。27017年修改端口默认MongoDB的配置文件,开启复制集强>
vim/etc/mongod.参看
引用>
<强> 3。因为修改过配置文件所以需要关闭并重新开启MongoDB 强>
mongod - f/etc/mongod.conf ——shutdown ,,,,,,,,,,,,,,,,#关闭MongoDB
引用>
mongod - f/etc/mongod.conf ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#开启MongoDB
引用>
<强> 4。复制并生成3个节点配置文件,进行修改
强># cp - p/etc/mongod. root@localhost日志参看/etc/mongod2.参看
引用>
# cp - p/etc/mongod. root@localhost日志参看/etc/mongod3.参看
# cp - p/etc/mongod. root@localhost日志参看/etc/mongod4.参看
<强> 5。需要修改每一个节点的配置文件强>
# vim/etc/mongod2. root@localhost日志参看
引用># vim/etc/mongod2.相依,,
,,,……
路径:/数据/mongodb/日志/mongodb2。日志,,,,,,,//每个实例指定自己日志目录
,,,.......
dbPath:/数据/mongodb mongodb2,,,,,,,,,,,,//每个实例指定自己的数据目录
,,,端口:27018,,,,,,,,,,,,,,,,,,,,,,,,,,,,,//指定端口分别为27018年,27019年,27020年
MongoDB主从复制集搭建