单台机器做sharding

--单机配置集群服务(Sharding)
--shard1_1
mongod --install --serviceName MongoDBServerShard1 --serviceDisplayName MongoDBServerShard1 --shardsvr --port 27017 --dbpath "G:\MongoData\shard1_1" --oplogSize 100 --logpath "G:\MongoData\log\shard1_1.log" --logappend --profile=1 --slowms=5 --rest --shard2_1
mongod --install --serviceName MongoDBServerShard2 --serviceDisplayName MongoDBServerShard2 --shardsvr --port 27018 --dbpath "F:\MongoData\shard2_1" --oplogSize 100 --logpath "F:\MongoData\log\shard2_1.log" --logappend --profile=1 --slowms=5 --rest --配置config services(配置shard config)
mongod --install --serviceName MongoDBConfigServer --serviceDisplayName MongoDBConfigServer --configsvr --dbpath "F:\MongoData\config" --port 20000 --logpath "F:\MongoData\log\config.log" --logappend --配置mongos service
比如在172.16.1.86机器上安装如下服务。
mongos --install --serviceName MongoDBMongosServer --configdb 172.16.1.86:20000 --port 30000 --chunkSize 5 --logpath "F:\MongoData\log\mongos.log" --logappend db.runCommand({addshard:"172.16.1.86:27017",allowLocal:true });
db.runCommand({addshard:"172.16.1.86:27018",allowLocal:true });

  

多台机器做sharding & ReplacaSet

http://blog.csdn.net/luonanqin/article/details/8497860

分担读写负载
三台服务器,如果将所有数据分为三片,每一台作为其中一片数据的写入点,其他两个节点进行拷贝,使读写压力在'一定条件'下分布在三台机器。 自动故障转移
在单点损坏条件下,可以立刻将主服务器转换到随机另外一台从属服务器的分片上。不过之前未处理的请求将会被全部抛弃。 灵活配置分片
不设置表分片,表就不会进行分片,会完整保存在该库所在的主Shard中。可以在配置某数据库信息启用分片之后,单独设定某个表的信息在其他分片中分散存储。并设定尽量有规律的分片条件。 动态添加删除
可以在压力接近瓶颈的时候动态的进行分片添加,并设置该服务器为某分片写入点,分散IO压力,也可以在服务器出现异常时,进行分片数据的迁移和分片卸载。在数据库集群运作中时,添加分片,数据自动流入此分片。
在数据库集群运作中时,删除分片,系统立即设置此分片状态 "draining" : true ,之后慢慢将此分片数据转移到其他分片。 实时查看状态
可以在数据库信息设置和信息的CRUD操作时,实时进行数据库状态、数据分片信息、数据状态的监控。

  

-------------------------------------------------
(非集群情况)
--配置单点服务
mongod --logpath "G:\MongoData\log\log.log" --logappend --dbpath "G:\MongoData\db" --directoryperdb --config "E:\Program Files\MongoDB\Server\3.0\bin\mongod.cfg" --install --------------------------------------------------
(集群情况)
--配置集群服务(3个机器,每台都装2个shard) --shard1_1
mongod --install --serviceName MongoDBServerShard1 --serviceDisplayName MongoDBServerShard1 --shardsvr --replSet shard1 --port --dbpath "G:\MongoData\shard1_1" --oplogSize --logpath "G:\MongoData\log\shard1_1.log" --logappend --profile= --slowms= --rest --shard2_1
mongod --install --serviceName MongoDBServerShard2 --serviceDisplayName MongoDBServerShard2 --shardsvr --replSet shard2 --port --dbpath "F:\MongoData\shard2_1" --oplogSize --logpath "F:\MongoData\log\shard2_1.log" --logappend --profile= --slowms= --rest --在其中一台上配置Config
config = {_id: "shard1", members: [
{_id: , host: "17.16.1.86:27017"},
{_id: , host: "17.16.1.89:27017"},
{_id: , host: "17.16.1.90:27017"}]
}
rs.initiate(config) config = {_id: "shard2", members: [
{_id: , host: "17.16.1.86:27018"},
{_id: , host: "17.16.1.89:27018"},
{_id: , host: "17.16.1.90:27018"}]
} rs.initiate(config) rs.status() /*暂时不这么使用
config = { _id:"shard1", members:[
{_id: 0, host: "17.16.1.86:27017",priority:2},
{_id: 1, host: "17.16.1.89:27017",priority:1},
{_id: 2, host: "17.16.1.90:27017",arbiterOnly:true}]};
rs.initiate(config) config = { _id:"shard2", members:[
{_id: 0, host: "17.16.1.86:27018",priority:2},
{_id: 1, host: "17.16.1.89:27018",priority:1},
{_id: 2, host: "17.16.1.90:27018",arbiterOnly:true}]};
rs.initiate(config) */ --配置config services(配置shard config,在三台机器上)
mongod --install --serviceName MongoDBConfigServer --serviceDisplayName MongoDBConfigServer --configsvr --dbpath "F:\MongoData\config" --port --logpath "F:\MongoData\log\config.log" --logappend --配置mongos service(可在一台或多台机器配置)
比如在172.16.1.86机器上安装如下服务。
mongos --install --serviceName MongoDBMongosServer --configdb 17.16.1.86:,17.16.1.89:,17.16.1.90: --port --chunkSize --logpath "F:\MongoData\log\mongos.log" --logappend 访问的时候mongo 17.16.1.86: --2个分片已经设置好,在mongos控制台的admin数据库下,执行下面的代码,添加分片。
mongo 17.16.1.86:
db.runCommand({addshard:"shard1/17.16.1.86:27017,17.16.1.89:27017,17.16.1.90:27017",name:"s1",maxsize:});
db.runCommand({addshard:"shard2/17.16.1.86:27018,17.16.1.89:27018,17.16.1.90:27018",name:"s2",maxsize:});
其他命令
———————————————————— 允许数据库中的内容被分片
db.runCommand({enablesharding:"test"}) 设定表分片与分片规则,作为分片规则的key,必须为该表索引。
db.runCommand({shardcollection:"teset.user",key:{id:1, email:1, regtime:1}}) 查看数据库状态
db.stats() 查看表状态
db.tableName.stats() 查看所有分片信息状态
db.printShardingStatus(); 删除分片,删除分片命令执行后,mongos将不再写入该分片数据,同时会将数据迁移到其他分片,这个过程需要一段时间,此时查看db.printShardingStatus();,该分片状态为"draining" : true。
但是由于bug,会一直处于此状态下。需要在人工确定已无数据在此分片后,在mongos中进入config数据库执行db.shards.remove({draining:true}),删除掉该分片。
db.runCommand({removeshard : "shard1/17.16.1.86:27017,17.16.1.89:27017,17.16.1.90:27017"}); 使Primary降为Secondary,每一个分片,都是一组副本集,1主2从,设置时自动选举,如果不符合写入压力分散的需求,可以将该主库降级,2个从属会随机选择一个重新为主。
rs.stepDown() 手动移动碎片
http://www.mongodb.org/display/DOCS/Moving+Chunks

--备份
mongodump -h localhost:27020 -d ssr2016db -o G:\MongoData\dump
mongodump -h localhost:27020 -d ssr2016pointsdb -o G:\MongoData\dump

--恢复
mongorestore -h localhost:30000 -d ssr2016db G:\MongoData\dump\ssr2016db
mongorestore -h localhost:30000 -d ssr2016pointsdb G:\MongoData\dump\ssr2016pointsdb

  

MongoDB ReplacaSet & Sharding集群安装 配置 和 非集群情况的安装 配置 -摘自网络的更多相关文章

  1. Mongodb中Sharding集群

    随着mongodb数据量的增多,可能会达到单个节点的存储能力限制,以及application较大的访问量也会导致单个节点无法承担,所以此时需要构建集群环境,并通过sharding方案将整个数据集拆分成 ...

  2. CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)

    首先说一下,无论是CentOS/RedHat还是Ubuntu都可以按源码方式.安装包方式编译安装. 1.   规划 192.168.4.93(h93)       1个主master  2个主segm ...

  3. rabbitmq安装与高可用集群配置

    rabbitmq版本:3.6.12 rabbitmq安装 1.安装openssl wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz &a ...

  4. Linux系统下安装Redis和Redis集群配置

    Linux系统下安装Redis和Redis集群配置 一. 下载.安装.配置环境: 1.1.>官网下载地址: https://redis.io/download (本人下载的是3.2.8版本:re ...

  5. S1_搭建分布式OpenStack集群_03 Mysql、MQ、Memcached、ETCD安装配置

    一.安装mysql(contorller)controller ~]# yum -y install mariadb mariadb-server python2-PyMySQL 配置my.cnf文件 ...

  6. 一步一步安装配置Ceph分布式存储集群

    Ceph可以说是当今最流行的分布式存储系统了,本文记录一下安装和配置Ceph的详细步骤. 提前配置工作 从第一个集群节点开始的,然后逐渐加入其它的节点.对于Ceph,我们加入的第一个节点应该是Moni ...

  7. 大数据高可用集群环境安装与配置(09)——安装Spark高可用集群

    1. 获取spark下载链接 登录官网:http://spark.apache.org/downloads.html 选择要下载的版本 2. 执行命令下载并安装 cd /usr/local/src/ ...

  8. 大数据高可用集群环境安装与配置(06)——安装Hadoop高可用集群

    下载Hadoop安装包 登录 https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 镜像站,找到我们要安装的版本,点击进去复制下载链接 ...

  9. 【无网条件下】Linux系统、jdk、redis及集群、rabbitmq、nginx、weblogic和oracle安装及配置

    本篇文章为原创,仅供参考使用,如果需要文章中提到的所有软件安装包和依赖包(即data),请以博客园邮箱联系获取链接. 准备资料 软件 主要软件包版本 路径 系统镜像 CentOS-6.10-x86_6 ...

随机推荐

  1. Redis问题MISCONF Redis is configured to save RDB snapshots....

    Redis问题MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on di ...

  2. Android设备广告投放解决方案——大量网络图片、多个网络视频的轮播、缓存与更新

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7742996.html 一:业务场景 基于Android系统的设备上投放广告,诸如:地铁广告屏.自助服务机器上的 ...

  3. Objecttive-C各种问题

    1.invalid argument type 'void' to unary expression @try{ if (![mJQFMDB open]) { NSLog(@"Could n ...

  4. Android网络编程(一)HTTP协议原理

    相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley使用方法全解析 A ...

  5. 7、java5线程池之单一线程池newSingleThreadExecutor

    JDK文档说明: 创建一个使用单个 worker 线程的 Executor,以无界队列方式来运行该线程.(注意,如果因为在关闭前的执行期间出现失败而终止了此单个线程,那么如果需要,一个新线程将代替它执 ...

  6. urllib2特点--urllib2.Request对象,定制请求头部信息

    # -*- coding: cp936 -*- #python 27 #xiaodeng #urllib2特点--urllib2.Request对象,定制请求 import urllib2 def r ...

  7. mingw 构建 Geos

    简述 在做某个小程序时候用到了QT,而用的Qt是mingw版本的,所以使用mingw构建了一下geos库. 1.准备工作 首先需要先安装好mingw,这里直接使用http://www.mingw-w6 ...

  8. Jenkins执行批处理文件失败

    今天搭建Jenkins持续集成环境,编译环境是.net,在.net下没有比较好的代码覆盖率测试插件,所以用了开源的OpenCover,计算代码覆盖率,然后用ReportGenerator导出hmtl格 ...

  9. 设置mysql group_concat长度

    #在MySQL配置文件(my.ini)中默认无该配置项,使用默认值时,值为1024,可在客户端执行下列语句修改: #SET GLOBAL group_concat_max_len = 1024; #该 ...

  10. IBatis.Net 视频教程 原创教程

    IBatis.Net 视频教程 列文件:共21个 Ibatis.Net 第01课 了解 和下载.avi Ibatis.Net 第02课 搭建简单三层项目 引入Ibatis.avi ibatis.net ...