文档章节

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

跃月
 跃月
发布于 2016/06/15 14:28
字数 741
阅读 52
收藏 3
点赞 0
评论 1

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
搭建高可用mongodb集群(一)—— 配置mongodb

在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写、海量数据高效存储、高可扩展性和高可用性这些难题。不过就是因为这些问题Nosql诞生了。 NOSQL有这些优势: 大数据量...

foxeye
2016/03/16
42
0
Mongodb配置主从模式,进行数据的同步与备份

Mongodb配置主从模式,进行数据的同步与备份 1. 背景 做数据库的人都知道要对数据做备份,避免数据库单点部署,以防止数据遭到毁灭性破坏。 mongodb提供的Master/slave主从模式,刚好能支持这...

zwq912318834
01/04
0
0
MongoDB分片及副本集配置说明

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

凯文加内特
2014/05/23
0
2
mongo 集群配置

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

数齐
2017/12/05
0
0
mysql主从复制的高可用解决方案

1.1、drbd —— DRBD(Distributed Replicated Block Device),DRBD号称是 "网络 RAID",开源软件,由 LINBIT 公司开发。DRBD 实际上是一种块设备的实现,主要被用于Linux平台下的高可用(HA)方案...

stone_
2016/05/04
47
0
#搭建高可用mongodb集群(一)——配置mongodb

本博客已迁移至 [www.0x520.com][1] [1]:http://www.0x520.com 搭建高可用mongodb集群(一)——配置mongodb 在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写、海量数...

小小霸王枪
2013/12/26
0
5
搭建高可用mongodb集群(一)——配置mongodb

在大数据的时代,传统的关系型数据库要能更高的服务必须要解决高并发读写、海量数据高效存储、高可扩展性和高可用性这些难题。不过就是因为这些问题Nosql诞生了。 NOSQL有这些优势: 大数据量...

观澜而索源
2013/11/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

rabbitmq学习记录(六)交换机Exchange-direct

实现功能:一条消息发送给多个消费者 交换机模式:direct 相比于之前的fanout模式,可以进一步的筛选获取消息的消费者。 fanout模式下,只要消费者监听的队列,已经与接收生产者消息的交换机...

人觉非常君
17分钟前
0
0
Java 之 枚举

Java 中声明的枚举类,均是 java.lang.Enum 类的子类,Enun 类中的常用方法有: name() 返回枚举对象名称 ordinal() 返回枚举对象下标 valueOf(Class enumType, String name) 转换枚举对象 ...

绝世武神
26分钟前
0
0
使用爬虫实现代理IP池之放弃篇

啥叫代理IP以及代理IP池 概念上的东西网上搜索一下就好了,这里简单科普一下(大部分会读这篇文章的人,基本是不需要我来科普的),白话说就是能联网并提供代理访问互联网的服务器,它提供的...

一别丶经年
42分钟前
0
0
sqoop导入数据到Base并同步hive与impala

使用Sqoop从MySQL导入数据到Hive和HBase 及近期感悟 基础环境 Sqool和Hive、HBase简介 Sqoop Hive HBase 测试Sqoop 使用Sqoop从MySQL导入数据到Hive 使用复杂SQL 调整Hive数据类型 不断更新 ...

hblt-j
今天
0
0
Dart 服务端开发 文件上传

clent端使用angular组件 upload_component.html form id="myForm" method="POST" enctype="multipart/form-data"> <input type="file" name="fileData"> <!-- file field --></form>......

scooplol
今天
0
0
apache和tomcat同时开启,乱码问题

tomcat和apache同时开启,会走apache的转发,执行的是AJP/1.3协议。所以在tomcat的配置文件server中, <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" useBodyEncodingForU......

Kefy
今天
0
0
使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录 和ssh常用命令

ssh-keygen 产生公钥与私钥对. ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home, ~./ssh , 和 ~/.ssh/authorized_keys的权利 第一步...

xtof
今天
0
0
orcale 查询表结构

SELECT t.table_name, t.colUMN_NAME, t.DATA_TYPE || '(' || t.DATA_LENGTH || ')', t1.COMMENTS FROM User_Tab_Cols t, User_Col_Comments t1WHERE t.table_name......

wertwang
今天
0
0
华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大

华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大!华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大! 在华为最新发布的nova 3手机上,抖音通过华为himedia SDK集成了60fps、超级...

华为终端开放实验室
今天
0
0
多 SSH Key 实现同一台服务器部署多 Git 仓库

本文以以下需求为背景,介绍详细的做法: 需在同一台服务器同时部署两个不同的 Github 仓库(对 Bitbucket 等 git 服务同样适用) root 用户可在远程登录 SSH 后附上预期的 SSH Key 进行 gi...

yeahlife
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部