一、安装前准备

机器分配: 三台机器 A :192.168.19.101 B: 192.168.19.102 C: 192.168.19.103
A机器:mongos 、config server、shard1主节点、shard2仲裁、shard3从节点
B机器:mongos 、config server、shard1从节点、shard2主节点、shard3仲裁
C机器:mongos 、config server、shard1仲裁、shard2从节点、shard3主节点
端口分配:mongos 20000、config 21000 shard1 27001 shard2 27002、shard3 27003
三台机器全部关闭firewalld服务和selinunx,或者增加相应端口规则

2.目录结构,使basedir 和 datadir 不在一个分区上
basedir: /usr/local/mongodb/
datadir: /data/mongodb/

3.禁用大内存页面

二、下载 解压 创建相关目录

# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.9.tgz
# tar zxvfmongodb-linux-x86_64-rhel70-4.0.9.tgz
# mv mongodb-linux-x86_64-rhel70-4.0.9 /usr/local/mongodb# 创建相关目录
# mkdir -p /data/mongodb/mongos/log ;mkdir -p /data/mongodb/config/{data,log};mkdir -p /data/mongodb/shard1/{data,log};mkdir -p /data/mongodb/shard2/{data,log};mkdir -p /data/mongodb/shard3/{data,log}# 设置环境变量
# cat /etc/profile.d/mongodb.sh
#!/bin/bash
MONGODB_HOME=/usr/local/mongodb/
PATH=$PATH:$MONGODB_HOME/bin
export MONGODB_HOME PATH# . /etc/profile.d/mongodb.sh       #使环境变量生效

三、分片集群搭建
1.config server的配置,三台机器都需要操作

# pwd
/usr/local/mongodb/conf
# mkdir  /usr/local/mongodb/pids        #存放服务的pid 目录# cat config.conf           # config 配置文件
pidfilepath = /usr/local/mongodb/pids/configsrv.pid
dbpath = /data/mongodb/config/data
logpath = /data/mongodb/config/log/configsrv.log
logappend = true
bind_ip = 0.0.0.0
port = 21000
fork = true
configsvr = true
replSet = configs
maxConns = 20000#启动
# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/config.conf #初始化副本集,任意一台机器都可以
# mongo --host 192.168.19.101 --port 21000
> config = {_id:"configs", members:[{_id:101, host:"192.168.19.101:21000"},{_id:102, host:"192.168.19.102:21000"},{_id:103, host:"192.168.19.103:21000"}]}
> rs.initiate(config)
configs:SECONDARY> rs.status()           #等一会 当前机器 状态会变为 PRIMARY
configs:PRIMARY>

2.shard的配置,三台机器都需要操作

###############   以下是shard1的配置   ##############
# cat /usr/local/mongodb/conf/shard1.conf
pidfilepath = /usr/local/mongodb/pids/shard1.pid
dbpath = /data/mongodb/shard1/data
logpath = /data/mongodb/shard1/log/shard1.log
logappend = true
bind_ip = 0.0.0.0
port = 27001
fork = true
replSet = shard1
shardsvr = true
maxConns = 20000# 启动,三个节点均需要启动
# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/shard1.conf
#连接mongo 配置shard1
# mongo --host 192.168.19.101 --port 27001
> config = {_id:"shard1",members:[{_id:101,host:"192.168.19.101:27001"},{_id:102,host:"192.168.19.102:27001"},{_id:103,host:"192.168.19.103:27001",arbiterOnly:true}]}
> rs.initiate(config)
shard1:SECONDARY> rs.status()
shard1:PRIMARY> ###############   以下是shard2的配置   ##############
# cat /usr/local/mongodb/conf/shard2.conf
pidfilepath = /usr/local/mongodb/pids/shard2.pid
dbpath = /data/mongodb/shard2/data
logpath = /data/mongodb/shard2/log/shard2.log
logappend = true
bind_ip = 0.0.0.0
port = 27002
fork = true
replSet = shard2
shardsvr = true
maxConns = 20000# 启动,三个节点均需要启动
# mongod -f /usr/local/mongodb/conf/shard2.conf
#连接mongo 配置shard2
# mongo --host 192.168.19.102 --port 27002
> config = {_id:"shard2", members:[{_id:101, host:"192.168.19.101:27002",arbiterOnly:true}, {_id:102, host:"192.168.19.102:27002"},{_id:103, host:"192.168.19.103:27002"}]}
> rs.initiate(config)
shard2:SECONDARY> rs.status()
shard2:PRIMARY> ###############   以下是shard3的配置   ##############
# cat /usr/local/mongodb/conf/shard3.conf
pidfilepath = /usr/local/mongodb/pids/shard3.pid
dbpath = /data/mongodb/shard3/data
logpath = /data/mongodb/shard3/log/shard3.log
logappend = true
bind_ip = 0.0.0.0
port = 27003
fork = true
replSet = shard3
shardsvr = true
maxConns = 20000# 启动,三个节点均需要启动
# mongod -f /usr/local/mongodb/conf/shard3.conf
#连接mongo 配置shard3
# mongo --host 192.168.19.103 --port 27003
> config = {_id:"shard3", members:[{_id:101,host:"192.168.19.101:27003"},{_id:102,host:"192.168.19.102:27003",arbiterOnly:true},{_id:103,host:"192.168.19.103:27003"}]}
> rs.initiate(config)
shard3:SECONDARY> rs.status()
shard3:PRIMARY>

3 mongs配置

# cat /usr/local/mongodb/conf/mongos.conf
pidfilepath = /usr/local/mongodb/pids/mongos.pid
logpath = /data/mongodb/mongos/log/mongos.log
logappend = true
bind_ip = 0.0.0.0
port = 20000
fork = true
configdb = configs/192.168.19.101:21000,192.168.19.102:21000,192.168.19.103:21000  # 监听的配置服务器,只能有1个或3个,configs为配置服务器的副本集名称
maxConns = 20000# 启动,三个节点均需要启动
# mongos -f /usr/local/mongodb/conf/mongos.conf # 连接mongo 配置mongos  把所有的分片和路由器串联
# mongo --host 192.168.19.101 --port 20000
mongos> sh.addShard("shard1/192.168.19.101:27001,192.168.19.102:27001,192.168.19.103:27001")
mongos> sh.addShard("shard2/192.168.19.101:27002,192.168.19.102:27002,192.168.19.103:27002")
mongos> sh.addShard("shard3/192.168.19.101:27003,192.168.19.102:27003,192.168.19.103:27003")
mongos> sh.status()          # 查看状态

四、分片测试

mongos> use admin
mongos> db.runCommand( { enablesharding :"test"});
mongos> db.runCommand( { shardcollection : "test.table",key : {id: "hashed"} } )
mongos> use test
mongos> for (var i = 1; i <= 10000; i++) db.table.save({id:i,"test":"testval"})
mongos> db.table.stats()     #查看每个分区的数据量

https://www.oschina.net/question/3571801_2286249?sort=default

四、备份与恢复

#备份指定库
# mongodump --host 192.168.19.101 --port 20000 -d test -o /tmp/test
#备份所有库
# mongodump --host 192.168.19.101 --port 20000 -o /tmp/alldb
#备份指定集合
# mongodump --host 192.168.19.101 --port 20000 -d test -c table -o /tmp/test/#恢复所有库
# mongorestore --host 192.168.19.101 --port 20000 --drop /tmp/alldb  # --drop 可选 意思是恢复之前先把之前的数据删除,不建议使用
#恢复指定库
# mongorestore --host 192.168.19.101 --port 20000 -d test /tmp/test
#恢复集合
# mongorestore --host 192.168.19.101 --port 20000 -d test -c table /tmp/test/table.bson

五、其他
1 备份时过滤

# mongodump --host 192.168.19.101 --port 27017 -d touchless -c pousheng_validation_sdap  -q '{batch_id: { $in: [ "0001SU201", "0001SU202", "SU20A109210502316"] }, validate_status_flag: "Success"}' -o /cust/cig/data/mongodb/

2

mongodb 分片集群安装 -- 二进制文件安装相关推荐

  1. 搭建MongoDB分片集群

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

  2. 实战:MongoDB 分片集群Shard Cluster 搭建(1台路由节点,3台配置节点,9台分片节点)

    MongoDB 分片集群搭建(分片集群安全认证+SpringBoot访问) 一.搭建要求 一台路由节点 IP地址:192.168.80.110 端口:11111 三套复制集(每个分片节点中的复制集 都 ...

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

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

  4. mongodb 启动_精心总结--mongodb分片集群启动与关闭

    概述 网上教程有点坑啊,很多bug,今天刚好涉及到所以抽空整理了下mongodb分片集群启动与关闭方面的教程.希望对大家有点帮助. 基础环境配置 192.168.240.145 测试Nosql服务器1 ...

  5. MongoDb分片集群认证

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

  6. DOCKER-COMPOSE搭建MONGODB分片集群(单机版)

    docker-compose搭建mongodb分片集群(单机版) - 丰哥坑到 - 博客园

  7. 2021-05-12 MongoDB面试题 什么是MongoDB分片集群

    什么是MongoDB分片集群? Sharding cluster是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建.sharding分片很好的解决了单台服务器磁盘空 ...

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

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

  9. mongodb分片集群突然停电造成一些错误,分片无法启动

    今天突然停电使mongodb分片集群造成这种错误,暂时不知道怎么解决,如果 有人知道请回复我 ,现在把记录下来,等后期处理. Fri Aug  8 10:49:52.165 [initandliste ...

最新文章

  1. 重大改变!Python 或将取代 VBA 成为 Excel 官方脚本语言
  2. python-学习 协程函数 模块与包
  3. CVPR 2019开源论文 | Rob-GAN:生成器、鉴别器以及对抗攻击者
  4. win10安装 MySQL安装教程
  5. 容器编排技术 -- Kubernetes kubectl create 命令详解
  6. servelt笔记一
  7. 一个超级简单的HTML模板框架源代码以及使用示例
  8. 如何优化你的布局层级结构之RelativeLayout和LinearLayout及FrameLayout性能分析
  9. 在线JSON校验格式化工具,文本对比工具,截图notepad工具
  10. Phpmailer指定多位收件人
  11. PLC通过智能网关,实现HTTP协议的POST请求,与服务端JSON格式双向通讯
  12. “无法访问 您可能没有权限使用网络资源”解决办法
  13. Java获取本周一、上周一、下周一时间
  14. Python——动画精灵
  15. phpadmin安装到mysql中_phpadmin安装教程
  16. 招募 | 香港理工大学Georg Kranz 博士诚招博士
  17. 利用Nginxcp为cPanel/WHM服务器开启nginx支持
  18. 基于mysql实现的网站_基于JavaScript和MySQL的文化平台网站的设计与实现
  19. 爱网外链网盘源码V5.0 全新支持图片检测
  20. 结构体类型与结构体变量

热门文章

  1. 深圳大学大学计算机考试科目,深圳大学计算机考研科目有哪些
  2. 控制 input 输入框不能输入中文,即不能在输入框中使用输入法
  3. 无法打开登录所请求的数据库database登录失败用户登录失败
  4. 威廉希尔赔率分析和结论
  5. 红包来咯!免费的红包封面快来领取!
  6. 学生信息管理系统——错误集锦(五)
  7. 前端:LayUi监听表格单元格,编辑后恢复原数据
  8. 10g gtx 光纤通信测试_10G光模块知识问与答
  9. 文华财经指标公式大全,通达信指标加密破解DLL加密防破解技术方法
  10. 5分钟搞定内网穿透工具-ngrok