zoukankan      html  css  js  c++  java
  • 数据库服务器学通MongoDB——第五天 主从复制

    废话就不多说了,开始。。。

        从这一篇开始我们重要论讨mongodb的署部技巧。

        我们晓得sql server可以做到读写分离,双机热备份和集群署部,当然mongodb也能做到,际实用应中我们不希望数据库采取单点署部,

        如果遇到数据库宕机或者被毁灭性坏破那是么多的糟。

        一:主从制复

        1: 首先看看型模图

        

      

        2: 从面上的图形中我们可以分析出这类架构有如下的利益:

         <1>  数据备份。

         <2>  数据恢复。

         <3>  读写分离。

        3:面下我们就逐一实际

         际实用应中我们肯定是多服务器署部,限于自己勤的装虚拟机,就在一台器机上实际了。

        第一步:我们把mongodb文件夹放在D盘和E盘,模拟放在多服务器上。

        第二步:动启D盘上的mongodb,把该数据库指定为主数据库,其实命令很简单:>mongodb --dbpath='XXX' --master,

               端口还是默许的27017.

        

        第三步:样同的方法动启E盘上的mongodb,指定该数据库为附属数据库,命令也很简单,当然我们要换一个端口,比如:8888。

               source 示表主数据库的址地。

               >mongod --dbpath=xxxx --port=8888 --slave --source=127.0.0.1:27017

        

        第四步:从图中的色红区域我们现发了一条:“applied 1 operations"这样的语句,并且产生的间时相隔10s,也就明说附属数据库每10s

               就向主数据库同步数据,同步据依也就是找寻主数据库的”OpLog“志日,可以在图中色红区域内现发”sync_pullOpLog“字样。

               接下来我们要做的就是试测,讶惊的现发数据已同步更新,爽啊。

        

        4:  如果我还想增长一台附属数据库,但是我不想在动启时就指定,而是期后指定,那么mongodb能否做的到呢?案答肯定是可以的。

          我们的主或者附属数据库中都有一个叫做local的合集,重要是用于放存部内制复信息。

          好,那么我们就试一下,我在F盘再拷贝一份mongodb的运行程序,cmd窗口多好啊,大家不要搅散了。

        

        看面上的log,提示没有主数据库,系关没,某一天我们良心现发,给他期后补助一下,哈哈,再开一个cmd窗口,语句也就是

        在sources中add一个host址地,最后现发数据也同步到127.0.0.1:5555这台附属数据库中....

        

        5: 读写分离

         这类段手在大一点的架构中都有实现,在mongodb中其实很简单,在默许的情况下,附属数据库不支持数据的取读,但是系关没,

        每日一道理
    我拽着春姑娘的衣裙,春姑娘把我带到了绿色的世界里。

        在驱动中给我们供给了一个叫做“slaveOkay"来让我们可以表现的取读附属数据库来减轻主数据库的能性压力,这里就不演示了。

        二:副本集

        这个也是很牛X的主从集群,不过跟面上的集群还是有两点区分的。

          <1>:  该集群没有特定的主数据库。

          <2>:  如果哪个主数据库宕机了,集群中就会推选出一个附属数据库作为主数据库顶上,这就备具了主动故障恢复能功,很牛X的啊。

                     好,我们当初就来试一下,首先把全部的cmd窗口关失落重新来,清失落db下的全部文件。

        第一步:  既然我们要建立集群,就得取个集群名字,这里就取我们的公司名shopex, --replSet示表让服务器晓得shopex下还有其他数据库,

                这里就把D盘面里的mongodb程序打开,端口为2222。指定端口为3333是shopex集群下的另一个数据库服务器。

        

        第二步:  既然面上说3333是另一个数据库服务器,不要急,当初就来开,这里把E盘的mongodb程序打开。

        

        第三步:  ok,看看面上的志日色红区域,乎似我们还没有做完,是的,log信息诉告我们要初始化一下“副本集“,既然志日这么说,那我也就

                 这么做,随意连接一下哪个服务器都行,不过一定要进入admin合集。

        

        第四步: 开启功成后,我们要看看谁才能成为主数据库服务器,可以看到端口为2222的已成为主数据库服务器。

        

        第五步:我们晓得sql server面里有一个叫做裁仲服务器,那么mongodb中也是有的,跟sql server一样,裁仲只介入投票选举,这里我们

               把F盘的mongodb作为裁仲服务器,然后指定shopex集群中的任一个服务器端口,这里就指定2222。

        

        然后我们在admin合集中用应rs.addArb()追加可即。

        

        追加好了后之,我们用应rs.status()来看查下集群中的服务器状态,图中我们可以楚清的看到谁是主,还是从,还是裁仲。

        

        不是说该集群有主动故障恢复吗?那么我们可就以来试一下,在2222端口的cmd服务器按Ctrl+C来KO失落该服务器,立马我们现发

        在3333端口的附属服务器可即顶上,最后大家也可以再次用应rs.status()来看下集群中服务器的状态。

        

    文章结束给大家分享下程序员的一些笑话语录: 马云喜欢把自己包装成教主,张朝阳喜欢把自己包装成明星,李彦宏喜欢把自己包装成的很知性,丁磊喜欢把自己包装的有创意,李开复总摆出一副叫兽的样子。看来的。其实我想说,缺啥补啥,人之常情。

  • 相关阅读:
    Google笔试题
    OpenStack Ceilometer简介
    OpenStack Object Storage(Swift)架构、原理及特性
    【大话存储2读书笔记】磁盘IO的重要概念
    递归,汉诺塔游戏
    函数定义与使用
    字符串操作
    for循环:用turtle画一颗五角星
    列表、元组、字典、集合的定义、操作与综合练习
    npm 相关
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3052986.html
Copyright © 2011-2022 走看看