第一章

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. orcl 中upper()和lower()和initcap()的用法

    upper(字符串 | 列):输入的字符串变为大写返回: 将 bqh4表里的zym字段信息中含有字母的全部转成大写的方法: select * from bqh4 select upper(zym) f ...

  2. How to Be Assertive Asking for What You Want Firmly and Fairly

    What Is Assertiveness? It's not always easy to identify truly assertive behavior. This is because th ...

  3. windows系统利用任务管理器-资源监视器了解程序的磁盘读写量

    场景摘要:   1.刚部署上线一个新功能,增加了日志输出模块 2.本身服务器资源已经紧张了,在增加日志输出,就想了解磁盘读写量 3.从中突然发现oracle的磁盘读写量比较大 4.在展开明细发现是or ...

  4. 匿名访问windows server 2008 R2 文件服务器的共享

    匿名访问windows server 2008 R2 文件服务器的共享 匿名访问windows 2008 R2 文件服务器的共享,七步:第一步 取消简单文件共享:第二步 设置需要共享的文件夹every ...

  5. Asp.net core 2.0.1 Razor 的使用学习笔记(二)

    ASP.net core 2.0.1 中 asp.net identity 2.0.1 的基本使用(一)—启用用户管理 一.修改和启用默认的用户账户管理和角色管理 在Data目录中添加Applicat ...

  6. Alpha课堂展示(麻瓜制造者)

    目录 成员简介 演示动态图 预期用户量 演示动态图 目标用户视频 分工协作 项目管理 质量控制 团队角色与具体贡献 用户反馈 成员简介 刘双玉 http://www.cnblogs.com/liu42 ...

  7. 用AOP拦截自定义注解并获取注解属性与上下文参数(基于Springboot框架)

    目录 自定义注解 定义切面 获取上下文信息JoinPoint ProceedingJoinPoint 定义测试方法 测试结果 小结 AOP可以用于日志的设计,这样话就少不了要获取上下文的信息,博主在设 ...

  8. selenium3 浏览器驱动下载及验证

    下载浏览器驱动 当selenium升级到3.0之后,对不同的浏览器驱动进行了规范.如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动. 各浏览器下载地址: Firefox浏 ...

  9. 网站如何接入第三方登录,微信登录和QQ登录:注册认证篇

    第三方登录平台接入 (QQ\微信登录) QQ登录接入 第一步成为QQ应用开发者,审核期限七天 一.所需材料 1.公司注册相关信息 2.营业执照扫描件 微信登录接入 第一步成为微信开发平台开发者,认证费 ...

  10. BZOJ4552:[TJOI2016&HEOI2016]排序(线段树,二分)

    Description 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他. 这个难题是这样子的:给出一个1到n的全排列,现在对这 ...