第一章

1.mongodb 分片集群解释和目的

一组Mongodb复制集,就是一组mongod进程,这些进程维护同一个数据集合。复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础。

第二章

1.实验环境

centos7  3台服务器

192.168.1.195 2G内存

192.168.1.196 2G内存

192.168.1.197 2G内存

2.初始化环境(三台都操作)

yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
ntpdate -u cn.pool.ntp.org
hwclock --systohc
timedatectl set-timezone Asia/Shanghai
# 关闭防火墙 Selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

3.系统文件数设置

cat >> /etc/security/limits.conf <<EOF
* soft nofile 102400
* hard nofile 409600
* soft nproc 2048
* hard nproc 4096
EOF

echo never >> /sys/kernel/mm/transparent_hugepage/enabled
echo never >> /sys/kernel/mm/transparent_hugepage/defrag

第三章(三台都需要操作)

1.下载mongodb包

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.5.tgz

2.创建mongodb用户

useradd -M -u 8000 -s /sbin/nologin mongo

3.下载文件解压缩

mkdir /data/ 然后解压MongoDB二进制包到/data目录下,并改名为mongo

3-1.配置mongo启动变量

vi /etc/profile

export MONGODB_HOME=/data/mongodb
export PATH=$MONGODB_HOME/bin:$PATH

source /etc/profile

4.配置环境

mkdir -p /data/mongo/config
mkdir -p /data/mongo/data/server
mkdir -p /data/mongo/log/server
mkdir -p /data/mongo/log/mongos
for i in {1..3};do mkdir -p /data/mongo/data/shard$i; done
for i in {1..3};do mkdir -p /data/mongo/log/shard$i; done

5.configsvr配置文件

#不同机器更改bind_ip

cat >> /data/mongo/config/config.conf << EOF
bind_ip=192.168.1.195
dbpath=/data/mongo/data/server
pidfilepath=/data/mongo/mongo.pid
logpath=/data/mongo/log/server/mongodb.log
logappend=true
journal = true
port=
fork=true
configsvr=true
logRotate=rename
#副本集名字
replSet=damowang
#最大连接数
maxConns=
EOF

6.权限更改

chown -R mongo:mongo /data/mongo

7.启动configsvr

/data/mongo/bin/mongod -f config/config.conf

8.初始化configsvr (单台机器操作)

#登录其中任意一台机器  
 /data/mongo/bin/mongo --host 192.168.10.203 --port 27000 config = {_id : "damowang", members : [{_id : 0, host : "192.168.1.195:27000"}, {_id : 1, host : "192.168.1.196:27000"}, {_id : 2, host : "192.168.1.197:27000"}]} #初始化副本集
rs.initiate(config)

第四章 (三台机器都操作)

1.配置shard

cat >> /data/mongo/config/shard1.conf << EOF

#不同机器bind_ip改变
bind_ip=192.168.1.195
#更改为对应shard
dbpath=/data/mongo/data/shard1
pidfilepath=/data/mongo/shard1.pid
logpath=/data/mongo/log/shard1/mongodb.log
logappend=true
journal = true
#更改为对应shard端口
port=
fork=true
logRotate=rename
shardsvr=true
#副本集名称
replSet=shard1
#最大连接数
maxConns=
EOF

2.权限更改

chown -R mongo:mongo /data/mongo

3.启动shardsvr

/data/mongo/bin/mongod -f config/shard1.conf

4.初始化shardsvr

#登录其中任意一台机器

/data/mongo/bin/mongo --host 192.168.1.195 --port 27001

config = {_id : "shard1", members : [{_id : 0, host : "192.168.1.195:27001"}, {_id : 1, host : "192.168.1.196:27001"}, {_id : 2, host : "192.168.1.197:27001", arbiterOnly: true}]}

rs.initiate(config)

第五章

1.mongos 配置文件初始化

cat >> /data/mongo/config/mongos.conf << EOF
#不同机器更改bind_ip
bind_ip=192.168.1.195
pidfilepath=/data/mongo/mongos.pid
logpath=/data/mongo/log/mongos/mongos.log
logappend=true
logRotate=rename
#mongos监听端口
port=
fork=true
#damowang 为 configsvr 的副本集名称
configdb=damowang/192.168.1.195:,192.168.1.196:,192.168.1.197:
#最大连接数
maxConns=
EOF

2.权限更改

chown -R mongo:mongo /data/mongo

3.启动mongos

/data/mongo/bin/mongos -f config/mongos.conf

4.启用mongos

#登录其中任意一台机器
bin/mongo --host 192.168.1.195 --port 28000 #进入客户端,切换用户
use admin #添加分片

sh.addShard("shard1/192.168.1.195:27001,192.168.1.196:27001,192.168.1.197:27001")
sh.addShard("shard1/192.168.1.195:27002,192.168.1.196:27002,192.168.1.197:27002")
sh.addShard("shard1/192.168.1.195:27003,192.168.1.196:27003,192.168.1.197:27003")


#查看集群状态
sh.status()
第六章

1.配置shard分片

#登录任意mongos
bin/mongo --host 192.168.10.203 --port 28000 #切换admin用户
use admin #对指定库 test1 开启分片
sh.enableSharding("test1") # 对test库下的 person collection 开启hash模式分片
sh.shardCollection( "test1.person", { "_id": "hashed" } ) # 查看分片状态
sh.status() #如果分片原有数据,必先建索引,再指定分片键
sh.enableSharding("new2")
use new2
db.user2.createIndex( { "username": 1 } )
sh.shardCollection( "new2.user2", { "username": 1 } )
 
 

mongodb分片集群的更多相关文章

  1. MongoDB分片集群原理、搭建及测试详解

    随着技术的发展,目前数据库系统对于海量数据的存储和高效访问海量数据要求越来越高,MongoDB分片机制就是为了解决海量数据的存储和高效海量数据访问而生. MongoDB分片集群由mongos路由进程( ...

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

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

  3. 搭建MongoDB分片集群

    在部门服务器搭建MongoDB分片集群,记录整个操作过程,朋友们也可以参考. 计划如下: 用5台机器搭建,IP分别为:192.168.58.5.192.168.58.6.192.168.58.8.19 ...

  4. 网易云MongoDB分片集群(Sharding)服务已上线

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MongoDB sharding cluster(分片集群)是MongoDB提供的数据在线水平扩展方案,包括 ...

  5. MongoDB 分片集群实战

    背景 在如今的互联网环境下,海量数据已随处可见并且还在不断增长,对于如何存储处理海量数据,比较常见的方法有两种: 垂直扩展:通过增加单台服务器的配置,例如使用更强悍的 CPU.更大的内存.更大容量的磁 ...

  6. CentOS7+Docker+MangoDB下部署简单的MongoDB分片集群

    简单的在Docker上快速部署MongoDB分片集群 前言 文中使用的环境如下 OS:CentOS Linux release 7.5.1804 (Core) Docker:Docker versio ...

  7. Windows 搭建MongoDB分片集群(二)

    在本篇博客中我们主要讲描述分片集群的搭建过程.配置分片集群主要有两个步骤,第一启动所有需要的mongod和mongos进程.第二步就是启动一个mongos与集群通信.下面我们一步步来描述集群的搭建过程 ...

  8. Windows 搭建MongoDB分片集群(一)

    一.角色说明 要构建一个MongoDB分片集群,需要三个角色: shard server  即存储实际数据得分片,每个shard 可以是一个Mongod实例,也可以是一组mongod实例构成得Repl ...

  9. 分布式文档存储数据库之MongoDB分片集群

    前文我们聊到了mongodb的副本集以及配置副本集,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13953598.html:今天我们来聊下mongodb的分片 ...

随机推荐

  1. struts2框架

    详细教程 参考struts教程https://www.w3cschool.cn/struts_2/struts_configuration.html Struts2 基于MVC设计模式的web应用程序 ...

  2. 乘风破浪:LeetCode真题_027_Remove Element

    乘风破浪:LeetCode真题_027_Remove Element 一.前言 这次是从数组中找到一个元素,然后移除该元素的所有结果,并且返回长度. 二.Remove Element 2.1 问题 2 ...

  3. make报错

    笔记本Ubuntu16.04环境下,进入项目的src目录下执行make操作,发现报如下错误 /bin/sh: 1: /usr/bin/libtool: not found makefile:89: r ...

  4. PyQt5 的几个核心模块作用

    QtCore  包含了核心的非GUI功能.此模块用于处理时间.文件和目录.各种数据类型.流.URL.MIME类型.线程或进程. QtGui  包含类窗口系统集成.事件处理.二维图形.基本成像.字体和文 ...

  5. 有关于分布式缓存Hazelcast

    如果在内网段中部署或者启动缓存服务.不能存在相同的组名称.如同使用dubbo一样,会导致无法连接到缓存节点

  6. TML 打印预览问题,怎么设置有些内容不出现在打印预览页面上。怎么控制,有下代码 看得不是很懂 求解释

    HTML <style> 标签的 media 属性 HTML <style> 标签 实例 针对两种不同媒介类型的两种不同的样式(计算机屏幕和打印): <html> ...

  7. CSRF攻击详解

    CSRF是什么 CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/X ...

  8. 2-5 R语言基础 factor

    #因子:分类数据#有序和无序#整数向量+标签label#Male/Female#常用于lm(),glm() > x <- factor(c("female"," ...

  9. BZOJ4556:[TJOI\HEOI2016]字符串(后缀数组,主席树,二分,ST表)

    Description 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物.生日礼物放在一个神奇的箱子中.箱子外边写了一个长为n的字符串s,和m个问题.佳媛姐姐必须正确回答这m个问题,才能打开箱 ...

  10. 浏览器中上传Excel文件,服务器获取Excel字段。写入的数据库中。操作Excel的方式jxl和poi。

    从Excel中获取字段,官方给我们提供了方法,地址https://poi.apache.org/components/spreadsheet/quick-guide.html#CellContents ...