zoukankan      html  css  js  c++  java
  • mongodb分片集群

    第一章

    1.mongodb 分片集群解释和目的

    一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合。复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础。

    第二章

    1.实验环境

    centos7  3台服务器 

    192.168.1.195 2G内存 

    192.168.1.196 2G内存 

    192.168.1.197 2G内存 

    2.初始化环境(三台都操作)

    yum -y install ntp
     systemctl enable ntpd
     systemctl start ntpd
     ntpdate -u cn.pool.ntp.org
     hwclock --systohc
     timedatectl set-timezone Asia/Shanghai
    # 关闭防火墙 Selinux
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

    3.系统文件数设置

    cat >> /etc/security/limits.conf <<EOF
    * soft nofile 102400
    * hard nofile 409600
    * soft nproc 2048
    * hard nproc 4096
    EOF

     

    echo never >> /sys/kernel/mm/transparent_hugepage/enabled
    echo never >> /sys/kernel/mm/transparent_hugepage/defrag

    第三章(三台都需要操作)

    1.下载mongodb包 

    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.5.tgz

    2.创建mongodb用户

    useradd -M -u 8000 -s /sbin/nologin mongo

    3.下载文件解压缩

    mkdir /data/ 然后解压MongoDB二进制包到/data目录下,并改名为mongo

    3-1.配置mongo启动变量

    vi /etc/profile

     

    export MONGODB_HOME=/data/mongodb
    export PATH=$MONGODB_HOME/bin:$PATH

    source /etc/profile

     

    4.配置环境

    mkdir -p /data/mongo/config
    mkdir -p /data/mongo/data/server
    mkdir -p /data/mongo/log/server
    mkdir -p /data/mongo/log/mongos
    for i in {1..3};do mkdir -p /data/mongo/data/shard$i; done
    for i in {1..3};do mkdir -p /data/mongo/log/shard$i; done

    5.configsvr配置文件

    #不同机器更改bind_ip

    cat >> /data/mongo/config/config.conf << EOF
    bind_ip=192.168.1.195
    dbpath=/data/mongo/data/server
    pidfilepath=/data/mongo/mongo.pid
    logpath=/data/mongo/log/server/mongodb.log
    logappend=true
    journal = true
    port=27000
    fork=true
    configsvr=true
    logRotate=rename
    #副本集名字
    replSet=damowang
    #最大连接数  
    maxConns=20000
    EOF

    6.权限更改

    chown -R mongo:mongo /data/mongo

    7.启动configsvr

     /data/mongo/bin/mongod -f config/config.conf

    8.初始化configsvr (单台机器操作)

    #登录其中任意一台机器  
     /data/mongo/bin/mongo --host 192.168.10.203 --port 27000

    config = {_id : "damowang", members : [{_id : 0, host : "192.168.1.195:27000"}, {_id : 1, host : "192.168.1.196:27000"}, {_id : 2, host : "192.168.1.197:27000"}]}

    #初始化副本集
    rs.initiate(config)

    第四章 (三台机器都操作)

    1.配置shard

    cat >> /data/mongo/config/shard1.conf << EOF
    
    #不同机器bind_ip改变
    bind_ip=192.168.1.195
    #更改为对应shard
    dbpath=/data/mongo/data/shard1
    pidfilepath=/data/mongo/shard1.pid
    logpath=/data/mongo/log/shard1/mongodb.log
    logappend=true
    journal = true
    #更改为对应shard端口
    port=27001
    fork=true
    logRotate=rename
    shardsvr=true
    #副本集名称
    replSet=shard1
    #最大连接数
    maxConns=20000
    EOF

    2.权限更改

    chown -R mongo:mongo /data/mongo

    3.启动shardsvr

     /data/mongo/bin/mongod -f config/shard1.conf

    4.初始化shardsvr

    #登录其中任意一台机器

    /data/mongo/bin/mongo --host 192.168.1.195 --port 27001

    config = {_id : "shard1", members : [{_id : 0, host : "192.168.1.195:27001"}, {_id : 1, host : "192.168.1.196:27001"}, {_id : 2, host : "192.168.1.197:27001", arbiterOnly: true}]}

    rs.initiate(config)

    第五章

    1.mongos 配置文件初始化

    cat >> /data/mongo/config/mongos.conf << EOF
    #不同机器更改bind_ip
    bind_ip=192.168.1.195
    pidfilepath=/data/mongo/mongos.pid
    logpath=/data/mongo/log/mongos/mongos.log
    logappend=true
    logRotate=rename
    #mongos监听端口
    port=28000
    fork=true
    #damowang 为 configsvr 的副本集名称
    configdb=damowang/192.168.1.195:27000,192.168.1.196:27000,192.168.1.197:27000
    #最大连接数
    maxConns=20000
    EOF

    2.权限更改

    chown -R mongo:mongo /data/mongo

    3.启动mongos

    /data/mongo/bin/mongos -f config/mongos.conf

    4.启用mongos

    #登录其中任意一台机器
    bin/mongo --host 192.168.1.195 --port 28000

    #进入客户端,切换用户
    use admin

    #添加分片

    sh.addShard("shard1/192.168.1.195:27001,192.168.1.196:27001,192.168.1.197:27001")
    sh.addShard("shard1/192.168.1.195:27002,192.168.1.196:27002,192.168.1.197:27002")
    sh.addShard("shard1/192.168.1.195:27003,192.168.1.196:27003,192.168.1.197:27003")



    #查看集群状态
    sh.status()
    第六章

    1.配置shard分片

    #登录任意mongos
    bin/mongo --host 192.168.10.203 --port 28000

    #切换admin用户
    use admin

    #对指定库 test1 开启分片
    sh.enableSharding("test1")

    # 对test库下的 person collection 开启hash模式分片
    sh.shardCollection( "test1.person", { "_id": "hashed" } )

    # 查看分片状态
    sh.status()

    #如果分片原有数据,必先建索引,再指定分片键
    sh.enableSharding("new2")
    use new2
    db.user2.createIndex( { "username": 1 } )
    sh.shardCollection( "new2.user2", { "username": 1 } )
     
     
  • 相关阅读:
    Annotation
    bulid tools
    Git&Version Control
    uri&url
    HTTP &RFC
    git创建新分支
    git忽略提交文件
    redis集群搭建
    java中的线程安全是什么:
    Spring事务传播机制与隔离级别
  • 原文地址:https://www.cnblogs.com/zoulixiang/p/9844374.html
Copyright © 2011-2022 走看看