上线的系统。数据存储是重要部位。若一个公司的数据库部署还是待用单点部署,那若是宕机或是机器被损坏则是多糟糕的事情呀。

主从复制的部署方式为下图

主从复制是一个简单的数据库同步备份集群技术。这样的方式简单灵活,可用于备份、故障恢复。读扩展。为了平衡负载,一般通过读写分离模式。即主库写、从库读。

要明白

在数据库集群中要明白知道谁是主server,主server仅仅有一台

从server要知道自己的数据源也就是对于的主server是谁

这里我们用两台数据库进行模拟。一个主master,一个从数据库。Master用来确定主server,slave用来控制增server

master配置


配置主server数据库信息

Master.conf

dbpath=J:\java\mongoSlave\master\database #主server地址
port =8888 #主数据库端口号
bind_ip= 127.0.0.1 #主数据库所在server
master=true#确定为从server

启动配置文件

mast.bat

mongod --configmast.conf

连接数据库文件mongConn.bat

mongo 127.0.0.1:8888

依次启动mast.bat 。mongConn.bat连接数据库

显示登录成功信息

slave配置

从server的配置信息

dbpath=J:\java\mongoSlave\salve1\database #从server地址
port =7778 #从数据库port号
bind_ip= 127.0.0.1 #从数据库所在server
source= 127.0.0.1:8888 #确定主的数据库port号
slave=true#确定为从server

启动数据配置

mongod --configslave.conf 

连接数据库配置

mongo 127.0.0.1:7778

再次启动从server

启动成功后例如以下图

从server启动

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

測试加入数据

在master主数据库创建foobar数据库,加入集合,并集合中有一条数据。

查看从数据库。则有主数据库加入的数据

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

动态扩充从数据库


使用shell脚本

这个时候我们的加入新数据的配置就略微有所不同了

dbpath=J:\java\mongoSlave\savle2\database #从server地址
port =7779 #从数据库port
bind_ip= 127.0.0.1 #从数据库所在server
#source = 127.0.0.1:8888 #确定我的数据库port号 删除了主server的地址
slave=true#确定为从server

我们通过shell命令进行配置,打开从server数据库命令窗体

Use local
Db.sources.find()
Db.sources.insert({"host":"127.0.0.1:8888"}})

就连接上主server,并复制数据库了

小结:


主从数据库复制,加入数据仅仅能在主数据库。而从数据库仅仅能够进行数据的查找。对于大数据量这样的情况有些不适应。这时候我们就须要第二种形式,分片技术,下篇介绍副本集

Mongo集群之主从复制的更多相关文章

  1. 搭建高可用mongo集群3.4版本

    搭建高可用mongo集群3.4版本 说在开始之前:在搭建这个环境之前,已经有了一个师兄搭好的环境,虽然一样很棒,但是没有经过自己的手出来的东西,还是不属于自己,所以摸索着自己搭建一个吧,好巧不巧的是, ...

  2. Mongo集群Java连接时UnknownHostException错误

    今天在 Java 连接 Mongo 集群时报了一个超时的错误,但是在本地客户端连接单节点的时候却能连上,具体报的错误如下: Caused by: com.mongodb.MongoTimeoutExc ...

  3. mongo 集群(副本)搭建过程记录

    最近搭建mongo集群,回忆总结,作以记录.整个过程主要参考以下两篇文章,但是过程并不顺利,有些问题需要记录.https://www.cnblogs.com/dba-devops/p/7130710. ...

  4. 高可用性的mongo集群搭建

    mongoDB安装 参照:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 配置yum管理包 在路径/etc/y ...

  5. Mongo集群搭建

    1.集群角色及架构 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置服务器等 mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器 ...

  6. 6.非关系型数据库(Nosql)之mongodb:集群(主从复制)

     1.主从复制是MongoDB最经常使用的复制方式.这样的方式很灵活,可用于备份.故障恢复.读扩展等 2最主要的设置方式就是建立一个主节点和一个或多个从节点,每一个从节点要知道主节点的地址. 执行 ...

  7. MongoDB学习笔记~Mongo集群和副本集

    回到目录 一些概念 对于Mongo在数据容灾上,推荐的模式是使用副本集模式,它有一个对外的主服务器Primary,还有N个副本服务器Secondary(N>=1,当N=1时,需要有一台仲裁服务器 ...

  8. 数据库集群 MySQL主从复制

    MySQL主从复制 本节内容我们联系使用MySQL的主从复制功能配置Master和Slave节点,验证数据MySQL的数据同步功能. 因为要使用多个MySQL数据库,所以不建议在电脑上安装多个MySQ ...

  9. 【Redis学习之八】Redis集群:主从复制

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 redis-2.8.18 Redis集群分类: 主从复制 R ...

随机推荐

  1. ZBrush中常用3D笔触效果

    3D笔触共有6种绘制方式,分别为Dots(点).Drag Rect(拖拉矩形).Freehand(徒手绘制).Color Spray(彩色喷溅).Spray(喷溅)和Drag Dot(拖拽斑点). 1 ...

  2. 对称平方数(to_string函数,stoi函数真香)

    题目描述 打印所有不超过n(n<256)的,其平方具有对称性质的数.如11*11=121. 输入描述: 无 输出描述: 每行一个数,表示对称平方数. 示例1 输入 复制 无 输出 复制 无解题思 ...

  3. Mathab和Python的numpy中的数组维度

    Matlab和Python的numpy在维度索引方面的不同点: 1.索引的起始点不同:Matlab起始位置的索引为1,Python为0. 2.索引的括号不同:Matlab中元素可以通过小括号表示索引, ...

  4. 树上倍增求LCA

    大概思想就是,节点$i$的第$2^{j}$个父节点是他第$2^{j-1}$个父亲的第$2^{j-1}$个父亲 然后可以$O(nlogn)$时间内解决…… 没了? //fa[i][j]表示i的第2^j个 ...

  5. python如何命令行下载包

    $ wget https://bootstrap.pypa.io/get-pip.py $ python get-pip.py $ pip -V #查看pip版本     $ pip install ...

  6. Python学习简单练习-99乘法表

    __author__ = 'ZFH'#-*- coding:utf-8 -*-for i in range(10): #外层循环,range(10),1-9 for j in range(1,i+1) ...

  7. SVN配置以及自己主动部署到apache虚拟文件夹

    SVN配置以及自己主动部署到apache虚拟文件夹 一.VisualSVN server 服务端和TortoiseSVNclient下载 VisualSVN下载:http://subversion.a ...

  8. Android面试题目整理与解说(一)

    这一篇文章专门整理一下研究过的Android面试题,内容会随着学习不断的添加,假设答案有错误,希望大家能够指正 1.简述Activity的生命周期 当Activity開始启动的时候,首先调用onCre ...

  9. poj_2352树状数组

    因为y已经排好序了,用x坐标建立一维树状数组 #include<iostream> #include<cstdio> #include<cstring> using ...

  10. C++学习第一天--编译命令

    前一个月的时间主要是在捯饬自己的ubuntu vim环境,昨天终于都搞好了,从今天开始,学习C++.至于为什么学习C++,其实很大一部分原因还是因为自己喜欢vim,又听说vim对C++的支持还不错,所 ...