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)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载.基本思想就是将集合切成小块,这 ...
随机推荐
- Linux 开机引导流程
Linux 开机启动流程 BIOS(Basic Input Output System)是 PC 机启动时加载的第一个软件.其实,它是一组固化到计算机主板上一个芯片上的程序,它保存着计算机最重要的输入 ...
- java源码学习(五)LinkedList
LinkedList [TOC] 一.定义 public class LinkedList<E> extends AbstractSequentialList<E> imple ...
- Java 基础 标识符的命名
java标识符的命名规则和规范 首先,标识符是在Java程序中能够自己进行命名的地方,例如:类名,方法名,接口名,变量名,常量名...等. 命名规则: 1.由26个英文字母的大小写,0-9的数字,_或 ...
- Linux之用户管理--初级上
管理用户命令汇总 命令 注释说明(特殊颜色的必须掌握) useradd增 同adduser命令,执行此命令可在系统中添加用户.(更改4个用户文件) userdel删 执行此命令可删除用户及相关用户的配 ...
- Java IO学习笔记(三)转换流、数据流、字节数组流
转换流 1.转换流:将字节流转换成字符流,转换之后就可以一个字符一个字符的往程序写内容了,并且可以调用字符节点流的write(String s)方法,还可以在外面套用BufferedReader()和 ...
- Hibernate快速入门实例
Hibernate工程项目创建基本步骤:导包(Hibernate依赖包.SQL驱动包).编写实体类.编写ORM映射配置文件.编写核心配置文件.编写测试驱动. 整个工程项目结构如下图: 一.导包 笔者使 ...
- java基础系列--Calendar类
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7136575.html 1.Calendar概述 Java官方推荐使用Calendar来替换 ...
- FileOutputStreamTest
package JBJADV003; import java.io.FileOutputStream;import java.io.OutputStream;import java.io.IOExce ...
- Unity-Shader-动态阴影(上) 投影的矩阵变换过程
[旧博客转移 - 2017年1月20日 01:20 ] 前面的话 最近很长时间没写博文了,一是太忙 ( lan ) 了,二是这段时间又领悟了一些东西,脑子里很混乱,不知道从何写起.但感觉不能再拖延下去 ...
- mysql5.6 无法使用64odbc连接
win10 64位,mysql5.6 无法使用64 连接odbc,处理:装32位odbc, 使用C:\Windows\SysWOW64\odbcad32.exe 配置.