Mongodb集群与分片 2
- Shard:使用Replica Sets,来确保数据的可靠性。通过这个方案,可以在每个节点有数据的备份、实现自动控制容错转移和自动恢复
- Config:使用3个配置服务器,确保元数据完整性
- Route:配合LVS,实现负载均衡,提高接入性能。
1、配置集群目录
$ mkdir -p /home/scotte.ye/data/
$ mkdir -p /home/scotte.ye/data/
$ mkdir -p /home/scotte.ye/data/ $ mkdir -p /home/scotte.ye/data/
$ mkdir -p /home/scotte.ye/data/
$ mkdir -p /home/scotte.ye/data/ $ mkdir -p /home/scotte.ye/data/config1
$ mkdir -p /home/scotte.ye/data/config2
$ mkdir -p /home/scotte.ye/data/config3
日志目录:
$ mkdir -p /home/scotte.ye/data/logs
//
$ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data// -port= --nohttpinterface --replSet set1 //
$ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data// -port= --nohttpinterface --replSet set1 //
$ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data// -port= --nohttpinterface --replSet set1
配置集群
$ ./mongo -port
MongoDB shell version: 2.0.
connecting to: 127.0.0.1:/test
>#配置集合1
>#构建参数
>cfg={_id:'set1',
members:[{_id:,host:'192.168.35.106:10001'},
{_id:,host:'192.168.35.106:10002'},
{_id:,host:'192.168.35.106:10003'}]
};
{
"_id":"set1",
"members":[
{
"_id":,
"host":"192.168.35.106:10001"
},
{
"_id":,
"host":"192.168.35.106:10002"
},
{
"_id":,
"host":"192.168.35.106:10003"
}
]
}
>#让参数生效
>rs.initiate(cfg);
{
"info":"Config now saved locally. Should come online in about aminute.",
"OK":
}
>#查看运行状态
>rs.status();
{
"set" : "set1",
"date" : ISODate("2012-02-29T12:02:46Z"),
"myState" : ,
"syncingTo" : "192.168.35.106:10003",
"members" : [
{
"_id" : ,
"name" : "192.168.35.106:10001",
"health" : ,
"state" : ,
"stateStr" : "PRIMARY",
"optime" : {
"t" : ,
"i" :
},
"optimeDate" : ISODate("2012-02-28T13:22:19Z"),
"self" : true
},
{
"_id" : ,
"name" : "192.168.35.106:10002",
"health" : ,
"state" : ,
"stateStr" : "SECONDARY",
"uptime" : ,
"optime" : {
"t" : ,
"i" :
},
"optimeDate" : ISODate("2012-02-28T13:22:19Z"),
"lastHeartbeat" : ISODate("2012-02-29T12:02:45Z"),
"pingMs" :
},
{
"_id" : ,
"name" : "192.168.35.106:10003",
"health" : ,
"state" : ,
"stateStr" : "SECONDARY",
"uptime" : ,
"optime" : {
"t" : ,
"i" :
},
"optimeDate" : ISODate("2012-02-28T13:22:19Z"),
"lastHeartbeat" : ISODate("2012-02-29T12:02:46Z"),
"pingMs" :
}
],
"ok" :
}
配置第二组sets
//
$ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data// -port= --nohttpinterface --replSet set2 //
$ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data// -port= --nohttpinterface --replSet set2 //
$ ./mongod --shardsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data// -port= --nohttpinterface --replSet set2
配置集群
$ ./mongo -port
MongoDB shell version: 2.0.
connecting to: 127.0.0.1:/test
>#配置集合1
>#构建参数
>cfg={_id:'set2',
members:[{_id:,host:'192.168.35.106:10011'},
{_id:,host:'192.168.35.106:10012'},
{_id:,host:'192.168.35.106:10013'}]
};
{
"_id":"set2",
"members":[
{
"_id":,
"host":"192.168.35.106:10011"
},
{
"_id":,
"host":"192.168.35.106:10012"
},
{
"_id":,
"host":"192.168.35.106:10013"
}
]
}
>#让参数生效
>rs.initiate(cfg);
{
"info":"Config now saved locally. Should come online in about aminute.",
"OK":
}
>#查看运行状态
>rs.status();
{
"set" : "set2",
"date" : ISODate("2012-02-29T12:12:46Z"),
"myState" : ,
"syncingTo" : "192.168.35.106:10011",
"members" : [
{
"_id" : ,
"name" : "192.168.35.106:10011",
"health" : ,
"state" : ,
"stateStr" : "PRIMARY",
"optime" : {
"t" : ,
"i" :
},
"optimeDate" : ISODate("2012-02-28T13:22:19Z"),
"self" : true
},
{
"_id" : ,
"name" : "192.168.35.106:10012",
"health" : ,
"state" : ,
"stateStr" : "SECONDARY",
"uptime" : ,
"optime" : {
"t" : ,
"i" :
},
"optimeDate" : ISODate("2012-02-28T13:22:19Z"),
"lastHeartbeat" : ISODate("2012-02-29T12:02:45Z"),
"pingMs" :
},
{
"_id" : ,
"name" : "192.168.35.106:10013",
"health" : ,
"state" : ,
"stateStr" : "SECONDARY",
"uptime" : ,
"optime" : {
"t" : ,
"i" :
},
"optimeDate" : ISODate("2012-02-28T13:22:19Z"),
"lastHeartbeat" : ISODate("2012-02-29T12:02:46Z"),
"pingMs" :
}
],
"ok" :
}
启用config servier
$ ./mongod --configsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/config1/ -port= --nohttpinterface
$ ./mongod --configsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/config2/ -port= --nohttpinterface
$ ./mongod --configsvr --fork -logpath=/home/data/logs/null -dbpath=/home/data/config3/ -port= --nohttpinterface
启用Route server
$ ./mongos -configdb="192.168.35.106:20000,192.168.35.106:20001,192.168.35.106:20002" --fork -logpath=/home/data/logs/null
>#查看是否正常运行
>ps aux|grep mongos|grep -v grep
root 0.0 0.1 ? Sl Feb16 : ./mongos -configdb=192.168.35.106:,192.168.35.106:,192.168.35.106: --fork -logpath=/home/data/logs/null
开始配置Sharding
$ ./mongo -port
MongoDB shell version: 2.0.
connecting to: 127.0.0.1:/test
>#进入管理数据库
>use admin
switched to db admin
>#添加Sharding
> db.runcommand({addshard:'set1/192.168.35.106:10001,192.168.35.106:10002,192.168.35.106:10003'})
{"shardAdded":"set1","ok":}
> db.runCommand({addshard:'set2/192.168.35.106:10011,192.168.35.106:10012,192.168.35.106:10013'})
{"shardAdded":"set2","ok":}
>#让test数据库支持Sharding
>db.runCommand({enablesharding:'test'})
{"ok":}
>#让数据库中的一个集合生效,且根据ID来进行分片
>db.runCommand({shardcollection:'test.user',key:{_id:}})
{"collectionshrded":"test.user","ok":} 注:另外可以通过下面两个命令查看sharding情况:
>db.runCommand({listshards:}
>printShardingStatus();
Mongodb集群与分片 2的更多相关文章
- MongoDB集群搭建-分片
MongoDB集群搭建-分片 一.场景: 1,机器的磁盘不够用了.使用分片解决磁盘空间的问题. 2,单个mongod已经不能满足写数据的性能要求.通过分片让写压力分散到各个分片上面,使用分片服务器自身 ...
- Mongodb集群与分片 1
分片集群 Mongodb中数据分片叫做chunk,它是一个Collection中的一个连续的数据记录,但是它有一个大小限制,不可以超过200M,如果超出产生新的分片. 下面是一个简单的分片集群 ...
- MongoDB集群之分片
原文:点击打开链接 MongoDB分片 分片(sharding)是将数据拆分,将其分散在不同的机器上的过程.MongoDB支持自动分片 片键(shard key)设置分片时,需要从集合里面选一个键,用 ...
- mongodb集群配置分片集群
测试环境 操作系统:CentOS 7.2 最小化安装 主服务器IP地址:192.168.197.21 mongo01 从服务器IP地址:192.168.197.22 mongo02 从服务器IP地址: ...
- mongodb 集群部署--分片服务器搭建
部署分片服务器 1.分片 为了突破单点数据库服务器的I/O能力限制,对数据库存储进行水平扩展,严格地说,每一个服务器或者实例或者复制集就是一个分片. 2.优势 提供类似现行增·长架构 提高数据可用性 ...
- ubuntu docker 下mongodb集群和分片
首先我们计划启动了三个mongo服务:master,salve,arbiter 1.准备工作 新建文件夹如图(每个文件夹下面有db和configdb文件夹): 生成认证文件并修改权限 openssl ...
- MongoDB集群之分片技术应用 —— 学习笔记
课程链接:https://www.imooc.com/learn/501 一.什么是分片? 分片:将数据进行2拆分,将数据水平的分散到不同的服务器上. 二.为什么要分片? 架构上:读写均衡.去中心化 ...
- 搭建高可用mongodb集群(四)—— 分片(经典)
转自:http://www.lanceyan.com/tech/arch/mongodb_shard1.html 按照上一节中<搭建高可用mongodb集群(三)-- 深入副本集>搭建后还 ...
- [转]搭建高可用mongodb集群(四)—— 分片
按照上一节中<搭建高可用mongodb集群(三)—— 深入副本集>搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的 ...
随机推荐
- 使用 Redis 共享 Session 会话
储存模式 1.InProc模式 这是ASP.NET默认的Session管理模式,在应用进程内维护Session. 2.StateServer模式 这是在服务器装了.NET环境后自带的一个StateSe ...
- 前端通信:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码(改迭代已作废,移步迭代10)
该迭代已作废,最新的请移步这里:https://www.cnblogs.com/GerryOfZhong/p/10726306.html 距离上一篇博客书写,又过去了大概几个月了,这段时间暂时离开了这 ...
- CentOS下SSH远程免密登录服务器
.5服务器上配置,通过ssh远程免密登录192. 1.安装SSH,此处省略 2.生成公钥和私钥,生成的秘钥默认在/root/.ssh/文件夹里面 [root@localhost ~ ::&&a ...
- Microsoft.Net 版本
Date Framework Visual Studio C# CLR 2002.2 1.0 Visual Studio 2002 1.0 1.0 2003.4 1.1 Visual Studio 2 ...
- es6学习笔记9--函数的扩展
函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,为了避免这个问题,通常需要先判断一下参数y是否被赋值,如果没有,再等于默认值. ES6允许为函数的参数设置默认值,即直接写在参 ...
- 文档数据库MongoDB
MongoDB是一个基于分布式文件存储的文档式数据库.其由C++编写, 旨在为Web应用提供可扩展的高性能数据存储解决方案. MongoDB中每条数据记录被作为一个文档存储,文档由集合(collect ...
- sscanf函数详解 & 查找文件字符串
1. sscanf函数 sscanf() - 从一个字符串中读进与指定格式相符的数据. 1.1 函数原型 int scanf(const char *format, ...); int fscanf( ...
- ASP.NET Repeater控件实现简单分页
早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pa ...
- WPF备忘录(3)如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter
一.如何从 Datagrid 中获得单元格的内容 DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它的 items. 但是,W ...
- 【MongoDB-MongoVUE图像管理工具】
介绍一款很不错的开源的MongoDB图形化管理工具:MongoVUE . MongoVUE 1.6.9 破解版,下载地址.