MongoDB add sharding -- Just a note
1. Configure Configuration Server.
1.1. Create a directory: e.g. C:\data\dbs\config
1.2. Start config server
mongod --dbpath c:\data\dbs\config --port 20000
2. Start mongos connecting to config server
mongos --port 30000 --configdb localhost:20000
3. Create two shards
3.1 Create shard 1
3.1.1 Create folder - C:\data\dbs\shard1
3.1.2 mongod --dbpath c:\data\dbs\shard1 --port 10000
3.2 Create shard 2
3.2.1 Create folder - C:\data\dbs\shard2
3.2.2 mongod --dbpath c:\data\dbs\shard2 --port 10001
4. Add shard to mongos
4.1 Connect to mongos
mongo localhost:30000/admin
MongoDB shell version: 2.4.4
connecting to: localhost:30000/admin
mongos>
4.2. Add shard
mongos> db.runCommand({addShard:"localhost:10000", allowLocal:true})
{ "shardAdded" : "shard0000", "ok" : 1 }
mongos> db.runCommand({addShard:"localhost:10001", allowLocal:true})
{ "shardAdded" : "shard0001", "ok" : 1 }
5. Enable sharding on database (e.g. test)
mongos> db.runCommand({"enablesharding":"test"})
{ "ok" : 1 }
6. Enable sharding on collection
mongos> db.runCommand({"shardcollection":"test.gem_deal_data", "key":{"_id":1}})
{ "collectionsharded" : "test.gem_deal_data", "ok" : 1 }
Then can use sharding in the application code. For example,
import pymongo class MongoDb(object):
def __init__(self, host='localhost', port=27017):
self.conn = pymongo.MongoClient(host, port)
self.db = self.conn.test def close(self):
self.conn.close() def open_connection():
# Specify the port 30000 to connect to mongos
conn = pymongo.MongoClient('localhost', 30000)
return conn.db
7. (Updated on 2014-11-10)
If you want to shard the GridFS collection, please refer to http://docs.mongodb.org/manual/tutorial/shard-gridfs-data/
Quick Notes:
* files collection is usually small in size, thus no need to shard this collection in general
* chunks collection
{files_id:1, n:1} and {files_id:1} are the only supported shard keys for the chunk collections of a GridFS store.
To shard the chunks collection by {files_id:1, n:1}, issue commands similar to the following:
** db.fs.chunks.ensureIndex({files_id:1, n:1}) <--- Maybe not need to create this manually, some driver like Pymongo would create this index automatically.
** db.runCommand({shardCollection:"test.fs.chunks", key:{files_id:1, n:1}})
You may also want to shard using just the file_id field, as in the following operation:
db.runCommand({shardCollection:"test.fs.chunks", key:{files_id:1}})
MongoDB add sharding -- Just a note的更多相关文章
- MongoDB分片(sharding)
1.概念 分片(sharding)是指将数据拆分,将其分散存在不同的机器上的过程.有时也用分区(partitioning)来表示这个概念.将数据分散到不同的机器上,不需要功能强大的大型计算机就可以储存 ...
- Mongodb中Sharding集群
随着mongodb数据量的增多,可能会达到单个节点的存储能力限制,以及application较大的访问量也会导致单个节点无法承担,所以此时需要构建集群环境,并通过sharding方案将整个数据集拆分成 ...
- MongoDB ReplacaSet & Sharding集群安装 配置 和 非集群情况的安装 配置 -摘自网络
单台机器做sharding --单机配置集群服务(Sharding) --shard1_1 mongod --install --serviceName MongoDBServerShard1 --s ...
- 2.mongoDB add user in v3.0 问题的解决(Property 'addUser' of object admin is not a func)
问题:创建mongodb帐户时,出错 > db.addUser('jyu', 'aerohive') 2015-08-05T20:03:02.767+0800 E QUERY TypeE ...
- Mongodb Sharding 集群配置
mongodb的sharding集群由以下3个服务组成: Shards Server: 每个shard由一个或多个mongod进程组成,用于存储数据 Config Server: 用于存储集群的M ...
- MongoDB sharding cluster Step by Step
本篇讲述MongoDB的 Sharding Cluster 的详细步骤,按着做理论上不会有什么错误. 关于说着里边的参数.变量.和设置,没有用到很多,只用到了关键的一些,其他的可以参考MongoDB的 ...
- MongoDB高可用架构:Replica Sets+Sharding
MongoDB的sharding解决了海量存储和动态扩容的问题.但是遇到单点故障就显得无能为力了.MongoDB的副本集可以很好的解决单点故障的问题.所以就有了Sharding+Replica Set ...
- MongoDB Sharding 机制分析
MongoDB Sharding 机制分析 MongoDB 是一种流行的非关系型数据库.作为一种文档型数据库,除了有无 schema 的灵活的数据结构,支持复杂.丰富的查询功能外,MongoDB 还自 ...
- mongodb 3.0 版本分片部署步骤
# linux 网络优化 1. 文件中/etc/sysctl.conf, 加入 net.core.somaxconn = 2048 fs.file-max = 2000000 fs.nr_open = ...
随机推荐
- listView/GridView getChild获取不到的解决方法
在onCreate或onResume中调用了getChildAt()方法,这时候adapter中的Item还没有放入到AdapterView中去.... 解决方法,当activity获得焦点事件的时候 ...
- C#.NET常见问题(FAQ)-如何把函数名作为参数传递给另一个函数
在主窗体中使用的还是普通的函数,但是test函数有一个新的参数,就是method 这个method所指向的就是前面委托定义的method 更多教学视频和资料下载,欢迎关注以下信息: 我的优 ...
- 火狐浏览器Firefox Firebug使用方法
什么是Firebug 从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求.要写出漂亮的HTML代码:要编写精致的CSS样式表展示每个页面模块:要调试javascript给页面增加一些 ...
- Discuz常见大问题-如何DIY一个独立页面
首先参考Discuz如何自定义单个页面的文章,确保你已经能做一个"关于我们"这种纯HTML静态页面(只有文字和静态图片描述).其次参考下面的文件修改原来的htm文件 注意我用红色标 ...
- Electron 入门案例1
1:package.json 通过npm init生成package.json文件,内容如下: { "name": "t02", "version&q ...
- [模式识别].(希腊)西奥多里蒂斯<第四版>笔记5之__特征选取
1,引言 有关模式识别的一个主要问题是维数灾难.我们将在第7章看到维数非常easy变得非常大. 减少维数的必要性有几方面的原因.计算复杂度是一个方面.还有一个有关分类器的泛化性能. 因此,本章的主要任 ...
- Excel还是那些事
文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言.评论
- MySQL 联合索引测试2
接上一篇文章: http://www.cnblogs.com/xiaoit/p/4430300.html 1:首先删掉上一篇建立的索引,重新建立一个. mysql> DROP INDEX idx ...
- 实现 1像素border
border-1px($color) position: relative &:after display: block position: absolute left: 0 bottom: ...
- setting.xml配置详解
http://blog.csdn.net/uohzoaix/article/details/7035302 http://www.micmiu.com/software/build/maven-set ...