zoukankan      html  css  js  c++  java
  • mongodb 3.4分片复制集配置

    1:启动三个实例
    mongod -f /home/mongodb/db27017/mongodb27017.conf
    mongod -f /home/mongodb/db27018/mongodb27018.conf
    mongod -f /home/mongodb/db27019/mongodb27019.conf

    配置文件如下:

    verbose = true #日志信息
    vvvv = true #日志的级别
    logpath=/home/mongodb/db27019/log/mongodb.log #日志文件
    logappend=true #设置文件记录格式TRUE为追加,false为覆盖p
    port = 27019 #指定端口号
    maxConns = 2000 #最大链接数,默认情况是根据系统限制最大不超过2W
    pidfilepath =/home/mongodb/db27019/tmp/mongo.pid #进程ID,没有指定则启动时候就没有PID文件
    nounixsocket = false #当设置为true时,不会生成socket文件
    unixSocketPrefix =/home/mongodb/db27019/tmp #套接字文件路径,默认/tmp
    fork = true #后台运行的守护进程模式
    dbpath=/home/mongodb/db27019/data #数据存放目录
    noprealloc = false #预分配方式来保证写入性能,true会带来性能下降
    nssize = 16 #命名空间默认大小16M,最大2G
    #慢日志
    profile = 1 #0 关。无分析1仅包括慢操作2包括所有操作。
    slowms = 200 #大于200ms的日志将会被记录下来
    replSet=sharingmxq
    configsvr=true
    2:进入一台机器进行初始化:
    mongo
    use admin
    rs.initiate(
    {
    _id: "sharingmxq",
    configsvr: true,
    members: [
    { _id : 0, host : "localhost:27017" },
    { _id : 1, host : "localhost:27018" },
    { _id : 2, host : "localhost:27019" }
    ]
    }
    )

    3:创建分片的复制集

    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37017/data
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37017/tmp
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37017/log
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37017/key
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37018/data
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37018/tmp
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37018/log
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37018/key
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37019/key
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37019/log
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37019/tmp
    [root@mxqmongodb2 mongodb]# mkdir -p /home/mongodb/db37019/data

    启动:

    mongod -f /home/mongodb/db37017/mongodb37017.conf
    mongod -f /home/mongodb/db37018/mongodb37018.conf
    mongod -f /home/mongodb/db37019/mongodb37019.conf

    要注意一点,如果是添加分片复制集的话。每一个分片要指定不同的replSet,然后进行初始化。把一个复制集当成是每一个单机节点就好了,但是添加分片的时候必须指定的是master

    4:启动一个mongos实例链接配置mongodb数据库
    mongos --configdb "sharingmxq"/localhost:27017,localhost:27018,localhost:27019 --port=30000

    然后添加分片节点:

    use admin
    mongos> sh.addShard('localhost:37017')
    { "shardAdded" : "shard0000", "ok" : 1 }
    mongos> sh.addShard('localhost:37018')
    { "shardAdded" : "shard0001", "ok" : 1 }
    mongos> sh.addShard('localhost:37019')
    { "shardAdded" : "shard0002", "ok" : 1 }

    如果三个分片节点使用的是复制集的话就要用以下的方式添加:

    mongos> sh.addShard( "sharingmxq/localhost:37017")
    { "shardAdded" : "sharingmxq", "ok" : 1 }
    mongos> sh.addShard( "sharingmxq/localhost:37018")
    { "shardAdded" : "sharingmxq", "ok" : 1 }
    mongos> sh.addShard( "sharingmxq/localhost:37019")
    { "shardAdded" : "sharingmxq", "ok" : 1 }

    5:分片的配置

    mongos --port=30000
    为某个数据库启动分片
    sh.enableSharding("maxiangqian")
    为某张表添加分片:
    sh.shardCollection("maxiangqian.maxiangqian", { 'id':1} )
    sh.shardCollection('aedata.ac01_test',{'id':1,'idcard':1})

    6:验证分片是否完成

    mongos --port=30000
    use maxiangqian
    for (var i = 1; i <= 100000; i++) db.maxiangqian.save({id:i,"test1":"testval1"});

    登录各个分片服务器进行验证:

    99981
    1
    18
    已经完成了分片。但是为什么分布会不均匀呢,因为我们使用的是RANGE分区,再插入他个九十万看一下。(要区别hash分区和range分区,hash分区具有易扩展性,但是分布的服务器却不好控制)
    for (var i = 100000; i <= 1000000; i++) db.maxiangqian.save({id:i,"test1":"testval1"});
    再去验证一下:
    328487 --port=37019
    335552 --port=37018
    335962 --port=37017
  • 相关阅读:
    mysql如何查询最新插入的数据
    nodejs express开发
    在线考试实现倒计时的代码
    centos的vsftp修改上传下载速度
    centos vsftpd
    ul和li里面的list-style
    算法竞赛入门经典 暴力求解法 7.1简单枚举 最大乘积
    算法竞赛入门经典 暴力求解法 7.1简单枚举 最大乘积
    算法竞赛入门经典 暴力求解法 7.1简单枚举 除法
    算法竞赛入门经典 暴力求解法 7.1简单枚举 除法
  • 原文地址:https://www.cnblogs.com/shengdimaya/p/6598510.html
Copyright © 2011-2022 走看看