zoukankan      html  css  js  c++  java
  • [原创]MongoDB_Sharding

    Mongo Sharding:
    本示例搭建了三个副本集作为三个分片的sharding集群,其中master,slave,factershi三台同网段的内网主机。前期规划和原理分析省略,可根据具体配置推导出。具体实现步骤如下:

    1.master,slave,facter三台机器上都做如下操作:
    mkdir -p /data/sharding/{mongos,config,shard1,shard2,shard3}
    cd /data/sharding
    mkdir -p mongos/{data,logs}
    mkdir -p config/{data,logs}
    mkdir -p shard1/{data,logs}
    mkdir -p shard2/{data,logs}
    mkdir -p shard3/{data,logs}

    2.master,slave,facter三台机器上都做如下操作(启动config server):
    /data/mongodb/bin/mongod --configsvr --dbpath=/data/sharding/config/data --port 26000 --logpath=/data/sharding/config/logs/config.log --storageEngine=wiredTiger --logappend --fork

    3.master,slave,facter三台机器上都做如下操作(启动mongos路由):
    /data/mongodb/bin/mongos --configdb 10.232.63.71:26000,10.221.216.35:26000,10.232.55.122:26000 --port 25000 --logpath=/data/sharding/mongos/logs/mongos.log --fork --logappend

    4.master,slave,facter三台机器上都做如下操作(启动mongod节点):
    /data/mongodb/bin/mongod --shardsvr --replSet shard1 --port 26001 --dbpath=/data/sharding/shard1/data --logpath=/data/sharding/shard1/logs/shard1.log --fork --storageEngine=wiredTiger --oplogSize 100 --logappend

    5.master,slave,facter三台机器上都做如下操作(启动mongod节点):
    /data/mongodb/bin/mongod --shardsvr --replSet shard2 --port 26002 --dbpath=/data/sharding/shard2/data --logpath=/data/sharding/shard2/logs/shard2.log --fork --storageEngine=wiredTiger --oplogSize 100 --logappend

    6.master,slave,facter三台机器上都做如下操作(启动mongod节点):
    /data/mongodb/bin/mongod --shardsvr --replSet shard3 --port 26003 --dbpath=/data/sharding/shard3/data --logpath=/data/sharding/shard3/logs/shard3.log --fork --storageEngine=wiredTiger --oplogSize 100 --logappend

    7.在任一非[arbiterOnly:true]机器上做如下操作(配置副本集shard1):
    ./mongo --port 26001
    use admin
    config={_id:"shard1",members:[{_id:0,host:"10.232.63.71:26001",arbiterOnly:true},{_id:1,host:"10.221.216.35:26001"},{_id:2,host:"10.232.55.122:26001"}]}
    rs.initiate(config);

    8.在任一非[arbiterOnly:true]机器上做如下操作(配置副本集shard2):
    ./mongo --port 26002
    use admin
    config={_id:"shard2",members:[{_id:0,host:"10.232.63.71:26002"},{_id:1,host:"10.221.216.35:26002",arbiterOnly:true},{_id:2,host:"10.232.55.122:26002"}]}
    rs.initiate(config);

    9.在任一非[arbiterOnly:true]机器上做如下操作(配置副本集shard3):
    ./mongo --port 26003
    use admin
    config={_id:"shard3",members:[{_id:0,host:"10.232.63.71:26003"},{_id:1,host:"10.221.216.35:26003"},{_id:2,host:"10.232.55.122:26003",arbiterOnly:true}]}
    rs.initiate(config);

    10.在任意一台机器上做如下操作(配置sharding):
    ./mongo --port 25000
    use admin
    db.runCommand({addshard:"shard1/10.232.63.71:26001,10.221.216.35:26001,10.232.55.122:26001"})
    db.runCommand({addshard:"shard2/10.232.63.71:26002,10.221.216.35:26002,10.232.55.122:26002"})
    db.runCommand({addshard:"shard3/10.232.63.71:26003,10.221.216.35:26003,10.232.55.122:26003"})

    11.查看分片情况:
    db.runCommand({listshards:1})

    12.设置需要分片的库表和分片方式:
    sh.enableSharding("raw")
    sh.shardCollection("raw.gizwits_raw", {"did":"hashed"})

    13.注意规划好副本集角色在机器上的分布以及根据实际情况调整分片的参数,如:oplogSize,chunkSize,balancer的时间等参数。

    14.--storageEngine=wiredTiger修改存储引擎为wiredTiger,更高效,存储空间更小。--auth开启用户验证。
  • 相关阅读:
    三、MyCat主要配置介绍
    二、mycat15种分片规则
    一、mycat介绍
    SpringBoot使用JdbcTemplate批量保存
    linux发布常用命令
    ROS 系统架构及概念
    ROS 在 Ubuntu 18.04 安装
    利用 Skywalking 搭建 APM(应用性能管理)— 安装与配置
    elasticsearch 集群搭建及启动常见错误
    Git 基本操作
  • 原文地址:https://www.cnblogs.com/wsjhk/p/4859172.html
Copyright © 2011-2022 走看看