zoukankan      html  css  js  c++  java
  • mongodb 搭建主从服务器

    mongodb 主从配置比较简单,只需要在启动的时候添加参数(-master、-slave -source IP:PORT)。

    Ubuntu 16.04 系统环境

    监听端口分别为:27010、27011、27012。配置后的环境为:27010为主,27011、27012为从。

    1) 创建mongodb数据存放的文件夹

       mkdir -p /mongodata/test/db27010
       mkdir -p /mongodata/test/db27011
       mkdir -p /mongodata/test/db27012

    2)启动27010主

       在启动命令中加入 master,该mongo服务即可作为主。

    mongod -dbpath "/mongodata/test/db27010" -port 27010 -master -logpath "/mongodata/test/db27010/log.txt" -fork

    3)启动27011、27012从

       添加参数 --slave 作为从,通过--source localhost:27010来指定主的位置。

    mongod -dbpath "/mongodata/test/db27011" -port 27011 -slave -source localhost:27010 -logpath "/mongodata/test/db27011/log.txt" -fork
    
    mongod -dbpath "/mongodata/test/db27012" --port 27012 -slave -source localhost:27010  -logpath "/mongodata/test/db27012/log.txt" -fork

    4)测试

    查看mongo服务

    ps -aux|grep mongo
    root@localhost:/home/lime# ps -aux | grep mongo
    root       1804  0.9  9.0 316880 90420 ?        Sl   05:44   0:26 mongod -dbpath /mongodata/test/db27010 -port 27010 -master -logpath /mongodata/test/db27010/log.txt -fork
    root       2344  0.9  8.6 289192 85900 ?        Sl   06:13   0:10 mongod -dbpath /mongodata/test/db27011 -port 27011 -slave -source localhost:27010 -logpath /mongodata/test/db27011/log.txt -fork
    root       2459  1.1  5.0 287084 50032 ?        Sl   06:29   0:01 mongod -dbpath /mongodata/test/db27012 -port 27012 -slave -source localhost:27010 -logpath /mongodata/test/db27012/log.txt -fork

    添加测试数据:
    我们在主27010中创建user集合,并添加100个用户,然后再从中查看。

    mongo --port 27010
    use user;
    for(i=0;i<100;i++){ db.user.insert({"name":"ximu"+i}); } 
    > db.user.find().skip(90)
    { "_id" : ObjectId("59300dd3ea97563d18acf140"), "name" : "lime_90" }
    { "_id" : ObjectId("59300dd3ea97563d18acf141"), "name" : "lime_91" }
    { "_id" : ObjectId("59300dd3ea97563d18acf142"), "name" : "lime_92" }
    { "_id" : ObjectId("59300dd3ea97563d18acf143"), "name" : "lime_93" }
    { "_id" : ObjectId("59300dd3ea97563d18acf144"), "name" : "lime_94" }
    { "_id" : ObjectId("59300dd3ea97563d18acf145"), "name" : "lime_95" }
    { "_id" : ObjectId("59300dd3ea97563d18acf146"), "name" : "lime_96" }
    { "_id" : ObjectId("59300dd3ea97563d18acf147"), "name" : "lime_97" }
    { "_id" : ObjectId("59300dd3ea97563d18acf148"), "name" : "lime_98" }
    { "_id" : ObjectId("59300dd3ea97563d18acf149"), "name" : "lime_99" }

    查看从的数据:

    mongo --port 27011
    show dbs;
    use user;
    db.user.find().skip(90).limit(5);
    
    mongo --port 27012
    show dbs;
    use user;
    db.user.find().skip(90).limit(5);

    5)主从的管理  -- -- -- -- -- -- 以下测试未通过
    查看当前的从服务器:

    mongo --port 27010
    use local;
    db.slaves.find();

    输出如下内容:

    { "_id" : ObjectId("4fabb177fc376c0a2552bab4"), "host" : "127.0.0.1", "ns" : "local.oplog.$main", "syncedTo" : { "t" : 1336653678000, "i" : 1 } }
    { "_id" : ObjectId("4fabb18078bc627b617794d2"), "host" : "127.0.0.1", "ns" : "local.oplog.$main", "syncedTo" : { "t" : 1336653678000, "i" : 1 } }

    查看从的主:

    mongo --port 27011
    use local;
    db.sources.find();

    输出如下内容:

    { "_id" : ObjectId("4fabb18078bc627b617794d1"), "host" : "localhost:27010", "source" : "main", "syncedTo" : { "t" : 1336653868000, "i" : 1 }, "localLogTs" : { "t" : 0, "i" : 0 } }

    6)主从复制的选项

    –slavedelay 10      #延时复制 单位为秒
    –autoresync         #自动重新同步
    –only               #复制指定的数据库,默认复制所有的库
    –oplogSize          #主节点的oplog日志大小,单位为M

    啦啦啦

  • 相关阅读:
    Less的用法
    有关cookie的内容
    有关BOM(Browser Object Model)的内容
    JSON的相关内容
    css3实现菜单栏选中时的过渡效果
    原生JavaScript实现jQuery的hasClass,removeClass,addClass,toggleClass
    JavaScript实现多个菜单的显示隐藏(JavaScript实现二级/三级菜单的显示隐藏)
    用css控制table td内文字超出隐藏
    Centos查看端口占用令
    mysql 远程访问不行解决方法 Host is not allowed to connect to this MySQL server
  • 原文地址:https://www.cnblogs.com/ClassNotFoundException/p/6930901.html
Copyright © 2011-2022 走看看