文档章节

Mongo服务器集群配置——主从复制

跃月
 跃月
发布于 2016/06/15 14:28
字数 741
阅读 55
收藏 3

MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的安全性;复制还允许您从硬件故障和服务中断中恢复数据。

MongoDB复制原理

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

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

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

  • 默认读写操作都指向主节点。
  • 主节点是唯一的,但不固定。 
    复制集工作方式

    主从复制实践

    开启一个mongodb实例可以直接通过shell命令也可以通过配置文件开启,在之前的文章中已经介绍shell命令开启,本文我们将通过config文件的方式开启。

    • 语法格式:mongod -f config.cnf

1、接下来我们需要配置三份配置文件,10001,10002,10003;之中10001作为主库,其他的为从库;

 
  1. <--10001
  2. dbpath=D:\MongoData\10001\db
  3. logpath=D:\MongoData\10001\log\MongoDB.log
  4. bind_ip=127.0.0.1
  5. port=10001
  6. master=true--主节点
  7. <--10002
  8. dbpath=D:\MongoData\10002\db
  9. logpath=D:\MongoData\10002\log\MongoDB.log
  10. bind_ip=127.0.0.1
  11. port=10002
  12. slave=true--从节点
  13. source=127.0.0.1:10001--从对应的主节点复制数据
  14. <--10003
  15. dbpath=D:\MongoData\10003\db
  16. logpath=D:\MongoData\10003\log\MongoDB.log
  17. bind_ip=127.0.0.1
  18. port=10003
  19. slave=true--从节点
  20. --10003我们没有这只source,待会儿我们手动设置

2、开启mongodb实例 
上文中已经告诉大家怎么把mongodb实例总成windows服务来开启;我们将创建startup.bat(开启服务)

 
  1. <--startup.bat
  2. mongod -f D:\MongoData\10001\conf\10001.conf --install --serviceName MongoDB --serviceDisplayName MongoDB10001
  3. NET START MongoDB
  4. pause
  5. --注意用到-install命令,conf文件必须是绝对路径。

3、测试 
从库10002 第一次查询 person没有记录,当主库10001person插入一条数据后,再去查询 从库成功读取到数据,说明我们的主从复制完全没有问题。

  • 注意 
    MongoDb的“not master and slaveok=false”错误及解决方法 
    在SECONDARY查询出发现如下错误: 
    SECONDARY> show collections; 
    Sat Aug 4 15:29:00 uncaught exception: error: { "$err" : "not master and slaveok=false", "code" : 13435 } 
    这是正常的,因为SECONDARY是不允许读写的,如果非要解决,方法如下: 
    SECONDARY> rs.slaveOk();

© 著作权归作者所有

共有 人打赏支持
跃月
粉丝 2
博文 17
码字总数 9715
作品 0
张掖
程序员
私信 提问
加载中

评论(1)

胖丫
胖丫
这个不是长久解决办法
如果推出
下次再次登录的时候
还是会报同样的错误
大数据实践-数据同步篇tungsten-relicator(mysql->mongo)

[导读] 随着公司业务的快速发展数据量也迅速的增大,基于用户各个维度深度分析,关系型数据压力越来越大;因此急于寻找一些解决方案;调研了很久最后采用了 golang+mongod集群的这个方案,使...

纯洁的虫纸
2015/10/28
0
0
和lock一起学beego 博客系统开发为例(三)

mongodb: MongoDB(二):基础知识 Django学习笔记:为Model添加Action 和lock一起学beego 博客系统开发为例(三) 深入Go语言 - 1 django captcha imagintft: 关于captcha使用The _imagingft C ...

d_watson
2016/06/16
18
0
mongodb 主从模式架构

mongodb的主从集群分为两种 1,master-salve 主从复制 -- 需要指定主节点,从节点 2,replica sets 副本集 -- 没有固定的主节点,整个集群会选出一个主节点 本篇文章说第一种:主从复制: 在...

Atom_me
2016/05/15
99
0
mongo 集群配置

master-slave 主的配置文件 /Users/olifer/middle/mongo/master-slave/master/mongod.conf 从的配置文件 启动主服务器,并且看到下面的日志,说明配置成功。 启动从服务器,并且看到下面的日志...

数齐
2017/12/05
0
0
MongoDB分片及副本集配置说明

MongoDB分片及副本集配置说明 目录 MongoDB分片及副本集配置说明... 1 第一部分 副本集... 2 第一步 副本集部署... 3 第二步 副本集初始化(在哪个端口下初始化都行). 4 第三步 启动仲裁服务器...

凯文加内特
2014/05/23
0
2

没有更多内容

加载失败,请刷新页面

加载更多

node.js学习笔记之koa框架和简单爬虫练习

Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,可以免除重复繁琐的回调...

前端小攻略
17分钟前
3
0
JavaScript中的继承及实现代码

JS虽然不像是JAVA那种强类型的语言,但也有着与JAVA类型的继承属性,那么JS中的继承是如何实现的呢? 一、构造函数继承 在构造函数中,同样属于两个新创建的函数,也是不相等的 function Fn...

peakedness丶
39分钟前
3
0
记一次面试最常见的10个Redis"刁难"问题

导读:在程序员面试过程中Redis相关的知识是常被问到的话题。作为一名在互联网技术行业打击过成百上千名的资深技术面试官,本文作者总结了面试过程中经常问到的问题。十分值得一读。 Redis在...

小刀爱编程
52分钟前
16
0
TiDB Lab 诞生记 | TiDB Hackathon 优秀项目分享

本文由红凤凰粉凤凰粉红凤凰队的成员主笔,他们的项目 TiDB Lab 在本届 TiDB Hackathon 2018 中获得了二等奖。TiDB Lab 为 TiDB 培训体系增加了一个可以动态观测 TiDB / TiKV / PD 细节的动画...

TiDB
今天
4
0
当区块链遇到零知识证明

本文由云+社区发表 当区块链遇到零知识证明 什么是零知识证明 零知识证明的官方定义是能够在不向验证者任何有用的信息的情况下,使验证者相信某个论断是正确的。这个定义有点抽象,下面笔者举...

腾讯云加社区
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部