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 = ...
随机推荐
- PyQt5教程——第一个程序(2)
用PyQt5写的第一个程序 在这篇PyQt5教程中,我们可以学习一些PyQt5的基础应用. 简单的例子 这是一个显示一个小窗口的简单例子.我们可以做许多这样的窗口.我们可以调整它的窗口尺寸,最大化或最 ...
- 线性表 顺序存储 链式存储 ---java实现
首先抽象出一个线性表抽象类(包括主要的增删操作) public abstract class MyAbstractList<E> { public abstract void add(E ...
- openerp发送给群组信息
发送给群组 self.pool.get('mail.group').message_post(cr, uid, [1], body=_('Welcome to ! Please ...
- How to set up OpenERP for various timezone kindly follow the following steps to select timezone in OpenERP
How to set up OpenERP for different Time Zones Click on the "Edit Preferences" wheel a ...
- C-main函数剖析。
对于main函数.我想不论什么一个接触到C语言的都不会陌生,可是说起main()函数有參数,你可能会产生非常多疑问了. 首先,我们来看下msdn,这个里面对main()函数有具体的说明. 在这里,我们 ...
- 关于html中的doctype的重要性的认知以及IE的浏览器模式与文档模式
浏览器模式”用于切换IE针对该网页的默认文档模式.对不同版本浏览器的条件备注解析.发送给网站服务器的用户代理(User-Agent)字符串的值.网站可以根据浏览器返回的不同用户代理字符串判断浏览器的版 ...
- windows登陆密码破解方法之一
网上的一些人让别人进入命令提示符安全模式,我比较奇怪如果没有密码怎么进去?能进去干嘛还要进去? 本笨方法的原理主要是利用登陆界面的一些程序入口,把它当成后门来使用,比如win7登陆界面上除了输密码的地 ...
- redhat利用yum快速搭建LAMP环境
LAMP LAMP环境,对于PHP开发及其开源的PHP项目的部署都很关键的. LAMP的含义: L ---Linux A ---Apache web M ---Mysql datab ...
- java随机函数使用方法Random
import java.util.Random; public class RandomNumber{ public static void main(String[] args) { // 使用ja ...
- 关于PHP中的opcode
简介 1.当Zend engine解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode),opcode是一个四元组,(opcode, ...