Welcome 微信登录

首页 / 数据库 / MySQL / MongoDBV3.0.7版本(shard+replica)集群的搭建及验证

集群的模块介绍:从MongoDB官方给的集群架构了解,整个集群主要有4个模块:Config Server、mongs、 shard、replica set:Config Server:用来存放集群的元数据,也就是存放所有分片的的配置数据,mongos第一次启动就需要连接configServer读取相关数据,当configServer有数据进行更新时,也会主动推送消息到所有的mongos上,在3.0.7版本中,官方是建议配置3份的Config Server,以便挂掉两台时,业务还能够正常运转。 mongs:Mongodb集群的的请求入口,能否自动实现数据的分布式分发,生产环境中建议部署在应用服务器上。 shard:分片就比如是将一张大表分散在几个不同的shard中,实现数据分布式存储。replica set:主要是对每个分片进行冗余,生产环境中,一般将将副本集配置在三个节点上,两份副本、一份仲裁。 更多MongoDB相关内容可以看看以下的有用链接: MongoDB 3.0 正式版发布下载  http://www.linuxidc.com/Linux/2015-03/114414.htmCentOS编译安装MongoDB http://www.linuxidc.com/Linux/2012-02/53834.htmCentOS 编译安装 MongoDB与mongoDB的php扩展 http://www.linuxidc.com/Linux/2012-02/53833.htmCentOS 6 使用 yum 安装MongoDB及服务器端配置 http://www.linuxidc.com/Linux/2012-08/68196.htmUbuntu 13.04下安装MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htmMongoDB入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htmUbunu 14.04下MongoDB的安装指南 http://www.linuxidc.com/Linux/2014-08/105364.htm《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htmNagios监控MongoDB分片集群服务实战 http://www.linuxidc.com/Linux/2014-10/107826.htm基于CentOS 6.5操作系统搭建MongoDB服务 http://www.linuxidc.com/Linux/2014-11/108900.htm 
  • 环境规划:

  • 端口及安装路径规划:

用途IP端口备注安装路径
ConfigeServer172.16.16.12030001 /db/configS
172.16.16.12130001/db/configS
172.16.16.12230001/db/configS
share1172.16.16.12440001Shard1主节点/db/shard1
172.16.16.12540001Shard1副本节点/db/shard1
172.16.16.12640001Shard1仲裁节点/db/shard1
share2172.16.16.12540002Shard2主节点/db/shard2
172.16.16.12640002Shard2副本节点/db/shard2
172.16.16.13140002Shard2仲裁节点/db/shard2
share3172.16.16.12640003Shard3主节点/db/shard3
172.16.16.13140003Shard3副本节点/db/shard3
172.16.16.12440003Shard3仲裁节点/db/shard3
share4172.16.16.12140004Shard4主节点/db/shard4
172.16.16.12440004Shard4副本节点/db/shard4
172.16.16.12540004Shard4仲裁节点/db/shard4
mongos172.16.16.12450001生产环境中一般直接部署在应用端/db/mongos
172.16.16.12550001/db/mongos
172.16.16.12650001/db/mongos
172.16.16.13150001/db/mongos
 
  • 搭建步骤:

  • 下载mongodb(https://www.mongodb.org/downloads ) ,目前的最新版本是 3.0.7

opt]# tar zxvf mongodb-linux-x86_64-rhel55-3.0.7.gzopt]# mv mongodb-linux-x86_64-rhel55-3.0.7 /usr/local/mongodbopt]# useraddmongoopt]# passwdmongoChanging password for user mongo.New UNIX password:BAD PASSWORD: it is too simplistic/systematicRetype new UNIX password:passwd: all authentication tokens updated successfully.opt]# chown -R mongo:mongo /usr/local/mongodb/opt]# chown -Rmongo:mongo /db
  • 创建相关模块存放路径:

  • 创建configeServer目录(172.16.16.120/121/122):

#mkdir -p/db/configS/data & mkdir -p /db/configS/log (存放ConfigServer的数据、日志)
  • 创建shard1目录(172.16.16.124/125/126):

#mkdir -p/db/shard1/data & mkdir -p /db/shard1/log (存放shard1的数据、日志)
  • 创建shard2目录(172.16.16.125/126/131 ):

#mkdir -p/db/shard2/data & mkdir -p /db/shard2/log (存放shard2的数据、日志)
  • 创建shard3目录(172.16.16.126/131/124 ):

#mkdir -p/db/shard3/data & mkdir -p /db/shard3/log (存放shard3的数据、日志)
  • 创建shard4目录(172.16.16.131/124/125 ):

#mkdir -p/db/shard4/data & mkdir -p /db/shard4/log (存放shard4的数据、日志)
  • 创建mongos目录(172.16.16.124/125/126/131)

#mkdir -p/db/mongos/log (由于mongos只做路由使用,不存数据,所以只需要建立log目录)
  •  模块配置及启动:

  • configServer(172.16.16.120/121/122)配置及服务启动:

编写 /usr/local/mongodb/conf/configServer.conf,将参数都放在该文件中: #vim /usr/local/mongodb/conf/configServer.conf#!/bin/bashsystemLog: destination: file path: "/db/configS/log/configServer.log"#日志存储位置 logAppend: truestorage: journal:#journal配置enabled: true dbPath: "/db/configS/data"#数据文件存储位置 directoryPerDB: true#是否一个库一个文件夹 engine: wiredTiger#数据引擎wiredTiger: #WT引擎配置engineConfig: cacheSizeGB: 6#设置为6G,默认为物理内存的一半 directoryForIndexes: true #是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig:#表压缩配置 blockCompressor: zlibindexConfig: #索引配置 prefixCompression: truenet: #端口配置 port: 30001 #另外两台需要分别修改为30002、30003processManagement: #配置启动管理方式 fork: truesharding:#分片配置 clusterRole: configsvr#分片角色启动configServer:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/configServer.conf
  • mongos(172.16.16.124/125/126/131)配置及服务启动:

编写mongos.conf,将参数都放在该文件中(4台配置文件都一样):#vim /usr/local/mongodb/conf/mongos.conf#!/bin/bashsystemLog:destination: filepath: "/db/mongos/log/mongos.log"logAppend: truenet:port: 50001sharding:configDB: 172.16.16.120:30001,172.16.16.121:30001,172.16.16.122:30001processManagement:fork: true启动mongos:应保证集群中设备的时间都是一样的,否则启动mongos会报错,若不相同,可先搭建一套NTP服务器conf]$ /usr/local/mongodb/bin/mongos -f /usr/local/mongodb/conf/mongos.conf
  • shard1分片+副本集配置及服务启动(172.16.16.124/125/126 ):

#vim /usr/local/mongodb/conf/shard1.conf#!/bin/bashsystemLog: destination: filepath: "/db/shard1/log/shard1.log"#日志存储位置 logAppend: truestorage:journal: #journal配置enabled: true dbPath: "/db/shard1/data"#数据文件存储位置 directoryPerDB: true #是否一个库一个文件夹 engine: wiredTiger #数据引擎wiredTiger:#WT引擎配置engineConfig: cacheSizeGB: 6 #设置为6G,默认为物理内存的一半 directoryForIndexes: true#是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig: #表压缩配置 blockCompressor: zlibindexConfig:#索引配置 prefixCompression: truenet:#端口配置 port: 40001processManagement:#配置启动管理方式 fork: truesharding: #分片配置 clusterRole: shardsvrreplication: replSetName: shard1#配置副本集名称 启动shard1 mongod:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/shard1.conf
  •  shard2分片+副本集配置及服务启动172.16.16.125/126/131 ):

#vim /usr/local/mongodb/conf/shard2.conf#!/bin/bashsystemLog: destination: filepath: "/db/shard2/log/shard2.log"#日志存储位置 logAppend: truestorage:journal: #journal配置enabled: true dbPath: "/db/shard2/data"#数据文件存储位置 directoryPerDB: true #是否一个库一个文件夹 engine: wiredTiger #数据引擎wiredTiger:#WT引擎配置engineConfig: cacheSizeGB: 6 #设置为6G,默认为物理内存的一半 directoryForIndexes: true#是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig: #表压缩配置 blockCompressor: zlibindexConfig:#索引配置 prefixCompression: truenet:#端口配置 port: 40002processManagement:#配置启动管理方式 fork: truesharding: #分片配置 clusterRole: shardsvrreplication:#oplogSizeMB:replSetName: shard2#配置副本集名称启动shard2 mongod:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/shard2.conf
  • shard3分片+副本集配置及服务启动(172.16.16.126/131/124 ):

#vim /usr/local/mongodb/conf/shard3.conf#!/bin/bashsystemLog: destination: filepath: "/db/shard3/log/shard3.log"#日志存储位置 logAppend: truestorage:journal: #journal配置enabled: true dbPath: "/db/shard3/data"#数据文件存储位置 directoryPerDB: true #是否一个库一个文件夹 engine: wiredTiger #数据引擎wiredTiger:#WT引擎配置engineConfig: cacheSizeGB: 6 #设置为6G,默认为物理内存的一半 directoryForIndexes: true#是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig: #表压缩配置 blockCompressor: zlibindexConfig:#索引配置 prefixCompression: truenet:#端口配置 port: 40003processManagement:#配置启动管理方式 fork: truesharding: #分片配置 clusterRole: shardsvrreplication: #oplogSizeMB:replSetName: shard3#配置副本集名称 启动shara3 mongod:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/shard3.conf
  • shard4分片+副本集配置及服务启动(172.16.16.131/124/125 ):

#vim /usr/local/mongodb/conf/shard4.conf#!/bin/bashsystemLog: destination: filepath: "/db/shard4/log/shard4.log"#日志存储位置 logAppend: truestorage:journal: #journal配置enabled: true dbPath: "/db/shard4/data"#数据文件存储位置 directoryPerDB: true #是否一个库一个文件夹 engine: wiredTiger #数据引擎wiredTiger:#WT引擎配置engineConfig: cacheSizeGB: 6 #设置为6G,默认为物理内存的一半 directoryForIndexes: true#是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig: #表压缩配置 blockCompressor: zlibindexConfig:#索引配置 prefixCompression: truenet:#端口配置 port: 40004processManagement:#配置启动管理方式 fork: truesharding: #分片配置 clusterRole: shardsvrreplication: #oplogSizeMB:replSetName: shard4#复制集名 启动shara4 mongod:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/shard4.conf更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-10/124455p2.htm
  • 1
  • 2
  • 下一页
MySQL与MariaDB 新型主从集群配置GTIDMongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比相关资讯      MongoDB集群 
  • MongoDB 搭建分片集群  (今 07:56)
  • MongoDB 3.2 集群搭建  (01月14日)
  • 配置MongoDB3.04集群分片  (07/08/2015 09:32:48)
  • MongoDB集群上副本集(replica set  (04月10日)
  • 搭建基于Docker的MongoDB复制集群  (07/16/2015 15:56:36)
  • 生产环境MongoDB 分片与集群 方案  (05/07/2015 08:53:58)
本文评论 查看全部评论 (0)
表情: 姓名: 字数