zoukankan      html  css  js  c++  java
  • Centos6.5 虚拟机Mongodb创建副本集

    简单副本集的搭建

    官方demo的最小化的副本集为Three Member Sets,一个primary和两个secondary。我们先就搭建一个这样的测试环境。

    首先建立三个数据目录和日志目录:

    1 cd /opt/mongodb3/data/
    2 
    3 mkdir -p rs0-0  rs0-1  rs0-2
    4 
    5 cd /opt/mongodb3/log/
    6 
    7 mkdir -p rs0-0 rs0-1 rs0-2

    然后我们以守护进程的方式启动三个mongod进程,端口分别是37017,37018和37019:

    ./bin/mongod --fork --dbpath data/rs0-0/ --logpath log/rs0-0/rs0-0.log --rest --replSet rs0 --port 37017
    
    ./bin/mongod --fork --dbpath data/rs0-1/ --logpath log/rs0-1/rs0-1.log --rest --replSet rs0 --port 37018
    
    ./bin/mongod --fork --dbpath data/rs0-2/ --logpath log/rs0-2/rs0-2.log --rest --replSet rs0 --port 37019

    跟启普通的mongod进程基本相同,不同的跟了--replSet选项,rs0是该副本集的名称。--rest参数是打开web监控页面,比如我们这里监听37017端口,则打开http://192.9.10.13:38017/(mongod端口加上1000)就可以看到这个mongodb数据库进程的信息,如果是副本集就能查看整个副本集的相关信息。

    然后我们用mongo shell连上端口为37017的mongod:

    1 ./bin/mongo -port 37017
    2 use admin

    接着我们需要初始化一个Replica Set:首先创建一个副本集配置对象:

    1.    rsconf={
    2.        "_id" : "rs0",
    3.        "members" : [
    4.            {
    5.                "_id" : 0,
    6.                "host" : "192.9.10.13:37017"
    7.            }
    8.        ]
    9.    }

    _id:代表副本集名称,numbers:代表成员。

    然后用rs.initiate()进程初始化:

    1.    rs.initiate(rsconf)
    2.    {
    3.        "info" : "Config now saved locally.  Should come online in about a minute.",
    4.        "ok" : 1
    5.    }

    添加成员:

    通过rs.add()将另外两个mongod添加到副本集当中:

    1.    rs0:PRIMARY> rs.add("192.9.10.13:37018")
    2.    { "ok" : 1 }
    3.    rs0:PRIMARY> rs.add("192.9.10.13:37019")
    4.    { "ok" : 1 }

    会发现37017这个mongod默认就是PRIMARY节点了。通过rs.conf()可以查看集群的配置情况:

    1.    rs0:PRIMARY> rs.conf()
    2.    {
    3.        "_id" : "rs0",
    4.        "version" : 3,
    5.        "members" : [
    6.            {
    7.                "_id" : 0,
    8.                "host" : "192.9.10.13:37017"
    9.            },
    10.            {
    11.                "_id" : 1,
    12.                "host" : "192.9.10.13:37018"
    13.            },
    14.            {
    15.                "_id" : 2,
    16.                "host" : "192.9.10.13:37019"
    17.            }
    18.        ]
    19.    }

    修改priority:

    副本中所有的secondary节点都有一个priority值,为任意的浮点数,该值越大则该节点在election中越优先成为primary节点,通过下面的命令修改该值,目前primary节点是37017:

    1.    rs0:PRIMARY> cfg=rs.conf()
    2.    {
    3.        "_id" : "rs0",
    4.        "version" : 7,
    5.        "members" : [
    6.            {
    7.                "_id" : 0,
    8.                "host" : "192.9.10.13:37017"
    9.            },
    10.            {
    11.                "_id" : 1,
    12.                "host" : "192.9.10.13:37018"
    13.            },
    14.            {
    15.                "_id" : 2,
    16.                "host" : "192.9.10.13:37019"
    17.            }
    18.        ]
    19.    }

    我们将37019节点的priority设置成2:

    1.    rs0:PRIMARY> cfg=rs.conf()
    2.    cfg.members[2].priority = 2

    然后执行:
    rs0:PRIMARY> rs.reconfig(cfg)

    注意:执行rs.reconfig()命令会强制整个副本集集群进行一次election,这样priority较高的37019节点便成了primary节点。

    转自:http://blog.csdn.net/huwei2003/article/details/40453159

    参考:
    http://www.cnblogs.com/zhoujinyi/p/3554010.html
  • 相关阅读:
    Intersection(计算几何)
    Happy Matt Friends(DP)
    Dire Wolf(区间DP)
    Black And White(DFS+剪枝)
    最大子矩阵
    Largest Rectangle in a Histogram (最大子矩阵)
    City Game(最大子矩阵)
    Zipper (DP)
    QQpet exploratory park(DP)
    C++程序设计(第4版)读书笔记_指针、数组与引用
  • 原文地址:https://www.cnblogs.com/hoojjack/p/7678750.html
Copyright © 2011-2022 走看看