①主从复制

最基本的设置方式就是建立一个主节点和一个或多个从节点,每个从节点要知道主节点的地址。采用双机备份后主节点挂掉了后从节点可以接替主机继续服务,所以这种模式比单节点的高可用性要好很多。

②注意点

1)在数据库集群中要明确的知道谁是主服务器,主服务器只有一台.

2)从服务器要知道自己的数据源也就是对应的主服务是谁.

3)--master用来确定主服务器,--slave 和 --source 来控制从服务器

③主从复制的原理

在主从结构中,主节点的操作记录成为oplog(operation log)。oplog存储在一个系统数据库local的集合oplog.$main中,这个集合的每个文档都代表主节点上执行的一个操作。

从服务器会定期从主服务器中获取oplog记录,然后在本机上执行!对于存储oplog的集合,MongoDB采用的是固定集合,也就是说随着操作过多,新的操作会覆盖旧的操作!

主从复制搭建--单机

1:先创建几个存放数据的文件夹,比如在前面的dbs下面创建db1,db2

同理在前面的logs下面创建logs1,logs2

2:在启动MongoDB服务器的时候,使用--replSet副本集名称选项,如

./mongod --dbpath ../dbs/db1 --logpath ../logs/logs1 --port 20001 --fork --master

3:然后再启动两个,端口为20002,当然要修改相应的数据文件路径和日志路径,副本集名称

./mongod --dbpath ../dbs/db2 --logpath ../logs/logs2 --port 20002 --fork --slave  --source localhost:20001

4:

./mongo localhost:20001

./mongo localhost:20002

5:添加和删除源

除了可以在启动从节点的时候,制定source外,也可以在从节点的local数据库的sources集合里面添加主节点的信息,如:

db.sources.insert({“host”:”ip:port”});

不用了,就remove就好了

主从复制搭建--多机

1)机器环境

182.48.115.238    master-node

182.48.115.236    slave-node

两台机器都关闭防火墙和selinux

2)主从配置

.............master-node节点配置.............

[root@master-node ~]# vim /usr/local/mongodb/mongodb.conf

port=27017

bind_ip = 182.48.115.238

dbpath=/usr/local/mongodb/data

logpath=/usr/local/mongodb/log/mongo.log

logappend=true

journal = true

fork = true

master = true        //确定自己是主服务器

[root@slave-node ~]# bin/mongod -f mongodb.conf

./mongo IP:PORT

.............slave-node节点配置.............

[root@slave-node ~]# vim /usr/local/mongodb/mongodb.conf

port=27017

dbpath=/usr/local/mongodb/data

logpath=/usr/local/mongodb/log/mongo.log

logappend=true

journal = true

fork = true

bind_ip = 182.48.115.236

source = 182.48.115.238:27017

slave = true

[root@slave-node ~]# bin/mongod -f mongodb.conf

./mongo IP:PORT

⑥测试
 
 
 
 
 
 
 
 
 
 
 
 
 
 

第35章:MongoDB-集群--Master Slave(主从复制)的更多相关文章

  1. Mongodb集群——master/slave

    集群的配置 (本测试放于同一台机器进行配置,所以IP地址一样,如果是在不同的服务器上更换IP便可以)   1.目录结构       拷贝两份mongodb到/home/scotte.ye/mongo1 ...

  2. MongoDB学习笔记——Master/Slave主从复制

    Master/Slave主从复制 主从复制MongoDB中比较常用的一种方式,如果要实现主从复制至少应该有两个MongoDB实例,一个作为主节点负责客户端请求,另一个作为从节点负责从主节点映射数据,提 ...

  3. MongoDB 集群搭建(主从复制、副本及)(五)

    六:架构管理 mongodb的主从集群分为两种: 1:master-Slave 复制(主从)    --从server不会主动变成主server,须要设置才行 2:replica Sets 复制(副本 ...

  4. [转]搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  5. 搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  6. 搭建高可用mongodb集群—— 分片

    从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出 ...

  7. 搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)--配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  8. 搭建高可用mongodb集群—— 副本集

    转自:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html 在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB& ...

  9. mongodb集群化

    转自:https://www.cnblogs.com/nulige/p/7613721.html 一.mongodb主从复制配置 主从复制是MongoDB最常用的复制方式,也是一个简单的数据库同步备份 ...

随机推荐

  1. Activiti流程设计工具

    在Actitivi工程的src/main/resources新建一个文件夹diagrams 然后右键,创建一个activiti Diagram 取名为helloWorld后finish 中间区域,是我 ...

  2. node项目初始化的一些配置

    1. const port = process.env.PORT || 9001; 本地开发用9001端口 2. package.json中配置几个启动命令 "scripts": ...

  3. postgresql模糊查询json类型字段内某一属性值

    需求场景: 目录以jsonb格式存储在数据库表t的chapter字段中,需要菜单路径中包含指定字符串(比如“语文”或者“上学期”)的menu 以下为chapter字段存储json示例: { " ...

  4. js数据类型检测

    目录 1. typeof {} 2. {} instanceof Object 3. {}.constructor === Object 4. Object.property.toString.cal ...

  5. openStack 重新resize时会进行重新调度,可能在本机Resize 扩展资源,也可能存在的情况时 ,新扩展的资源在当前节点不足分配,整个虚拟机将进行迁移调度,进行异机迁移时需要迁移 的两台主机间能使用nova系统用户经passless登录

    openStack 重新resize时会进行重新调度,可能在本机Resize 扩展资源,也可能存在的情况时 ,新扩展的资源在当前节点不足分配,整个虚拟机将进行迁移调度,进行异机迁移时需要迁移 的两台主 ...

  6. 今天看了几个小时的微信小程序说说心得体会

    今天看了几个小时的微信小程序说说心得体会 小程序是个前端框架 根据微信相关提供了很多接口 1 先说说各种后缀的文件 .json 后缀的 JSON 配置文件.wxml 后缀的 WXML 模板文件.wxs ...

  7. CMake Error at cuda_compile_generated_warp.cu.o.cmake:264 (message)

    今天,我来给大家分享一下opencv安装时报的错.然后讲错是怎么解决的. 为啥老是写一些环境搭建的博客?因为环境搭建琐碎而繁杂,希望写下来,帮助大家.让大家少走弯路. 专注主业,专注算法的实现和优化. ...

  8. react-native-pushy 热更新

    教程来源于官网: 准备工作 添加热更新功能 发布应用 说明: 在往 pushy 发布了安装包之后,后续都是通过下面 2个命令来发布 热更新版本的,而不是再次发布安装包, 在使用热更新服务更新版本的时候 ...

  9. JPA中建立数据库表和实体间映射小结

    在JPA中,映射数据库表和实体的时候,需要注意一些细节如下, 实体类要用@Entity的注解: 要用 @Id 来注解一个主键: 如果跟数据库相关联,要用@Table注解相关数据库表: 实体类中字段需要 ...

  10. C++ 下面的AIDL

    转自https://android.googlesource.com/platform/system/tools/aidl/+/brillo-m10-dev/docs/aidl-cpp.md. Bac ...