返回顶部
首页 > 资讯 > 数据库 >Mongodb主从模式篇
  • 847
分享到

Mongodb主从模式篇

2024-04-02 19:04:59 847人浏览 薄情痞子
摘要

主从模式架构图:主从配置安装:10.10.20.160(master)-->10.10.20.161(slave)Master:tar zxvf mongoDB-linux-x86_64-2.2.2.

主从模式架构图:

Mongodb主从模式篇

主从配置安装:

10.10.20.160(master)-->10.10.20.161(slave)

Master

tar zxvf mongoDB-linux-x86_64-2.2.2.tgz

ln -s monGodb-linux-x86_64-2.2.2 mongodb

mkdir -p /u01/mongodata/db/geomaster/

mkdir -p /u01/mongodata/log/

/usr/local/mongodb/bin/mongod --fork --port40000 --dbpath /u01/mongodata/db/geomaster/ --logpath/u01/mongodata/log/geomaster.log --logappend –master

 

Slave

tar zxvf mongodb-linux-x86_64-2.2.2.tgz

ln -s mongodb-linux-x86_64-2.2.2 mongodb

mkdir -p /u01/mongodata/db/geomaster/

mkdir -p /u01/mongodata/log/

/usr/local/mongodb/bin/mongod --fork --port40000 --dbpath /u01/mongodata/db/geoslave/ --logpath /u01/mongodata/log/geosalve.log–logappend --slave --source 10.10.20.160:40000

 

参数说明:

mongod为mongoDB的server程序,启动参数使用的主要有如下几个

--fork fork出一个server端的daemon进程

--port server监听端口

--dbpath 数据文件目录

--logpath 日志文件路径

--logappend 日志追加到日志文件中,而不是覆盖写入

 

mongod在主从情况下可以设置的参数有:

--master master模式

--salve salve模式

--source salve模式下指定master<server:port>

--only 只复制某一个数据库

--salvedelay 从库从主库中同步延时

--autoresync 假如从库数据不同步,自动同步

 

主从配置完毕后测试:

Master

/usr/local/mongodb/bin/mongo -port 40000

use test;

db.createCollection("table1");

db.test.table1.insert({tag:"test"});

db.test.table1.find();

 

slave

/usr/local/mongodb/bin/mongo -port 40000

db.test.table1.find();

有数据,说明同步成功

同步后在master上用db.currentOp()也能看到slave的线程

 

主从相关命令:

db.isMaster():主从都可执行,用这个命令判断是不是master

db.getReplicationInfo():主上执行,获取主从信息

db.printReplicationInfo():主从都可执行,获取主从信息

db.printSlaveReplicationInfo();:从库执行,查看主从延时

 

同步失败处理方法:

如果同步失败,可使用如下命令同步所有数据:

同步出现问题,日志会有如下记录

TueFeb 19 16:31:45 [replslave] all sources dead: data too stale haltedreplication, sleeping for 5 seconds

都是每5秒重试,一直在重试,那么如果要解决只能执行下面的命令全部同步一下

Use admin

db.runCommand ( { "resync": 1 } )

也可在启动从库时添加--autoresync参数

 

同步原理:

同步就是master上把对数据的更改操作记录到oplog中,然后slave抓取master的oplog执行。从这点看Oplog的功能和Mysqlmysql-bin.的功能类似。Mysql-bin以二进制日志的形式存在,但是oplog是以一个mongodb的表的形式存在,该表在local库表名为oplog.$main,该表为循环写入形,所以不用定时清理。

 

修改oplog大小:

我们在首次启动mongodb服务的时候如果没有设置oplog的大小,那么它的默认值将是所在硬盘的5%,那么如果我们想要改变大小呢,必须重启,然后在启动的时候设置oplogsize,不过还有个小问题,因为之前的oplog已经存在了,所以修改完大小启动会报错,Tue Feb 19 15:43:19[initandlisten] cmdline oplogsize (10) different than existing (1779),解决方法就是将mongodb数据目录下的local.*删除,参见:Http://api.mongodb.org/wiki/current/Halted%20Replication.html

由于删除后oplog是重建的,slave的时间点信息比master上oplog的开始时间点要小,所以从库只能做全同步才能继续同步。但是有个问题,如果主库数据非常多的话,做一次全同步是一件非常耗时的事,况且数据也没有丢失。那么现在有个小技巧:

  1. 关闭slave的mongo服务

  2. Master上在我们删除local.*之后,不要急着启动服务,先用linux的date命令更改系统时间,让时间小于slave上同步的最后时间,也就是slave执行db.printSlaveReplicationInfo()看到的时间

  3. 然后启动主库和从库方能继续同步

您可能感兴趣的文档:

--结束END--

本文标题: Mongodb主从模式篇

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

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

猜你喜欢
  • Mongodb主从模式篇
    主从模式架构图:主从配置安装:10.10.20.160(master)-->10.10.20.161(slave)Master:tar zxvf mongodb-linux-x86_64-2.2.2....
    99+
    2024-04-02
  • Mongodb replica set模式篇
    复制集架构图:三节点replicaset配置安装(无仲裁节点):Replica set 【10.10.20.161-10.10.20.163】10.10.20.161-10.10.20.163这三台按下面的...
    99+
    2024-04-02
  • MongoDB主从模式如何修改主库的oplogsize
    MongoDB主从模式如何修改主库的oplogsize,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。如果是集群分片环境建议使用官方方法:htt...
    99+
    2024-04-02
  • MongoDB主从的实现方式
    这篇文章主要介绍“MongoDB主从的实现方式”,在日常操作中,相信很多人在MongoDB主从的实现方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MongoDB主从的实现...
    99+
    2024-04-02
  • mongodb 主从 双主
    主从模式   master ./mongod --dbpath /mongodb/masterdb/ --port 10000 --master  --logpath /tmp/mong...
    99+
    2024-04-02
  • MySQL主主模式和主从模式的区别有哪些
    这篇文章主要介绍MySQL主主模式和主从模式的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! MySQL复制的原理:将数据分布到多个系统上去,...
    99+
    2024-04-02
  • MongoDB主从模式中怎么手动强制同步数据
    MongoDB主从模式中怎么手动强制同步数据,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 如果slave因为特...
    99+
    2024-04-02
  • redis 主从哨兵模式实现一主二从
    目录一、环境二、安装三、配置3.1、配置Redis.config文件3.2、配置sentinel.config文件一、环境 操作系统:Centos7.6/MAC OSredis版本:6.2.5以上版本ssh工具:xshe...
    99+
    2022-07-11
    redis 主从哨兵 redis  一主二从
  • redis 主从哨兵模式实现一主二从
    目录一、环境二、安装三、配置3.1、配置redis.config文件3.2、配置sentinel.config文件一、环境 操作系统:centos7.6/Mac OSredis版本:...
    99+
    2024-04-02
  • Redis从单点到集群部署模式(单机模式 主从模式 哨兵模式)
    目录导读单机模式优势劣势主从模式优势劣势哨兵模式优势劣势集群模式优势劣势全量复制部分复制导读 Redis 从单点 -> 集群总共有三个部署模式:单机模式,主从模式,哨兵模式,集群模式 单机模式 新手入门模式。单机模...
    99+
    2023-11-08
    Redis单点集群部署模式 Redis 单机主从哨兵模式
  • mongodb主从配置
    1、mongodb主从配置主从都在同一台服务器上,主起的是默认的端口,从起的是99991)master/usr/local/mongodb/bin/mongod --master --dbpath /usr...
    99+
    2024-04-02
  • mongodb主从复制
    服务器架构: 角色 ip地址 端口 主服务器 192.168.8.81 27017 从服务器 192.1...
    99+
    2024-04-02
  • redis集群的主从模式
    这篇文章将为大家详细讲解有关redis集群的主从模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。redis集群主从模式介绍:      &...
    99+
    2024-04-02
  • Redis主从复制结构模式,哨兵模式
    设置临时生效 1.配置从库 192.168.4.58:6058> info replication // 查看主从配置信息 # Replication role:master connected_s...
    99+
    2024-04-02
  • redis主从哨兵模式怎么实现一主二从
    这篇文章主要介绍“redis主从哨兵模式怎么实现一主二从”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“redis主从哨兵模式怎么实现一主二从”文章能帮助大家解决问题。一、环境操作系统:centos7...
    99+
    2023-07-02
  • mysql中怎么实现主从和主主模式
    mysql中怎么实现主从和主主模式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 mysql 复制的实现机制 1)首先主mysql把操...
    99+
    2024-04-02
  • MongoDB主从+php实现
    环境172.16.115.202   primary172.16.111.171   secondary172.16.115.157   secondary一、MongoDB安...
    99+
    2024-04-02
  • MongoDB 主从配置 [二]
    MongoDB 主从配置1.实验环境主:192.168.3.206从:192.168.3.2102.安装方法(分别在主、从执行下面命令) groupadd mongodb useradd...
    99+
    2024-04-02
  • redis主从模式如何配置
    要配置Redis主从模式,首先需要在主节点和从节点上分别修改redis.conf配置文件。 主节点配置: 打开主节点的redis....
    99+
    2023-10-26
    redis
  • redis主从模式怎么切换
    redis 主从模式切换有两种方法:直接切换和 redis-sentinel 辅助切换。直接切换需要手动操作,包括停用主服务器、同步数据、解除关联和连接新主节点。redis-sentin...
    99+
    2024-05-21
    redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作