mongodb分片部署
Mongodb 分片部署

配置mongodb集群,比如 在3个server上配置 3 shard的Mongodb集群:
架构:
1.每片数据需要3个mongod server,2个为主从数据节点;1个为仲裁节点(arbiter),不存数据。 一共三片,可以做成:
20.220-mongo1: (sh1主),(sh2从),(sh3仲裁)
20.221-mongo2: (sh2主),(sh3从),(sh1仲裁)
20.222-mongo3: (sh3主),(sh1从),(sh2仲裁)
2. 需要3个mongod config server,登录3台机器执行如下
20.220-mongo1:
echo 'export PATH=$PATH:/usr/local/mongodb/bin' >> /etc/profile
tar zxvf mongodb-linux-x86_64-2.6..tgz
mv mongodb-linux-x86_64-2.6. /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:
echo 'export PATH=$PATH:/usr/local/mongodb/bin' >> /etc/profile
tar zxvf mongodb-linux-x86_64-2.6..tgz
mv mongodb-linux-x86_64-2.6. /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:
echo 'export PATH=$PATH:/usr/local/mongodb/bin' >> /etc/profile
tar zxvf mongodb-linux-x86_64-2.6..tgz
mv mongodb-linux-x86_64-2.6. /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:
1.启动mongod datanode service
/usr/local/mongodb/bin/mongod --fork --rest --replSet sh1 --shardsvr --oplogSize --dbpath /usr/local/mongodb/date/sh1 --logpath /usr/local/mongodb/log/sh1.log --port
/usr/local/mongodb/bin/mongod --fork --rest --replSet sh2 --shardsvr --oplogSize --dbpath /usr/local/mongodb/date/sh2 --logpath /usr/local/mongodb/log/sh2.log --port
/usr/local/mongodb/bin/mongod --fork --rest --replSet sh3 --shardsvr --oplogSize --dbpath /usr/local/mongodb/date/sh3 --logpath /usr/local/mongodb/log/sh3.log --port
2.配置每片的 replica set,即每3台配成一个replica set互备
20.220-mongo1:主机
mongo 192.168.20.220:/admin
use admin;
config = {_id: 'sh1', members:[
{_id:, host: '192.168.20.220:20001'},
{_id:, host: '192.168.20.221:20001'},
{_id:, 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:/admin
use admin;
config = {_id: 'sh2', members:[
{_id:, host: '192.168.20.221:20002'},
{_id:, host: '192.168.20.222:20002'},
{_id:, 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:/admin
use admin;
config = {_id: 'sh3', members:[
{_id:, host: '192.168.20.222:20003'},
{_id:, host: '192.168.20.220:20003'},
{_id:, 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 --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 --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 --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:,192.168.20.221:,192.168.20.222: --logpath /usr/local/mongodb/log/mongos.log --logappend --fork --port

5. 配置mongo 分片集群
mongo 192.168.20.220:/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:})

6. 激活数据库分片
登录mongos:
>use admin;
>db.runCommand( { enablesharding : "dbname" } );

>db.runCommand( { shardcollection : "dbname.collectionname", key :{ "keyfield" :1 }});
注意分片使用的keyfield需要是表索引。
sh.enableSharding("dbname")

mongodb分片部署的更多相关文章
- Linux下的mongodb分片部署
前提: 分片服务器不设置从服务和均衡服务,只有主服务器;当前测试为所有服务器均在同一台物理机上. 1.测试环境:192.168.1.55. 2.测试模式:单机.3.服务:分片服务器1:192.168. ...
- mongodb集群+分片部署(二)
机器:10.165.38.68 10.165.38.72 部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu. ...
- MongoDB分片群集的部署(用心描述,详细易懂)!!
概念: MongoDB分片是使用多个服务器存储数据的方法,以支持巨大的数据存储和对数据进行存储 优势: 1.减少了每个分片需啊哟处理的请求数,群集可以提高自己的存储容量和吞吐量 2.减少了每个分片存储 ...
- MongoDB分片 在部署和维护管理 中常见事项的总结
分片(sharding)是MongoDB将大型集合分割到不同服务器(或者说集群)上所采用的方法,主要为应对高吞吐量与大数据量的应用场景提供了方法. 和既有的分库分表.分区方案相比,MongoDB的最大 ...
- 009.MongoDB分片群集部署
一 前期准备 1.1 组件说明 MongoDB分片群集包含以下组件: shard:每个分片是分片数据的子集.从MongoDB 3.6开始,必须将分片部署为副本集. mongos:mongos充当查询路 ...
- CentOS7+Docker+MangoDB下部署简单的MongoDB分片集群
简单的在Docker上快速部署MongoDB分片集群 前言 文中使用的环境如下 OS:CentOS Linux release 7.5.1804 (Core) Docker:Docker versio ...
- MongoDB DBA 实践8-----Linux系统Mongodb分片集群部署
在Linux系统中,主要是使用命令行进行mongodb的分片集群部署 一.先决条件 mongodb安装成功,明确路径, MongoDB的几个路径: /var/lib/mongodb /var/log/ ...
- MongoDB分片集群部署方案
前言 副本集部署是对数据的冗余和增加读请求的处理能力,却不能提高写请求的处理能力:关键问题是随着数据增加,单机硬件配置会成为性能的瓶颈.而分片集群可以很好的解决这一问题,通过水平扩展来提升性能.分片部 ...
- MongoDB 分片的原理、搭建、应用
一.概念: 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载.基本思想就是将集合切成小块,这 ...
随机推荐
- Git操作简介
一 概述 1.什么是Git? Git是分布式版本控制系统. 2.集中式与分布式对比 在集中式版本控制系统中,版本库集中在中央服务器上,每次工作时都需要先从中央服务器获取最新版本,修改后,再推送到中央服 ...
- 将HTML导出生成word文档
前言: 项目开发中遇到了需要将HTML页面的内容导出为一个word文档,所以有了这边随笔. 当然,项目开发又时间有点紧迫,第一时间想到的是用插件,所以百度了下.下面就介绍两个导出word文档的方法. ...
- 反编译Unity3D手机游戏
[旧博客转移 - 2015年11月17日 10:08] 现在大部分U3D手游都没有进行加密处理,要反编译其实很简单 APK是安卓的安装包,安卓是基于Linux的,Linux的安装包一般都是zip,所以 ...
- spring 框架的xml文件如何读取properties文件数据
spring 框架的xml文件如何读取properties文件数据 第一步:在spring配置文件中 注意:value可以多配置几个properties文件 <bean id="pro ...
- Python collections模块总结
Python collections模块总结 除了我们使用的那些基础的数据结构,还有包括其它的一些模块提供的数据结构,有时甚至比基础的数据结构还要好用. collections ChainMap 这是 ...
- hadoop 50070 无法访问问题解决汇总
遇到这个其实不难解决! 解决办法1: [root@djt002 hadoop]# vi /etc/selinux/config 改为 SELINUX=disabled 解决办法2: 查看你的$HADO ...
- vue数据绑定原理
一.定义 vue的数据双向绑定是基于Object.defineProperty方法,通过定义data属性的get和set函数来监听数据对象的变化,一旦变化,vue利用发布订阅模式,通知订阅者执行回调函 ...
- php 设计模式之策略模式
策略模式:定义算法,并将其封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 步骤:1.抽象策略角色:定义接口或抽象类 2.具体策略角色:实现该接口(抽象类),即具体的算法实现 ...
- 【JAVASCRIPT】React学习-如何构建一个组件
摘要 react 学习包括几个部分: 文本渲染 JSX 语法 组件化思想 数据流 组件化思想 组件就是 UI + UI 交互逻辑,组件有三个常规map , 分别为state 状态 . props 数据 ...
- C#的基础数据类型
一.概述 C# 的类型系统是统一的,因此任何类型的值都可以按对象处理.C# 中的每个类型直接或间接地从 object 类类型派生,而 object 是所有类型的最终基类.C#的数据类型主要分为三类:值 ...