风哥教程

培训 . 交流 . 分享
Make progress together!

mongodb分片

[复制链接]
内容发布:love19791125| 发布时间:2015-12-30 13:37:48
Mongodb 分片部署

配置mongodb集群,比如 在3个server上配置 3 shard的Mongodb集群:
架构:
1.每片数据需要3个mongod server,2个为主从数据节点;1个为仲裁节点(arbiter),不存数据。
   一共三片,可以做成:  
   20.220-mongo1:   20001(sh1主),20002(sh2从),20003(sh3仲裁)
   20.221-mongo2:   20002(sh2主),20003(sh3从),20001(sh1仲裁)
   20.222-mongo3:   20003(sh3主),20001(sh1从),20002(sh2仲裁)
2. 需要3个mongod config server,登录3台机器执行如下
   20.220-mongo1:19999
         echo'export PATH=$PATH:/usr/local/mongodb/bin' >> /etc/profile
tar zxvfmongodb-linux-x86_64-2.6.0.tgz
mvmongodb-linux-x86_64-2.6.0 /usr/local/mongodb
mkdir -p/usr/local/mongodb/{etc,date,log}
cd /usr/local/mongodb/date
mkdir sh1
mkdir sh2
mkdir sh3
mkdir cf1
mkdir cf2
mkdir cf3
20.221-mongo2:19998
    echo 'exportPATH=$PATH:/usr/local/mongodb/bin' >> /etc/profile
tar zxvfmongodb-linux-x86_64-2.6.0.tgz
mvmongodb-linux-x86_64-2.6.0 /usr/local/mongodb
mkdir -p /usr/local/mongodb/{etc,date,log}
cd /usr/local/mongodb/date
mkdir sh1
mkdir sh2
mkdir sh3
mkdir cf1
mkdir cf2
mkdir cf3
   20.222-mongo3:19997
         echo'export PATH=$PATH:/usr/local/mongodb/bin' >> /etc/profile
tar zxvfmongodb-linux-x86_64-2.6.0.tgz
mvmongodb-linux-x86_64-2.6.0 /usr/local/mongodb
mkdir -p/usr/local/mongodb/{etc,date,log}
cd /usr/local/mongodb/date
mkdir sh1
mkdir sh2
mkdir sh3
mkdir cf1
mkdir cf2
mkdir cf3
3. mongos server 作为入口
   192.168.20.220:20000
实施步骤:
1.启动mongod datanode service
分别3台服务器上执行如下:
/usr/local/mongodb/bin/mongod --fork --rest--replSet sh1 --shardsvr --oplogSize 40000 --dbpath /usr/local/mongodb/date/sh1--logpath /usr/local/mongodb/log/sh1.log --port 20001
/usr/local/mongodb/bin/mongod --fork --rest--replSet sh2 --shardsvr --oplogSize 40000 --dbpath /usr/local/mongodb/date/sh2--logpath /usr/local/mongodb/log/sh2.log --port 20002
/usr/local/mongodb/bin/mongod --fork --rest--replSet sh3 --shardsvr --oplogSize 40000 --dbpath /usr/local/mongodb/date/sh3--logpath /usr/local/mongodb/log/sh3.log --port 20003
2.配置每片的 replica set,即每3台配成一个replica set互备
登录
mongo 192.168.20.220:20001/admin
config = {_id: 'sh1', members:[
{_id:0, host: '192.168.20.220:20001'},
{_id:1, host: '192.168.20.221:20001'},
{_id: 2, host: '192.168.20.222:20001',arbiterOnly: true}
]}
mongo 192.168.20.221:20002/admin
config = {_id: 'sh2', members:[
{_id:0, host: '192.168.20.220:20002'},
{_id:1, host: '192.168.20.221:20002'},
{_id: 2, host: '192.168.20.222:20002',arbiterOnly: true}
]}
mongo 192.168.20.222:20003/admin
config = {_id: 'sh3', members:[
{_id:0, host: '192.168.20.220:20003'},
{_id:1, host: '192.168.20.221:20003'},
{_id: 2, host: '192.168.20.222:20003',arbiterOnly: true}
]}
分别在3台机器上执行如下
rs.initiate(config) //初始化replset
rs.status()   //看结果是否成功建成repl set
3.启动 config server:
/usr/local/mongodb/bin/mongod --fork--configsvr --port 19999 --dbpath /usr/local/mongodb/date/cf1/ --logpath/usr/local/mongodb/log/cf1.log --rest
/usr/local/mongodb/bin/mongod --fork--configsvr --port 19998 --dbpath /usr/local/mongodb/date/cf2/ --logpath/usr/local/mongodb/log/cf2.log --rest
/usr/local/mongodb/bin/mongod --fork--configsvr --port 19997 --dbpath /usr/local/mongodb/date/cf3/ --logpath/usr/local/mongodb/log/cf3.log --rest
4. 启动  mongos server
/usr/local/mongodb19999/bin/mongos--configdb 192.168.20.220:19999,192.168.20.221:19998,192.168.20.222:19997--logpath /usr/local/mongodb19999/log/mongos.log --logappend --fork --port20000
5. 配置mongo 分片集群
登录mongos:  
mongo 192.168.20.220:20000/admin
运行:
>db.runCommand({addshard:"sh1/l-mo1.prod.cn2:20001,l-mo2.prod.cn2:20001",name:"sh1"});
>db.runCommand({addshard:"sh2/l-mo2.prod.cn2:20002,l-mo3.prod.cn2:20002",name:"sh2"});
>db.runCommand({addshard:"sh3/l-mo3.prod.cn2:20003,l-mo1.prod.cn2:20003",name:"sh3"});
> db.runCommand({listshards:1})
6.配置 库表分片
登录mongos:
>use admin;
>db.runCommand( { enablesharding :"dbname" } );
>db.runCommand( { shardcollection :"dbname.collectionname", key :{ "keyfield" :1 }});
注意分片使用的keyfield需要是表索引。



上一篇:mongodb副本集
下一篇:mysqlexplain-MySQL执行计划解读
回复

使用道具 举报

内容发布:aihuang195| 发布时间:2021-2-15 14:33:24
相比而言,压力不高,数据量不大的情况下,还是部署副本集比较方便
回复 支持 反对

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门文章教程

  • Oracle 12cR2 九大新功能全面曝光_详解云数
  • Oracle OCP认证考试IZ0-053题库共712题数据
  • MySQL5权威指南(第3版)PDF电子版下载
  • 风哥Oracle数据库巡检工具V1.0(附2.6网页
  • Oracle19c数据库发布与下载地址
  • PostgreSQL数据库中文培训手册
快速回复 返回顶部 返回列表