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: 19999echo 'export PATH=$PATH:/usr/local/mongodb/bin' >> /etc/profile
tar zxvf mongodb-linux-x86_64-2.6.0.tgz
mv mongodb-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: 19998echo 'export PATH=$PATH:/usr/local/mongodb/bin' >> /etc/profile
tar zxvf mongodb-linux-x86_64-2.6.0.tgz
mv mongodb-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: 19997echo 'export PATH=$PATH:/usr/local/mongodb/bin' >> /etc/profile
tar zxvf mongodb-linux-x86_64-2.6.0.tgz
mv mongodb-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

/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互备

20.220-mongo1:主机
mongo 192.168.20.220:20001/admin
use 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}
]}

rs.initiate(config) //初始化repl set

rs.status()   //看结果是否成功建成repl set

20.221-mongo2:主机
mongo 192.168.20.221:20002/admin
use admin;

config = {_id: 'sh2', members:[
{_id:0, host: '192.168.20.221:20002'},
{_id:1, host: '192.168.20.222:20002'},
{_id:2, host: '192.168.20.220:20002', arbiterOnly: true}
]}

rs.initiate(config) //初始化repl set

rs.status()   //看结果是否成功建成repl set

20.222-mongo3:主机
mongo 192.168.20.222:20003/admin
use admin; 

config = {_id: 'sh3', members:[
{_id:0, host: '192.168.20.222:20003'},
{_id:1, host: '192.168.20.220:20003'},
{_id:2, host: '192.168.20.221:20003', arbiterOnly: true}
]}

rs.initiate(config) //初始化repl set

rs.status()   //看结果是否成功建成repl set

3.执行启动 config server:

/usr/local/mongodb/bin/mongod --fork --rest --configsvr --port 19999 --dbpath /usr/local/mongodb/date/cf1/ --logpath /usr/local/mongodb/log/cf1.log
20.221-mongo2
/usr/local/mongodb/bin/mongod --fork --rest --configsvr --port 19998 --dbpath /usr/local/mongodb/date/cf2/ --logpath /usr/local/mongodb/log/cf2.log
20.222-mongo3
/usr/local/mongodb/bin/mongod --fork --rest --configsvr --port 19997 --dbpath /usr/local/mongodb/date/cf3/ --logpath /usr/local/mongodb/log/cf3.log 

4.启动  mongos server

/usr/local/mongodb/bin/mongos --configdb 192.168.20.220:19999,192.168.20.221:19998,192.168.20.222:19997 --logpath /usr/local/mongodb/log/mongos.log --logappend --fork --port 20000

5. 配置mongo 分片集群

mongo 192.168.20.220:20000/admin

mongos> db.runCommand({addshard:"sh1/192.168.20.220:20001,192.168.20.221:20001",name:"sh1"});

mongos> db.runCommand({addshard:"sh2/192.168.20.221:20002,192.168.20.222:20002",name:"sh2"});

mongos> db.runCommand({addshard:"sh3/192.168.20.222:20003,192.168.20.220:20003",name:"sh3"});

mongos> db.runCommand({listshards:1})

6. 激活数据库分片

登录mongos:

>use admin;

>db.runCommand( { enablesharding : "dbname" } );

>db.runCommand( { shardcollection : "dbname.collectionname", key :{ "keyfield" :1 }});

注意分片使用的keyfield需要是表索引。

sh.enableSharding("dbname")

转载于:https://www.cnblogs.com/love19791125/p/5187031.html

mongodb分片部署相关推荐

  1. MongoDB分片+副本+keyFile认证(新手部署完整版)

    MongoDB分片+副本+keyFile认证(新手部署完整版) 部署详情 服务器yhcs_1 IP:192.168.43.211 服务器yhcs_2 IP:192.168.43.212 服务器yhcs ...

  2. mongodb分片扩展架构

    目录 一.简介 二.分片集群 三.数据分布策略 四.Mongos访问模式 五.Config元数据 六.分片均衡 参考文档 一.简介 MongoDB目前3大核心优势:『灵活模式』+ 『高可用性』 + 『 ...

  3. MongoDB 分片的原理、搭建、应用

    一.概念: 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载.基本思想就是将集合切成小块,这 ...

  4. MongoDb分片集群认证

    本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html), Mong ...

  5. mongodb分片概念和原理-实战分片集群

    一.分片 分片是一种跨多台机器分发数据的方法.MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署. 问题: 具有大型数据集或高吞吐量应用程序的数据库系统可能会挑战单个服务器的容量.例如 ...

  6. Mongo集群分片部署实践(4.2版本)

    >使用一台Windows机器模拟集群分片部署,配置方案如下: 3个分片sharding 每一个分片由三个节点构成1主2备的 Replica Sets 3个配置节点Configserver 一个路 ...

  7. MongoDB——MongoDB分片集群(Sharded Cluster)两种搭建方式

    MongoDB分片集群(Sharded Cluster)两种搭建方式 MongoDB分片的概念 分片集群包含的组件 分片集群架构目标 MongoDB分片集群搭建 第一套副本集 第二套副本集 配置节点副 ...

  8. MongoDB分片(Sharding)技术

    C/C++Linux服务器开发/后台架构师知识体系整理 分片(sharding)是 MongoDB 用来将大型集合分割到不同服务器(或者说一个集群)上所采用的方法.尽管分片起源于关系型数据库分区,但 ...

  9. TiDB和MongoDB分片集群架构比较

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近阅读了TiDB源码的说明文档,跟MongoDB的分片集群做了下简单对比. 首先展示TiDB的整体架构 M ...

最新文章

  1. 登录MySQL非默认3306端口号的语句
  2. Perl内置特殊变量
  3. 开课吧里的python学习是真的吗-Python是个什么鬼?为何学英语的都在关注...
  4. DotNetTextBox控件添加外挂插件功能的图文教程。
  5. 各种材料衣服的保养 全面知识分享
  6. Epub,Mobi,Azw3电子书格式的区别,Mac上有什么好用的epub阅读器
  7. sfm点云代码_PCL点云显示sfm数据
  8. 单片机节日彩灯c语言,单片机节日彩灯控制器的设计Proteus仿真
  9. 单片机课程设计八音盒
  10. win10 开机自动启动脚本
  11. 【EMI测试】如何选择近场电磁干扰故障诊断的测试设备/探头
  12. mysql initialize 什么意思_mysql initialize
  13. 无线网络有信号显示未连接网络连接服务器,路由器无线网络受限制或无连接怎么办...
  14. RPG或SLG游戏在线地图编辑器
  15. Python 强制限定小数点位数
  16. 【Tensorflow】报错:FailedPreconditionError: Attempting to use uninitialized value keep_prob_7
  17. 【易代账】易代账/好会计软件导入账套备份文件,提示服务商不一致。
  18. 常见信息泄露类漏洞风险与解决方案
  19. Mac 截取一个视频中部分片段(命令行方法)
  20. 海词alpha版本上线,邀请测试。

热门文章

  1. 同学孩子上985大学,每月生活费5000元,大家认为合适吗?
  2. 古时候中状元到底是一种怎样的体验?
  3. 一位年轻有为的企业家李先生
  4. 世界上最贵的车是直通车吗?
  5. 配电脑时什么配置可以缩水?
  6. 下一个十年,互联网升级的大致方向在哪里?
  7. 使用Oraclize让智能合约调用外部数据
  8. QItemSelectionModel——视图选择
  9. linux统计所有进程总共占用多少内存?
  10. aws redshift_从本地安装的IDE访问AWS Redshift