单台机器做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. bat 十进制转16进制

    @echo offset code=0123456789ABCDEF:enterset /p num=输入你要转换的十进制数字:echo %num%|findstr "[^0-9]" ...

  2. Spring学习笔记一:基础概念

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6774310.html    一:Spring是什么 Spring的主要作用是作为对象的容器. 传统编程中,我们 ...

  3. JDBC编程之预编译SQL与防注入式攻击以及PreparedStatement的使用教程

      转载请注明原文地址: http://www.cnblogs.com/ygj0930/p/5876951.html 在JDBC编程中,常用Statement.PreparedStatement 和  ...

  4. C#/Asp.Net 获取各种Url的方法

    比如有:http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2 Response.Wri ...

  5. cocos2d-js 在线更新代码脚本 动态更新脚本程序 热更新 绕过平台审核 不需重新上架

    2014年8月15日补充 cocos2d-js 3.0 rc0 的AssetsManager有缺陷,有一些注意点:(可以阅读源代码发现) 1.旧manifest中有,但新manifest中没有的文件( ...

  6. optimizer_mode优化器模式

    查询优化器最主要的工作就是接受输入的SQL以及各种环境参数.配置参数,生成合适的SQL执行计划(Execution Plan). Query Optimizer一共经历了两个历史阶段: RBO: Ru ...

  7. Knockout学习之文本和外观绑定器

    文本和外观绑定器 “visible”绑定 该绑定主要用来让我们通过监控属性可以控制html文档的显示,只要绑定的监控属性为false.0.null或者undefined则隐藏该标签,否则显示.比如下面 ...

  8. libvlc_new 调用产生段错误

    在调试程序的时候,碰到一个奇怪的段错误问题.只要链接的时候使用-Wl,-rpath=./vlc/lib就会产生段错误,如果链接的时候使用的是-Wl,-rpath=../../tool/vlc/lib则 ...

  9. 编程填空:第i位取反

    总时间限制: 1000ms 内存限制: 1024kB描述写出函数中缺失的部分,使得函数返回值为一个整数,该整数的第i位是n的第i位取反,其余位和n相同 请使用[一行代码]补全bitManipulati ...

  10. Ubuntu创建新用户并增加管理员权限(授权有问题)

    转自:Ubuntu创建新用户并增加管理员权限 $是普通管员,#是系统管理员,在Ubuntu下,root用户默认是没有密码的,因此也就无法使用(据说是为了安全).想用root的话,得给root用户设置一 ...