服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - MongoDB - MongoDB高可用方案之主从复制

MongoDB高可用方案之主从复制

2021-05-21 01:00后端Qconan MongoDB

MongoDB 是当前比较流行的文档型数据库,其拥有易使用、易扩展、功能丰富、性能卓越等特性。 主节点会记录写有关的操作,读操作不记录。这些操作记录在local数据库中的oplog.admin和slave两个集合。slave记录从节点信息。

MongoDB高可用方案之主从复制

MongoDB 是当前比较流行的文档型数据库,其拥有易使用、易扩展、功能丰富、性能卓越等特性。

主节点会记录写有关的操作,读操作不记录。这些操作记录在local数据库中的oplog.admin和slave两个集合。slave记录从节点信息。

从节点会定时去连接主节点,获取主节点的操作日志从而执行主节点一样的操作,从而达到数据同步。从节点的local数据库会有 source、me两个集合。source记录主节点信息,me记录从节点标识。

下面看一下怎么一步步搭建MongoDB的主从复制节点:

准备两台机器 10.43.159.56 和 10.43.159.58。10.43.159.56当作主节点, 10.43.159.58作为从节点。

分别下载MongoDB安装程序包。在10.43.159.56上建立文件夹/data/MongoDBtest/master,10.43.159.58建立文件夹/data/MongoDBtest/slave。

在10.43.159.56启动MongoDB主节点程序。注意后面的这个 “ –master ”参数,标示主节点:

mongod –dbpath /data/MongoDBtest/master–master

输出日志如下,成功:

[initandlisten] MongoDB starting :pid=18285 port=27017 dbpath=/data/MongoDBtest/master master=1

在10.43.159.58启动MongoDB从节点程序。关键配置:指定主节点ip地址和端口 –source 10.43.159.56:27017 和标示从节点 –slave参数:

mongod –dbpath /data/MongoDBtest/slave–slave –source 10.43.159.56:27017

输出日志如下,成功:

[initandlisten] MongoDB starting : pid=17888port=27017 dbpath=/data/MongoDBtest/slave slave=1

日志显示从节点从主节点同步复制数据 :

[replslave] repl: from host: 10.43.159.56:27017

这样,主从结构的MongoDB集群就搭建好了,是不是很简单?

下面我们来看看这个集群能做什么?先登录到从节点shell上,执行插入数据:

mongo 127.0.0.1:27017

> db.testdb.insert({"test3":"testval3"});

not master

可以看到 MongoDB的从节点是只能读,不能执行写操作的。

那么如果主服务器挂掉,从服务器可以接替工作吗?

可以试一下,强制关掉主节点上的MongoDB进程,登录在从节点上,再次执行插入数据:

> db.testdb.insert({"test3":"testval3"});

not master

看来从节点并没有自动接替主节点的工作,那就只有人工处理了,停止从节点,再以master的方式启动从节点,由于从节点上数据跟主节点一样,此时从节点是可以替代主节点工作的,这属于人工切换。

此外,我们可以搭建多个从节点,实现数据库的读写分离,比如主节点负责写,多个从节点负责读,对于移动APP,绝大部分操作都是读操作,可以实现负荷分担。

原文地址:https://mp.weixin.qq.com/s/EvnjJz-OSov35HanTynZ-g

延伸 · 阅读

精彩推荐
  • MongoDBmongodb数据库基础知识之连表查询

    mongodb数据库基础知识之连表查询

    这篇文章主要给大家介绍了关于mongodb数据库基础知识之连表查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mongodb具有一定的参...

    ZJW02155642020-05-22
  • MongoDB在mac系统下安装与配置mongoDB数据库

    在mac系统下安装与配置mongoDB数据库

    这篇文章主要介绍了在mac系统下安装与配置mongoDB数据库的操作步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    CXYhh1219312021-11-14
  • MongoDBMongoDB的索引

    MongoDB的索引

    数据库中的索引就是用来提高查询操作的性能,但是会影响插入、更新和删除的效率,因为数据库不仅要执行这些操作,还要负责索引的更新 ...

    MongoDB教程网2532020-05-12
  • MongoDBMongoDB系列教程(五):mongo语法和mysql语法对比学习

    MongoDB系列教程(五):mongo语法和mysql语法对比学习

    这篇文章主要介绍了MongoDB系列教程(五):mongo语法和mysql语法对比学习,本文对熟悉Mysql数据库的同学来说帮助很大,用对比的方式可以快速学习到MongoDB的命...

    MongoDB教程网3252020-05-01
  • MongoDBMongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    这篇文章主要给大家介绍了关于MongoDB查询之高级操作(多条件查询、正则匹配查询等)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者...

    w田翔3872020-12-19
  • MongoDBMongodb索引的优化

    Mongodb索引的优化

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。接下来通过本文给大家介绍Mongodb索引的优化,本文介绍的非常详细,具有参考借鉴价值,感...

    MRR3252020-05-05
  • MongoDBMongoDB多条件模糊查询示例代码

    MongoDB多条件模糊查询示例代码

    这篇文章主要给大家介绍了关于MongoDB多条件模糊查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值...

    浅夏晴空5902020-05-25
  • MongoDBWindows下MongoDB配置用户权限实例

    Windows下MongoDB配置用户权限实例

    这篇文章主要介绍了Windows下MongoDB配置用户权限实例,本文实现需要输入用户名、密码才可以访问MongoDB数据库,需要的朋友可以参考下 ...

    MongoDB教程网3082020-04-29