广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB 主从复制集搭建
  • 395
分享到

MongoDB 主从复制集搭建

2024-04-02 19:04:59 395人浏览 泡泡鱼
摘要

一、Mongodb复制集简介什么是复制集?复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。

一、Mongodb复制集简介

什么是复制集?

复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。

mongoDB复制集原理:

monGodb的复制集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。

mongodb各个节点常见的搭配方式为:一主一从、一主多从。

主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

MongoDB复制结构图如下所示:

MongoDB 主从复制集搭建

以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性。

复制集的优势:

让数据更安全
搞数据可用性
灾难恢复
无停机维护(如备份,重建索引,故障转移)
读缩放(额外的副本读取)
副本集对应用程序是透明的

复制集的特点:

N个几点的群集
任何节点可作为主节点
所有写入操作都在主节点上
自动故障转移
自动恢复

主从切换:

1.手动切换:主动放弃primary,其余从服务器会选举出主服务器
2.自动切换:关闭MongoDB服务,其余从服务器会选举出主服务器


二、实验环境:

1.安装MongoDB链接:Centos 7 超简单yum源安装MongoDB

2.因为是实验,所以在一台Centos 7虚拟机的MongoDB服务器进行配置复制集,IP:192.168.233.6

3.添加配置开启4个实例,端口号分别为:

1)27017
2)27018
3)27019
4)27020

4.实验操作:4个实例   开启三个  1主2个从   额外添加复制集追加实例27020 节点      撤销实例27020节点


三、操作步骤

1.安装MongoDB完成后,默认端口号是27017

额外添加3个实例

首先需要创建三个数据存储目录,三个日志文件

mkdir -p /data/mongodb/mongodb{2,3,4}                   #创建3个数据文件目录
mkdir -p /data/mongodb/logs                                                 #创建日志文件目录
touch /data/mongodb/logs/mongodb{2,3,4}.log             #创建3个日志文件
chmod 777 /data/mongodb/logs/*.log                         #修改日志文件的权限,能写能读,最大权限

MongoDB 主从复制集搭建

MongoDB 主从复制集搭建

2.修改 27017端口默认MongoDB的配置文件,开启复制集

vim /etc/mongod.conf

MongoDB 主从复制集搭建MongoDB 主从复制集搭建

3.因为修改过配置文件所以需要关闭并重新开启MongoDB

mongod -f /etc/mongod.conf  --shutdown                  #关闭MongoDB

MongoDB 主从复制集搭建

mongod -f /etc/mongod.conf                                   #开启MongoDB

MongoDB 主从复制集搭建

4.复制并生成3个节点配置文件,进行修改

[root@localhost logs]# cp -p /etc/mongod.conf /etc/mongod2.conf
[root@localhost logs]# cp -p /etc/mongod.conf /etc/mongod3.conf
[root@localhost logs]# cp -p /etc/mongod.conf /etc/mongod4.conf


5.需要修改每一个节点的配置文件

[root@localhost logs]# vim /etc/mongod2.conf

# vim /etc/mongod2.conf   

      .......

path: /data/mongodb/logs/mongodb2.log               //每个实例指定自己日志目录

     .......

dbPath: /data/mongodb/mongodb2                        //每个实例指定自己的数据目录

     port: 27018                                                          //指定端口分别为27018、 27019 、 27020

        .......

     replication:                                           //开启所有实例的复制参数:定义一个 replSetName: yang

                replSetName: yang


[root@localhost logs]# vim /etc/mongod3.conf

# vim /etc/mongod3.conf   

      .......

path: /data/mongodb/logs/mongodb3.log               //每个实例指定自己日志目录

     .......

dbPath: /data/mongodb/mongodb3                        //每个实例指定自己的数据目录

     port: 27019                                       //指定端口分别为27018、 27019 、 27020

        .......

     replication:                          //开启所有实例的复制参数:定义一个 replSetName: yang

                replSetName: yang


[root@localhost logs]# vim /etc/mongod4.conf

# vim /etc/mongod4.conf   

      .......

path: /data/mongodb/logs/mongodb4.log               //每个实例指定自己日志目录

     .......

dbPath: /data/mongodb/mongodb4                        //每个实例指定自己的数据目录

     port: 27020                                          //指定端口分别为27018、 27019 、 27020

        .......

     replication:                           //开启所有实例的复制参数:定义一个 replSetName: yang

                replSetName: yang


6.设置配置以上步骤修改完成mongo2  mongo3  mongo4后,开启服务

[root@localhost logs]# mongod -f /etc/mongod2.conf


[root@localhost logs]# mongod -f /etc/mongod3.conf


[root@localhost logs]# mongod -f /etc/mongod4.conf

#查看下四个端口的MongoDB开启

[root@localhost logs]# netstat -natp | grep mongo

MongoDB 主从复制集搭建

7.配置三个节点的复制集

#首先进入默认MongoDB数据库

mongo

#创建三个节点复制集

cfg={"_id":"yang","members":[{"_id":0,"host":"192.168.233.6:27017"},{"_id":1,"host":"192.168.233.6:27018"},{"_id":2,"host":"192.168.233.6:27019"}]}

MongoDB 主从复制集搭建

#初始化配置时保证从节点没有数据

rs.initiate(cfg)

MongoDB 主从复制集搭建

rs.status()      #查看复制集的状态

MongoDB 主从复制集搭建

主节点:27017端口

MongoDB 主从复制集搭建

从节点:27018端口

MongoDB 主从复制集搭建

从节点:27019端口

MongoDB 主从复制集搭建

#因为之前只是创建了三个节点的复制集,现在演示添加27020端口的节点

#首先需要进入主节点PRIMARY  27017


#添加节点 ,在主节点上才能进行操作 primary

rs.add("192.168.233.6:27020")

MongoDB 主从复制集搭建

rs.status()      #查看复制集的状态

MongoDB 主从复制集搭建

#既然能添加节点,就能删除节点:
#删除节点 ,在主节点上才能进行操作  primary

rs.remove("192.168.233.6:27020")

MongoDB 主从复制集搭建


您可能感兴趣的文档:

--结束END--

本文标题: MongoDB 主从复制集搭建

本文链接: https://www.lsjlt.com/news/43609.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB 主从复制集搭建
    一、Mongodb复制集简介什么是复制集?复制集(Replica Sets)是额外的数据副本,是跨多个服务器同步数据的过程,复制集提供了冗余并增加了数据可用性,通过复制集可以对硬件故障和中断的服务进行恢复。...
    99+
    2022-10-18
  • MongoDB中怎么搭建主从复制
    MongoDB中怎么搭建主从复制,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。mongodb的集群搭建方式主要有三种,主从模式,副本集模式,s...
    99+
    2022-10-18
  • mongoDB中如何搭建主从复制
    mongoDB中如何搭建主从复制,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。详解mongoDB主从复制搭建详细过程主 192.16...
    99+
    2022-10-18
  • Redis-3.2主从复制与集群搭建
    一、Redis 主从搭建1.下载并解压yum install -y gcc gcc-c++ pcre zlib pcre-devel&n...
    99+
    2022-10-18
  • Mysql主从复制搭建
    1.mysql主库会把所有的写操作记录在binlog日志中,并且生成log dump线程,将binlog日志传给从库的I/O线程,从库生成两个线程,一个是I/O线程,另外一个是SQL线程。 主将更改操作记录到binlog里从将主的binlo...
    99+
    2020-09-28
    Mysql主从复制搭建
  • MongoDB搭建Replica Set复制集
      1、在MongoDB的同级安装目录下创建数据目录,目录结构如下:        /data/rs0...
    99+
    2022-10-18
  • MySQL5.7主从复制-GTID复制搭建
     两台服务器,系统是Redhat6.5,MySQL版本是5.7.18。 1、在主库上,创建复制使用的用户,并授予replication slave权限。这里创建用户repl,可以从IP为1...
    99+
    2022-10-18
  • mongodb主从复制
    服务器架构: 角色 ip地址 端口 主服务器 192.168.8.81 27017 从服务器 192.1...
    99+
    2022-10-18
  • Docker搭建Mysql主从复制
    Docker搭建Mysql主从复制 前言 相信我,看完这一篇,mysql主从复制能遇到的错误在我这里都遇到了,docker能遇到的错误在我这里也遇到了,包括centos的错误,看吧,都是成长 do...
    99+
    2023-09-24
    docker mysql 容器 Linux
  • centos7 maiadb主从复制搭建
    需求:由于要使用saltstack,部署环境,先手动搭建了下主从环境,发现原来的word资料都找不到了,所以这次赶紧的记录到博客当中!!环境:两台设备,ip地址分别为:node1:192.168.56.11...
    99+
    2022-10-18
  • 逻辑复制主从搭建
    创建复制用户: CREATE USER 'repl'@'192.168.6.%' IDENTIFIED BY '123'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@...
    99+
    2022-10-18
  • MySQL5.7主从复制-异步复制搭建
      两台服务器,系统是Redhat6.5,MySQL版本是5.7.18。 1、在主库上,创建复制使用的用户,并授予replication slave权限。这里创建用户repl,可以从IP...
    99+
    2022-10-18
  • mysql搭建主从复制(一主一从,双主双从)
    主从复制原理 Mysql 中有一个binlog 二进制日志,这个日志会记录下所有修改了的SQL 语句,从服务器把主服务器上的binlog二进制日志在指定的位置开始复制主服务器所进行修改的语句到从服务器上执行一遍。 流程图 搭建一...
    99+
    2016-07-17
    mysql搭建主从复制(一主一从,双主双从)
  • Mysql主从复制搭建过程
    这篇文章主要讲解了“Mysql主从复制搭建过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql主从复制搭建过程”吧! 一、相关概念mysql主从复...
    99+
    2022-10-18
  • mysql主从复制环境搭建
    mysql 主从第一次我用不同版本mysql做会出不同步问题,建议用相同版本的mysql做主从主my.cnf文件 (192.168.1.64)mysqld模块加入log-bin=mysql-bin 启动二进...
    99+
    2022-10-18
  • 如何搭建mysql主从复制
    搭建mysql主从复制的方法在主从服务器开启时间同步[root@storage  ~]# ntpdate 172.18.0.1主数据库配置使用记事本打开主数据库的my.cnf配置文件,在文件中的[my...
    99+
    2022-10-18
  • mongodb主从复制及副本集的部署
    一.mongodb配置参数介绍:[root@host11 tmp]# cat  /etc/mongod.conf #以守护进程的方式运行fork=true#设置db的路径dbpath=/...
    99+
    2022-10-18
  • mongodb主从复制配置
    主从复制是mongodb最常用的复制方式,这种方式很灵活.可用于备份,故障恢复,读扩展等.最基本的设置方式就是建立一个主节点和一个或多个从节点,每个从节点要知道主节点的地址. 我们用两种方式来实现主从.这里...
    99+
    2022-10-18
  • Docker搭建MySQ主从复制原理
    目录简介使用Docker拉取MySQL镜像查看镜像启动MySQL主从容器配置Master配置Slave开启Master-Slave主从复制简介 通过docker学习主从复制可以节省资...
    99+
    2022-11-13
  • MySQL 主从复制原理及搭建
    一.主从复制的工作过程:二.MySQL复制类型基于SQL语句的复制基于行的复制混合复制三.实验环境  OS:CentOS 6.5 x64  master:192.168.0.134&nb...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作