快速搭建MongoDB分片集群
最近一直在搭建MongoDB,写的搭建指导书一直没有时间完善,今天先写一篇快速搭建的方法,后续再补充完整的。按照这个方法,在一台机器上可以快速的完成分片、副本集、1个config和1个router的搭建,并以keyfile的加密方式启动进程来提供服务。
1、创建用户
# groupadd -g 20001 mongodb
# useradd -u 20001 -g mongodb mongodb
# passwd mongodb
2、创建数据目录和日志目录
# mkdir -p /export/servers/mongodb
# mkdir -p /export/servers/mongodb/shardserver1/shard1/replcaset1
# mkdir -p /export/servers/mongodb/shardserver1/shard1/log
3、解压mongoDB安装包
# tar -xzvf mongodb-linux-x86_64-2.4.3.tgz
# cp -R -p mongodb-linux-x86_64-2.2.4/* /export/servers/mongodb/
4、启动数据服务器
# ./mongod --shardsvr --replSet shard1 --port 18010 --oplogSize 100 \
--dbpath /export/servers/mongodb/shardserver1/shard1/replcaset1 \
--logpath /export/servers/mongodb/shardserver1/shard1/log/shard1_replcaset1.log \
--logappend --fork --rest
5、初始化分片集的成员(即副本集成员)
# ./mongo admin -port 18010
MongoDB shell version: 2.4.3
connecting to: 127.0.0.1:18010/admin
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
>config_s1 = {_id:"shard1",members:[{_id:0,host:"127.0.0.1:18010"}]} //这里只有一个成员,只添加一个
{
"_id" : "shard1",
"members" : [
{
"_id" : 0,
"host" : "127.0.0.1:18010"
}
]
}
> rs.initiate(config_s1);
{
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}
6、创建日志文件
# mkdir -p/export/servers/mongodb/log
7、配置config server
# mkdir -p /export/servers/mongodb/configserver
8、启动config server(非安全模式)
# ./mongod --configsvr --dbpath /export/servers/mongodb/configserver \ --port 40000 --logpath /export/servers/mongodb/configserver/config.log \ --logappend -fork --rest
9、启动router(非安全模式)
# ./mongos --configdb 127.0.0.1:40000 --port 50000 --chunkSize 5 \ --logpath /export/servers/mongodb/log/route.log --logappend --fork
10、添加对应数据库的用户名和密码
# ./mongo --port 50000
MongoDB shell version: 2.4.3
connecting to: 127.0.0.1:50000/test
mongos> use admin
switched to db admin
mongos>db.addUser("admin","admin")
{
"user" : "admin",
"readOnly" : false,
"pwd" : "7c67ef13bbd4cae106d959320af3f704",
"_id" : ObjectId("51ad80e1174d0d05b35dca0f")
}
mongos> db.runCommand({addshard:"shard1/127.0.0.1:18010"})
{ "shardAdded" : "shard1", "ok" : 1 }
mongos> db.runCommand({addshard:"shard2/127.0.0.1:18030"})
{ "shardAdded" : "shard2", "ok" : 1 }
mongos> use test_demo
witched to db test_demo
mongos> db.addUser("sa","sa")
{
"user" : "sa",
"readOnly" : false,
"pwd" : "7e4236991eace9765c3184c2f2e004fa",
"_id" : ObjectId("51ad8187b438ccf427ee2da3")
}
mongos>exit
到这里,非安全模式已经可以启动mongoDB了,不过还没有完,通常自己测试使用时都是使用auth模式就可以了,很少会用到keyfile的方式,在正式的web部署环境中,都是使用的keyfile的方式,这样的方式更安全一些。
11、生成keyfile文件(符合base64格式)
touch /export/servers/mongodb/keyfile echo "`openssl rand -base64 753`" > /export/servers/mongodb/keyfile chmod 600 /export/servers/mongodb/keyfile cp -R -p /export/servers/mongodb/keyfile /export/servers/mongodb/keyfile1 cp -R -p /export/servers/mongodb/keyfile /export/servers/mongodb/keyfile2 cp -R -p /export/servers/mongodb/keyfile /export/servers/mongodb/keyfile3
有人会问,为什么这里要生成三个文件呢?在一台服务器上三个进程用同一个keyfile是没有问题的,但我在配置多台服务器集群时,发现使用一个文件时也是报了LOCK失败的告警的,所以这里才会使用每个进程不同的文件,文件内容其实是一样的,就是为了规避这个问题。
到此,搭建已经完成了,如果觉得一堆参数启动很麻烦,可以使用SHELL脚本或conf配置文件的方式启动,虽然两种方式我都在使用,但我个人推荐后者,具体配置这里不再详述。
转载于:https://blog.51cto.com/mickjoust/1317573
快速搭建MongoDB分片集群相关推荐
- 搭建MongoDB分片集群
在部门服务器搭建MongoDB分片集群,记录整个操作过程,朋友们也可以参考. 计划如下: 用5台机器搭建,IP分别为:192.168.58.5.192.168.58.6.192.168.58.8.19 ...
- DOCKER-COMPOSE搭建MONGODB分片集群(单机版)
docker-compose搭建mongodb分片集群(单机版) - 丰哥坑到 - 博客园
- MongoDB——MongoDB分片集群(Sharded Cluster)两种搭建方式
MongoDB分片集群(Sharded Cluster)两种搭建方式 MongoDB分片的概念 分片集群包含的组件 分片集群架构目标 MongoDB分片集群搭建 第一套副本集 第二套副本集 配置节点副 ...
- 实战:MongoDB 分片集群Shard Cluster 搭建(1台路由节点,3台配置节点,9台分片节点)
MongoDB 分片集群搭建(分片集群安全认证+SpringBoot访问) 一.搭建要求 一台路由节点 IP地址:192.168.80.110 端口:11111 三套复制集(每个分片节点中的复制集 都 ...
- MongoDb分片集群认证
本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html), Mong ...
- mongodb 启动_精心总结--mongodb分片集群启动与关闭
概述 网上教程有点坑啊,很多bug,今天刚好涉及到所以抽空整理了下mongodb分片集群启动与关闭方面的教程.希望对大家有点帮助. 基础环境配置 192.168.240.145 测试Nosql服务器1 ...
- 2021-05-12 MongoDB面试题 什么是MongoDB分片集群
什么是MongoDB分片集群? Sharding cluster是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建.sharding分片很好的解决了单台服务器磁盘空 ...
- TiDB和MongoDB分片集群架构比较
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近阅读了TiDB源码的说明文档,跟MongoDB的分片集群做了下简单对比. 首先展示TiDB的整体架构 M ...
- Docker中搭建redis分片集群,搭建redis哨兵结构,实现springboot中对redis分片集群、哨兵结构的访问,Redis缓存雪崩、缓存击穿处理(非关系型数据库技术课程 第十二周)
文章目录 一.要求: 二.知识总结 缓存雪崩 解决方案 docker中redis分片集群搭建 配置好配置文件 redis-6380.conf redis-6381.conf redis-6382.co ...
- mongodb分片集群突然停电造成一些错误,分片无法启动
今天突然停电使mongodb分片集群造成这种错误,暂时不知道怎么解决,如果 有人知道请回复我 ,现在把记录下来,等后期处理. Fri Aug 8 10:49:52.165 [initandliste ...
最新文章
- U盘安装 CentOS 7
- 发送邮件程序报错454 Authentication failed以及POP3和SMTP简介
- linux下Qt cannot find -lGL错误的解决方法
- 领导给了一堆无序杂乱的数据,我写了个Python自动化脚本
- 未来互联网还有哪些值得关注的趋势?
- 使用Rotativa在ASP.NET Core MVC中创建PDF
- kettle官网下载地址
- linux 安装.gz文件,linux安装gz文件命令
- Axure简易计算器
- android mtk wifi 移植,【搬运】 MTK手机移植ROM及修复部分bug教程(含跨CPU)
- hdu 4966 GGS-DDU 最小树形图
- marttype加载到word中不能用_WSTMart三级分销系统是怎么接入支付宝支付的
- 摄像头poe供电原理_POE交换机、POE分离器供电原理及注意问题
- 内网渗透-代理篇(reGeorg+Proxifier代理工具)
- pass all options of select from View to controller
- OAuth2.0,CodeChallenge的生成问题
- aizu/aoj-0118-Property Distribution
- 视音频素材网站推荐及整理供大家参考
- 网络 || 路由 || arp协议
- 手机端预览pdf的那些事
热门文章
- vfp生成菜单时文件不存在_手把手教你搞定权限管理,结合Vue实现菜单的动态权限控制!...
- php html5 应用缓存,HTML5 应用程序缓存
- oracle中表为啥会死锁,Oracle数据表中的死锁情况解决方法
- 又一轮子?Typescript+React+Redux,放弃saga,支持服务器渲染同构
- 使用webbench进行压力测试
- infiniband, fiber channel,RDMA
- ReentrantLock及AQS浅谈
- Android系统移植与调试之-------如何修改Android手机显示的4G信号强度的格子数
- c++primer 容器算法整理一
- 下十页分页php,织梦二次开发实现栏目分页前十页后十页功能