MongoDB分片集群搭建
来源:互联网 发布:淘宝上好的汉元素店家 编辑:程序博客网 时间:2024/04/30 10:53
- 系统架构图
- 准备12台机器
10.202.12.178(主1)
10.202.12.179(备1)
10.202.12.180(主2)
10.202.12.181(备2)
10.202.12.182(主3)
10.202.12.183(备3)
10.202.12.184(主4)
10.202.12.185(备4)
10.202.12.186(仲裁1、路由1、配置1)
10.202.12.189(仲裁2、路由2、配置2)
10.202.12.192(仲裁3、路由3、配置3)
10.202.12.194(仲裁4) - 分别在每台机器上建立mongodb分片对应测试文件夹
在10.202.12.178上创建文件夹 mkdir -p /app/mongo/shard1/master/{data,log,conf}在10.202.12.179上创建文件夹 mkdir -p /app/mongo/shard1/slave/{data,log,conf}在10.202.12.180上创建文件夹 mkdir -p /app/mongo/shard2/master/{data,log,conf}在10.202.12.181上创建文件夹 mkdir -p /app/mongo/shard2/slave/{data,log,conf}在10.202.12.182上创建文件夹 mkdir -p /app/mongo/shard3/master/{data,log,conf}在10.202.12.183上创建文件夹 mkdir -p /app/mongo/shard3/slave/{data,log,conf}在10.202.12.184上创建文件夹 mkdir -p /app/mongo/shard4/master/{data,log,conf}在10.202.12.185上创建文件夹 mkdir -p /app/mongo/shard4/slave/{data,log,conf}在10.202.12.186、10.202.12.189、10.202.12.192上分别创建文件夹mkdir -p /app/mongo/shard/mongos/{data,log,conf}mkdir -p /app/mongo/shard/config/{data,log,conf}mkdir -p /app/mongo/shard/arbiter/{data,log,conf}在10.202.12.194上创建文件夹mkdir -p /app/mongo/shard/arbiter/{data,log,conf}
- 在10.202.12.186、10.202.12.189、10.202.12.192上分别启动配置服务器
./mongod --configsvr --dbpath /app/mongo/shard/config/data --port 27019 --logpath /app/mongo/shard/config/log/config.log --fork
- 在10.202.12.186、10.202.12.189、10.202.12.192上分别启动mongos服务器
./mongos --configdb10.202.12.186:27019,10.202.12.189:27019,10.202.12.192:27019--port 27018 --logpath /app/mongo/shard/mongos/log/mongos.log --fork
- 配置各个分片的副本集
vi /app/mongo/shard1/master/conf/mongod.conf(10.202.12.178)
#数据目录dbpath=/app/mongo/shard1/master/data#日志目录logpath=/app/mongo/shard1/master/log/mongod.log#日志以追加方式添加logappend=true#为每一个数据库按照数据库名建立文件夹存放directoryperdb=true # 开启后台进程运行fork = true#IPbind_ip=10.202.12.178#端口port = 27017#副本集名称replSet=shard1
vi /app/mongo/shard1/slave/conf/mongod.conf(10.202.12.179)
#数据目录dbpath=/app/mongo/shard1/slave/data#日志目录logpath=/app/mongo/shard1/slave/log/mongod.log#日志以追加方式添加logappend=true#为每一个数据库按照数据库名建立文件夹存放directoryperdb=true # 开启后台进程运行fork = true#IPbind_ip=10.202.12.179#端口port = 27017#副本集名称replSet=shard1
vi /app/mongo/shard/arbiter/conf/mongod.conf(10.202.12.186)
#数据目录dbpath=/app/mongo/shard/arbiter/data#日志目录logpath=/app/mongo/shard/arbiter/log/mongod.log#日志以追加方式添加logappend=true#为每一个数据库按照数据库名建立文件夹存放directoryperdb=true # 开启后台进程运行fork = true#IPbind_ip=10.202.12.186#端口port = 27017#副本集名称replSet=shard1
其它三个分片的配置类似
- 分别在每台机器上启动mongodb
./mongod -f /app/mongo/shard1/master/conf/mongod.conf
登陆10.202.12.178,连接mongodb#设置第一个分片副本集./mongo 10.202.12.178#使用admin数据库use admin#定义副本集配置config = { _id:"shard1", members:[ {_id:0,host:"10.202.12.178:27017"}, {_id:1,host:"10.202.12.179:27017"}, {_id:2,host:"10.202.12.186:27017",arbiterOnly:true} ] }#初始化副本集配置rs.initiate(config);
其它三个分片类似
- 配置路由服务器
目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到 mongos 路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效
#连接到mongos
./mongo 10.202.12.186:27018#使用admin数据库user admin#串联路由服务器与分配副本集1db.runCommand( { addshard : "shard1/10.202.12.178:27017,10.202.12.179:27017,10.202.12.186:27017"});#串联路由服务器与分配副本集2db.runCommand( { addshard : "shard2/10.202.12.180:27017,10.202.12.181:27017,10.202.12.189:27017"});#串联路由服务器与分配副本集3db.runCommand( { addshard : "shard3/10.202.12.182:27017,10.202.12.183:27017,10.202.12.192:27017"});#串联路由服务器与分配副本集4db.runCommand( { addshard : "shard4/10.202.12.184:27017,10.202.12.185:27017,10.202.12.194:27017"});#查看分片服务器的配置db.runCommand( { listshards : 1 } );
- 配置分片规则
目前配置服务、路由服务、分片服务、副本集服务都已经串联起来了,但我们的目的是希望插入数据,数据能够自动分片,连接在mongos上,准备让指定的数据库、指定的集合分片生效
指定countly数据库分片生效db.runCommand( { enablesharding :"countly"});指定数据库里需要分片的集合和片键db.runCommand( { shardcollection : "countly.user",key : {id: 1} } )
0 0
- MongoDB 分片集群搭建
- mongodb集群搭建-分片
- MongoDB分片集群搭建
- mongodb 集群分片搭建
- 快速搭建MongoDB分片集群
- mongodb分片集群的搭建
- MongoDB分片实战(一):集群搭建
- mongodb分片集群搭建与测试
- MongoDB分片实战(一):集群搭建
- MongoDB分片实战(一):集群搭建
- 搭建mongodb集群(副本集+分片)
- MongoDB分片实战(一):集群搭建
- 搭建mongodb集群(副本集+分片)
- MongoDB分片实战(一):集群搭建
- 搭建mongodb集群(副本集+分片)
- MongoDB分片实战(一):集群搭建
- 搭建高可用mongodb集群-Sharding 分片
- Mongodb分片高可用集群搭建
- 使用createNativeQuery做原始的字段映射处理
- Matlab将多张图片显示在一个窗口上
- windows下教你如何用程序代码打开默认浏览器打开网页(方法之一)
- Java随机产生四位验证码
- Wireshark命令行工具tshark使用小记
- MongoDB分片集群搭建
- 数据结构(C++) 二叉树模板类<链表存储表示>
- 图像检索:几类基于内容的图像分类技术
- UE4-蓝图基础:流程控制
- virt-viewer的简单使用
- Android之获取sd卡空间
- 树形结构的调试打印
- Android Camera 从上到下 各个分支的逻辑
- flask部署:Apache+mod_wsgi+python+virtualenv