一分钟搭建mongodb架构Replica Set&Sharding—ttlsa教程系列之mongodb(七)

  • A+
所属分类:mongodb ttlsa教程系列

在测试试验阶段,我们需要有一个模拟的测试环境来测试应用程序和系统架构各个方面的功能,是否符合需求。在我公司,我常常使用下面的方法来为开发人员搭建mongodb的复制集和分片架构进行测试。我也常用这个方法来模拟线上架构,测试相关内容。
开启一个MongoDB shell,不连接任何mongod

创建复制集,一个primary两个secondary

启动三个mongod实例

复制集初始化

启动了三个实例,分别监听在31000,31001,31002端口上

当前MongoDB shell窗口会有大量的日志信息输出,影响操作,另开启一个MongoDB shell

插入1000条文档

创建第二个连接,连接到secondary

允许secondary可读

尝试想secondary写数据

可看到secondary不接收客户端写操作

测试复制集的automatic failover功能:
shutdown 31000实例

查看哪个实例变成primary

可见31002实例变成新的master

关闭replica set

sharding简易搭建方法参见: http://www.ttlsa.com/html/1787.html

转载请注明出处:一分钟搭建mongodb架构Replica Set&Sharding http://www.ttlsa.com/html/1830.html

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:13   其中:访客  13   博主  0

    • 风雨诗轩 0

      我的和你一模一样,但是执行replicaSet.startSet()时报错了:
      ReplSetTest Starting….
      Resetting db path ‘/data/db/testReplSet-0’
      Thu Jan 4 19:38:31.848 shell: started program mongod –oplogSize 40 –port 31000 –noprealloc –smallfiles –rest –replSet testReplSet –dbpath /data/db/testReplSet-0 –setParameter enableTestCommands=1
      m31000| Unable to start program mongod errno:2 No such file or directory
      Could not start mongo program at 31000, process ended

      我用的是centos7,mongodb2.4.0版本。求帮助

      • 匿名 9

        请问一下,我照着做为什么会出现下面的错误
        执行> replicaSet = new ReplSetTest({“nodes” : 3})
        > replicaSet.startSet()
        [thread1] shell: started program (sh2663): mongod –oplogSize 40 –port 20000 –noprealloc –smallfiles –replSet testReplSet –dbpath /data/db/testReplSet-0 –setParameter enableTestCommands=1
        d20000| Unable to start program mongod errno:2 No such file or directory
        2016-04-06T18:34:39.506+0800 W NETWORK [thread1] Failed to connect to 127.0.0.1:20000, reason: errno:111 Connection refused
        Could not start mongo program at 20000, process ended

        • 学习机器人 9

          刚看到这篇日志,我是按照权威指南操作的,startSet命令不能执行成功,第一步已经在/data/db中建立了三个文件夹,但是这步启动进程时,出现了错误:
          Unable to start program mongod errno:2 No such file or directory
          2014-08-07T17:06:58.266+0800 warning: Failed to connect to 127.0.0.1:31000, reason: errno:111 Connection refused
          明明有文件夹,却告知没有文件夹,我的系统是centos6.5,还望赐教呀

            • www.ttlsa.com 9

              @学习机器人 # ./mongo –nodb
              > replicaSet = new ReplSetTest({"nodes" : 3})
              > replicaSet.startSet()
              不需要建目录。 是不是按照这么来做的? 做测试就用这个来搭建环境。

                • 学习机器人 9

                  @www.ttlsa.com 我就是这样做的,奇怪了,就是不行,请问你使用的操作系统是什么,mongodb什么版本的呀

                    • www.ttlsa.com 9

                      @学习机器人 centos6.5 mongodb2.6.3

                        • 学习机器人 9

                          @www.ttlsa.com 我也是这个环境,就是不行,我把库的目录放在了,/data/db,别的操作没有问题,就是做副本时不行。

                          • 默北 默北 6

                            @学习机器人 按照上面,一步一步的来。

                      • E_M 9

                        @学习机器人 请问你是怎么解决这个问题的,我也遇到了不知道怎么解决。

                      • 默北 默北 6

                        简易搭建方法,没指定目录。 生产环境不要这么做。

                          • 默北 默北 6

                            @默北 怎么执行的?

                              • 布丁鱼 9

                                @默北 replicaSet.startSet()执行了这个语句就报那个错误

                                  • 默北 默北 6

                                    @布丁鱼 一步一步的按照上面的来。